//go:build go1.18 && !noasm && !appengine
// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT

DATA LCDATA1<>+0x000(SB)/8, $0x43e0000000000000
DATA LCDATA1<>+0x008(SB)/8, $0x0000000000000000
DATA LCDATA1<>+0x010(SB)/8, $0x0000000000000400
DATA LCDATA1<>+0x018(SB)/8, $0x0000000000000000
DATA LCDATA1<>+0x020(SB)/8, $0x4f0000004f000000
DATA LCDATA1<>+0x028(SB)/8, $0x4f0000004f000000
DATA LCDATA1<>+0x030(SB)/8, $0x8000000080000000
DATA LCDATA1<>+0x038(SB)/8, $0x8000000080000000
DATA LCDATA1<>+0x040(SB)/8, $0x0000000000000800
DATA LCDATA1<>+0x048(SB)/8, $0x0000000000000000
DATA LCDATA1<>+0x050(SB)/8, $0x4330000000000000
DATA LCDATA1<>+0x058(SB)/8, $0x4330000000000000
DATA LCDATA1<>+0x060(SB)/8, $0x4530000000000000
DATA LCDATA1<>+0x068(SB)/8, $0x4530000000000000
DATA LCDATA1<>+0x070(SB)/8, $0x4530000000100000
DATA LCDATA1<>+0x078(SB)/8, $0x4530000000100000
DATA LCDATA1<>+0x080(SB)/8, $0x4530000043300000
DATA LCDATA1<>+0x088(SB)/8, $0x0000000000000000
DATA LCDATA1<>+0x090(SB)/8, $0x4330000000000000
DATA LCDATA1<>+0x098(SB)/8, $0x4530000000000000
DATA LCDATA1<>+0x0a0(SB)/8, $0x0000000000000001
DATA LCDATA1<>+0x0a8(SB)/8, $0x0000000000000001
DATA LCDATA1<>+0x0b0(SB)/8, $0x0d0c090805040100
DATA LCDATA1<>+0x0b8(SB)/8, $0x0f0e0d0c0d0c0908
DATA LCDATA1<>+0x0c0(SB)/8, $0x000000000c080400
DATA LCDATA1<>+0x0c8(SB)/8, $0x0000000000000000
DATA LCDATA1<>+0x0d0(SB)/8, $0x4b0000004b000000
DATA LCDATA1<>+0x0d8(SB)/8, $0x4b0000004b000000
DATA LCDATA1<>+0x0e0(SB)/8, $0x5300000053000000
DATA LCDATA1<>+0x0e8(SB)/8, $0x5300000053000000
DATA LCDATA1<>+0x0f0(SB)/8, $0x5300008053000080
DATA LCDATA1<>+0x0f8(SB)/8, $0x5300008053000080
DATA LCDATA1<>+0x100(SB)/8, $0x0e0c0a0806040200
DATA LCDATA1<>+0x108(SB)/8, $0x0000000000000000
DATA LCDATA1<>+0x110(SB)/8, $0x000000005f000000
GLOBL LCDATA1<>(SB), 8, $280

TEXT ยท_cast_type_numeric_sse4(SB), $0-40

	MOVQ itype+0(FP), DI
	MOVQ otype+8(FP), SI
	MOVQ in+16(FP), DX
	MOVQ out+24(FP), CX
	MOVQ len+32(FP), R8
	LEAQ LCDATA1<>(SB), BP

	WORD $0xff83; BYTE $0x06 // cmp    edi, 6
	JG   LBB0_13
	WORD $0xff83; BYTE $0x03 // cmp    edi, 3
	JLE  LBB0_25
	WORD $0xff83; BYTE $0x04 // cmp    edi, 4
	JE   LBB0_45
	WORD $0xff83; BYTE $0x05 // cmp    edi, 5
	JE   LBB0_53
	WORD $0xff83; BYTE $0x06 // cmp    edi, 6
	JNE  LBB0_1526
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_93
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_163
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_263
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_266
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_12
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_761
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_761

LBB0_12:
	WORD $0xf631 // xor    esi, esi

LBB0_1104:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1106

LBB0_1105:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1105

LBB0_1106:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1107:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x04b2448b         // mov    eax, dword [rdx + 4*rsi + 4]
	LONG $0x04b14489         // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x08b2448b         // mov    eax, dword [rdx + 4*rsi + 8]
	LONG $0x08b14489         // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x0cb2448b         // mov    eax, dword [rdx + 4*rsi + 12]
	LONG $0x0cb14489         // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348         // add    rsi, 4
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1107
	JMP  LBB0_1526

LBB0_13:
	WORD $0xff83; BYTE $0x08 // cmp    edi, 8
	JLE  LBB0_35
	WORD $0xff83; BYTE $0x09 // cmp    edi, 9
	JE   LBB0_61
	WORD $0xff83; BYTE $0x0b // cmp    edi, 11
	JE   LBB0_69
	WORD $0xff83; BYTE $0x0c // cmp    edi, 12
	JNE  LBB0_1526
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_100
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_168
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_269
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_272
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_446
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_448

LBB0_25:
	WORD $0xff83; BYTE $0x02 // cmp    edi, 2
	JE   LBB0_77
	WORD $0xff83; BYTE $0x03 // cmp    edi, 3
	JNE  LBB0_1526
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_107
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_173
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_275
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_278
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_34
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_763
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_763

LBB0_34:
	WORD $0xf631 // xor    esi, esi

LBB0_1482:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1484

LBB0_1483:
	LONG $0x323cbe0f         // movsx    edi, byte [rdx + rsi]
	WORD $0x3c89; BYTE $0xb1 // mov    dword [rcx + 4*rsi], edi
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc08348         // add    rax, -1
	JNE  LBB0_1483

LBB0_1484:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1485:
	LONG $0x3204be0f             // movsx    eax, byte [rdx + rsi]
	WORD $0x0489; BYTE $0xb1     // mov    dword [rcx + 4*rsi], eax
	LONG $0x3244be0f; BYTE $0x01 // movsx    eax, byte [rdx + rsi + 1]
	LONG $0x04b14489             // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x3244be0f; BYTE $0x02 // movsx    eax, byte [rdx + rsi + 2]
	LONG $0x08b14489             // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x3244be0f; BYTE $0x03 // movsx    eax, byte [rdx + rsi + 3]
	LONG $0x0cb14489             // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1485
	JMP  LBB0_1526

LBB0_35:
	WORD $0xff83; BYTE $0x07 // cmp    edi, 7
	JE   LBB0_85
	WORD $0xff83; BYTE $0x08 // cmp    edi, 8
	JNE  LBB0_1526
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_114
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_178
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_281
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_284
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_454
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_948

LBB0_45:
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_121
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_183
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_287
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_290
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_457
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_953

LBB0_53:
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_128
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_188
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_293
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_296
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_460
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_958

LBB0_61:
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_135
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_193
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_299
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_302
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_463
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_963

LBB0_69:
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_142
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_198
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_305
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_308
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_466
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_968

LBB0_77:
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_149
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_203
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_311
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_314
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_84
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_766
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_766

LBB0_84:
	WORD $0xf631 // xor    esi, esi

LBB0_1490:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1492

LBB0_1491:
	LONG $0x323cb60f         // movzx    edi, byte [rdx + rsi]
	WORD $0x3c89; BYTE $0xb1 // mov    dword [rcx + 4*rsi], edi
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc08348         // add    rax, -1
	JNE  LBB0_1491

LBB0_1492:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1493:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x0489; BYTE $0xb1     // mov    dword [rcx + 4*rsi], eax
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x04b14489             // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x08b14489             // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x0cb14489             // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1493
	JMP  LBB0_1526

LBB0_85:
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JG   LBB0_156
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JLE  LBB0_208
	WORD $0xfe83; BYTE $0x04 // cmp    esi, 4
	JE   LBB0_317
	WORD $0xfe83; BYTE $0x05 // cmp    esi, 5
	JE   LBB0_320
	WORD $0xfe83; BYTE $0x06 // cmp    esi, 6
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_92
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_769
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_769

LBB0_92:
	WORD $0xf631 // xor    esi, esi

LBB0_1114:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1116

LBB0_1115:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1115

LBB0_1116:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1117:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x04b2448b         // mov    eax, dword [rdx + 4*rsi + 4]
	LONG $0x04b14489         // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x08b2448b         // mov    eax, dword [rdx + 4*rsi + 8]
	LONG $0x08b14489         // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x0cb2448b         // mov    eax, dword [rdx + 4*rsi + 12]
	LONG $0x0cb14489         // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348         // add    rsi, 4
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1117
	JMP  LBB0_1526

LBB0_93:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_213
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_323
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_326
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_475
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_477

LBB0_100:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_218
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_329
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_332
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_106
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_771
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_771

LBB0_106:
	WORD $0xf631 // xor    esi, esi

LBB0_1124:
	WORD $0x8944; BYTE $0xcf // mov    edi, r9d
	WORD $0xf729             // sub    edi, esi
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	LONG $0x07e78348         // and    rdi, 7
	JE   LBB0_1126

LBB0_1125:
	LONG $0xf2048b48 // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948 // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1125

LBB0_1126:
	LONG $0x07f88349 // cmp    r8, 7
	JB   LBB0_1526

LBB0_1127:
	LONG $0xf2048b48             // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0xf2448b48; BYTE $0x08 // mov    rax, qword [rdx + 8*rsi + 8]
	LONG $0xf1448948; BYTE $0x08 // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0xf2448b48; BYTE $0x10 // mov    rax, qword [rdx + 8*rsi + 16]
	LONG $0xf1448948; BYTE $0x10 // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0xf2448b48; BYTE $0x18 // mov    rax, qword [rdx + 8*rsi + 24]
	LONG $0xf1448948; BYTE $0x18 // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0xf2448b48; BYTE $0x20 // mov    rax, qword [rdx + 8*rsi + 32]
	LONG $0xf1448948; BYTE $0x20 // mov    qword [rcx + 8*rsi + 32], rax
	LONG $0xf2448b48; BYTE $0x28 // mov    rax, qword [rdx + 8*rsi + 40]
	LONG $0xf1448948; BYTE $0x28 // mov    qword [rcx + 8*rsi + 40], rax
	LONG $0xf2448b48; BYTE $0x30 // mov    rax, qword [rdx + 8*rsi + 48]
	LONG $0xf1448948; BYTE $0x30 // mov    qword [rcx + 8*rsi + 48], rax
	LONG $0xf2448b48; BYTE $0x38 // mov    rax, qword [rdx + 8*rsi + 56]
	LONG $0xf1448948; BYTE $0x38 // mov    qword [rcx + 8*rsi + 56], rax
	LONG $0x08c68348             // add    rsi, 8
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1127
	JMP  LBB0_1526

LBB0_107:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_223
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_335
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_338
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_483
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_485

LBB0_114:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_228
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_341
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_344
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_488
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_973

LBB0_121:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_233
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_347
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_350
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_491
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_493

LBB0_128:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_238
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_353
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_356
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_496
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_498

LBB0_135:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_243
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_359
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_362
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0xf089             // mov    eax, esi
	WORD $0xe083; BYTE $0x03 // and    eax, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_501
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_503

LBB0_142:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_248
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_365
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_368
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_506
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_979

LBB0_149:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_253
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_371
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_374
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_509
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_511

LBB0_156:
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JLE  LBB0_258
	WORD $0xfe83; BYTE $0x09 // cmp    esi, 9
	JE   LBB0_377
	WORD $0xfe83; BYTE $0x0b // cmp    esi, 11
	JE   LBB0_380
	WORD $0xfe83; BYTE $0x0c // cmp    esi, 12
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0xf089             // mov    eax, esi
	WORD $0xe083; BYTE $0x03 // and    eax, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_514
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_516

LBB0_163:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_383
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_167
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_773
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_773

LBB0_167:
	WORD $0xf631 // xor    esi, esi

LBB0_1498:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1500

LBB0_1499:
	LONG $0xb204b60f         // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1499

LBB0_1500:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1501:
	LONG $0xb204b60f             // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xb244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 4*rsi + 4]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xb244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 4*rsi + 8]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xb244b60f; BYTE $0x0c // movzx    eax, byte [rdx + 4*rsi + 12]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1501
	JMP  LBB0_1526

LBB0_168:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_386
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_172
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_776
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_776

LBB0_172:
	WORD $0xf631 // xor    esi, esi

LBB0_1506:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1508

LBB0_1507:
	LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si    eax, qword [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1507

LBB0_1508:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1509:
	LONG $0x042c0ff2; BYTE $0xf2   // cvttsd2si    eax, qword [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31       // mov    byte [rcx + rsi], al
	LONG $0x442c0ff2; WORD $0x08f2 // cvttsd2si    eax, qword [rdx + 8*rsi + 8]
	LONG $0x01314488               // mov    byte [rcx + rsi + 1], al
	LONG $0x442c0ff2; WORD $0x10f2 // cvttsd2si    eax, qword [rdx + 8*rsi + 16]
	LONG $0x02314488               // mov    byte [rcx + rsi + 2], al
	LONG $0x442c0ff2; WORD $0x18f2 // cvttsd2si    eax, qword [rdx + 8*rsi + 24]
	LONG $0x03314488               // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1509
	JMP  LBB0_1526

LBB0_173:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_389
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x20f88341         // cmp    r8d, 32
	JB   LBB0_177
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_779
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_779

LBB0_177:
	WORD $0xf631 // xor    esi, esi

LBB0_1134:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1136

LBB0_1135:
	LONG $0x3204b60f         // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1135

LBB0_1136:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1137:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1137
	JMP  LBB0_1526

LBB0_178:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_392
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_182
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_781
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_781

LBB0_182:
	WORD $0xf631 // xor    esi, esi

LBB0_1322:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1324

LBB0_1323:
	LONG $0xf204b60f         // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1323

LBB0_1324:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1325:
	LONG $0xf204b60f             // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xf244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 8*rsi + 8]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xf244b60f; BYTE $0x10 // movzx    eax, byte [rdx + 8*rsi + 16]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xf244b60f; BYTE $0x18 // movzx    eax, byte [rdx + 8*rsi + 24]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1325
	JMP  LBB0_1526

LBB0_183:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_395
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_187
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_784
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_784

LBB0_187:
	WORD $0xf631 // xor    esi, esi

LBB0_1330:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1332

LBB0_1331:
	LONG $0x7204b60f         // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1331

LBB0_1332:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1333:
	LONG $0x7204b60f             // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x7244b60f; BYTE $0x02 // movzx    eax, byte [rdx + 2*rsi + 2]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x7244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 2*rsi + 4]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x7244b60f; BYTE $0x06 // movzx    eax, byte [rdx + 2*rsi + 6]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1333
	JMP  LBB0_1526

LBB0_188:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_398
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_192
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_787
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_787

LBB0_192:
	WORD $0xf631 // xor    esi, esi

LBB0_1514:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1516

LBB0_1515:
	LONG $0x7204b60f         // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1515

LBB0_1516:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1517:
	LONG $0x7204b60f             // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x7244b60f; BYTE $0x02 // movzx    eax, byte [rdx + 2*rsi + 2]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x7244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 2*rsi + 4]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x7244b60f; BYTE $0x06 // movzx    eax, byte [rdx + 2*rsi + 6]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1517
	JMP  LBB0_1526

LBB0_193:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_401
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_197
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_790
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_790

LBB0_197:
	WORD $0xf631 // xor    esi, esi

LBB0_1338:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1340

LBB0_1339:
	LONG $0xf204b60f         // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1339

LBB0_1340:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1341:
	LONG $0xf204b60f             // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xf244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 8*rsi + 8]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xf244b60f; BYTE $0x10 // movzx    eax, byte [rdx + 8*rsi + 16]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xf244b60f; BYTE $0x18 // movzx    eax, byte [rdx + 8*rsi + 24]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1341
	JMP  LBB0_1526

LBB0_198:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_404
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_202
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_793
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_793

LBB0_202:
	WORD $0xf631 // xor    esi, esi

LBB0_1522:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1524

LBB0_1523:
	LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si    eax, dword [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1523

LBB0_1524:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1525:
	LONG $0x042c0ff3; BYTE $0xb2   // cvttss2si    eax, dword [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31       // mov    byte [rcx + rsi], al
	LONG $0x442c0ff3; WORD $0x04b2 // cvttss2si    eax, dword [rdx + 4*rsi + 4]
	LONG $0x01314488               // mov    byte [rcx + rsi + 1], al
	LONG $0x442c0ff3; WORD $0x08b2 // cvttss2si    eax, dword [rdx + 4*rsi + 8]
	LONG $0x02314488               // mov    byte [rcx + rsi + 2], al
	LONG $0x442c0ff3; WORD $0x0cb2 // cvttss2si    eax, dword [rdx + 4*rsi + 12]
	LONG $0x03314488               // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1525
	JMP  LBB0_1526

LBB0_203:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_407
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x20f88341         // cmp    r8d, 32
	JB   LBB0_207
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_796
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_796

LBB0_207:
	WORD $0xf631 // xor    esi, esi

LBB0_1144:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1146

LBB0_1145:
	LONG $0x3204b60f         // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1145

LBB0_1146:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1147:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1147
	JMP  LBB0_1526

LBB0_208:
	WORD $0xfe83; BYTE $0x02 // cmp    esi, 2
	JE   LBB0_410
	WORD $0xfe83; BYTE $0x03 // cmp    esi, 3
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_212
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_798
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_798

LBB0_212:
	WORD $0xf631 // xor    esi, esi

LBB0_1346:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1348

LBB0_1347:
	LONG $0xb204b60f         // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1347

LBB0_1348:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1349:
	LONG $0xb204b60f             // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xb244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 4*rsi + 4]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xb244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 4*rsi + 8]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xb244b60f; BYTE $0x0c // movzx    eax, byte [rdx + 4*rsi + 12]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1349
	JMP  LBB0_1526

LBB0_213:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_413
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_549
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_807

LBB0_218:
	WORD $0xfe83; BYTE $0x07               // cmp    esi, 7
	JE   LBB0_416
	WORD $0xfe83; BYTE $0x08               // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0               // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1               // mov    r9d, r8d
	LONG $0xff418d49                       // lea    rax, [r9 - 1]
	WORD $0x8945; BYTE $0xc8               // mov    r8d, r9d
	LONG $0x03e08341                       // and    r8d, 3
	QUAD $0x000000000000ba49; WORD $0x8000 // mov    r10, -9223372036854775808
	LONG $0x03f88348                       // cmp    rax, 3
	JAE  LBB0_551
	WORD $0xc031                           // xor    eax, eax
	JMP  LBB0_553

LBB0_223:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_419
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_227
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_808
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_808

LBB0_227:
	WORD $0xf631 // xor    esi, esi

LBB0_1154:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1156

LBB0_1155:
	LONG $0x04be0f48; BYTE $0x32 // movsx    rax, byte [rdx + rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1155

LBB0_1156:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1157:
	LONG $0x04be0f48; BYTE $0x32   // movsx    rax, byte [rdx + rsi]
	LONG $0xf1048948               // mov    qword [rcx + 8*rsi], rax
	LONG $0x44be0f48; WORD $0x0132 // movsx    rax, byte [rdx + rsi + 1]
	LONG $0xf1448948; BYTE $0x08   // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0x44be0f48; WORD $0x0232 // movsx    rax, byte [rdx + rsi + 2]
	LONG $0xf1448948; BYTE $0x10   // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0x44be0f48; WORD $0x0332 // movsx    rax, byte [rdx + rsi + 3]
	LONG $0xf1448948; BYTE $0x18   // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1157
	JMP  LBB0_1526

LBB0_228:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_422
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_232
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_810
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_810

LBB0_232:
	WORD $0xf631 // xor    esi, esi

LBB0_1164:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1166

LBB0_1165:
	LONG $0xf2048b48 // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948 // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1165

LBB0_1166:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1167:
	LONG $0xf2048b48             // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0xf2448b48; BYTE $0x08 // mov    rax, qword [rdx + 8*rsi + 8]
	LONG $0xf1448948; BYTE $0x08 // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0xf2448b48; BYTE $0x10 // mov    rax, qword [rdx + 8*rsi + 16]
	LONG $0xf1448948; BYTE $0x10 // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0xf2448b48; BYTE $0x18 // mov    rax, qword [rdx + 8*rsi + 24]
	LONG $0xf1448948; BYTE $0x18 // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1167
	JMP  LBB0_1526

LBB0_233:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_425
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_562
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_818

LBB0_238:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_428
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_564
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_825

LBB0_243:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_431
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_247
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_826
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_826

LBB0_247:
	WORD $0xf631 // xor    esi, esi

LBB0_1174:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1176

LBB0_1175:
	LONG $0xf2048b48 // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948 // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1175

LBB0_1176:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1177:
	LONG $0xf2048b48             // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0xf2448b48; BYTE $0x08 // mov    rax, qword [rdx + 8*rsi + 8]
	LONG $0xf1448948; BYTE $0x08 // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0xf2448b48; BYTE $0x10 // mov    rax, qword [rdx + 8*rsi + 16]
	LONG $0xf1448948; BYTE $0x10 // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0xf2448b48; BYTE $0x18 // mov    rax, qword [rdx + 8*rsi + 24]
	LONG $0xf1448948; BYTE $0x18 // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1177
	JMP  LBB0_1526

LBB0_248:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_434
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0xff418d49         // lea    rax, [r9 - 1]
	WORD $0x8945; BYTE $0xc8 // mov    r8d, r9d
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03f88348         // cmp    rax, 3
	JAE  LBB0_569
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_571

LBB0_253:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_437
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_257
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_828
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_828

LBB0_257:
	WORD $0xf631 // xor    esi, esi

LBB0_1184:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1186

LBB0_1185:
	LONG $0x3204b60f // movzx    eax, byte [rdx + rsi]
	LONG $0xf1048948 // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1185

LBB0_1186:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1187:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0xf1448948; BYTE $0x08 // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0xf1448948; BYTE $0x10 // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0xf1448948; BYTE $0x18 // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1187
	JMP  LBB0_1526

LBB0_258:
	WORD $0xfe83; BYTE $0x07 // cmp    esi, 7
	JE   LBB0_440
	WORD $0xfe83; BYTE $0x08 // cmp    esi, 8
	JNE  LBB0_1526
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_577
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_836

LBB0_263:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_579
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_984

LBB0_266:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_582
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_989

LBB0_269:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_585
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_994

LBB0_272:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_588
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_999

LBB0_275:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_277
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_837
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_837

LBB0_277:
	WORD $0xf631 // xor    esi, esi

LBB0_1354:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1356

LBB0_1355:
	LONG $0x323cbe0f // movsx    edi, byte [rdx + rsi]
	LONG $0x713c8966 // mov    word [rcx + 2*rsi], di
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc08348 // add    rax, -1
	JNE  LBB0_1355

LBB0_1356:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1357:
	LONG $0x3204be0f             // movsx    eax, byte [rdx + rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x3244be0f; BYTE $0x01 // movsx    eax, byte [rdx + rsi + 1]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x3244be0f; BYTE $0x02 // movsx    eax, byte [rdx + rsi + 2]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x3244be0f; BYTE $0x03 // movsx    eax, byte [rdx + rsi + 3]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1357
	JMP  LBB0_1526

LBB0_278:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_280
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_840
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_840

LBB0_280:
	WORD $0xf631 // xor    esi, esi

LBB0_1362:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1364

LBB0_1363:
	LONG $0x323cbe0f // movsx    edi, byte [rdx + rsi]
	LONG $0x713c8966 // mov    word [rcx + 2*rsi], di
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc08348 // add    rax, -1
	JNE  LBB0_1363

LBB0_1364:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1365:
	LONG $0x3204be0f             // movsx    eax, byte [rdx + rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x3244be0f; BYTE $0x01 // movsx    eax, byte [rdx + rsi + 1]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x3244be0f; BYTE $0x02 // movsx    eax, byte [rdx + rsi + 2]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x3244be0f; BYTE $0x03 // movsx    eax, byte [rdx + rsi + 3]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1365
	JMP  LBB0_1526

LBB0_281:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_597
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1004

LBB0_284:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_600
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1009

LBB0_287:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_289
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_843
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_843

LBB0_289:
	WORD $0xf631 // xor    esi, esi

LBB0_1194:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1196

LBB0_1195:
	LONG $0x7204b70f // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966 // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1195

LBB0_1196:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1197:
	LONG $0x7204b70f             // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x7244b70f; BYTE $0x02 // movzx    eax, word [rdx + 2*rsi + 2]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x7244b70f; BYTE $0x04 // movzx    eax, word [rdx + 2*rsi + 4]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x7244b70f; BYTE $0x06 // movzx    eax, word [rdx + 2*rsi + 6]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1197
	JMP  LBB0_1526

LBB0_290:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_292
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_845
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_845

LBB0_292:
	WORD $0xf631 // xor    esi, esi

LBB0_1204:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1206

LBB0_1205:
	LONG $0x7204b70f // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966 // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1205

LBB0_1206:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1207:
	LONG $0x7204b70f             // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x7244b70f; BYTE $0x02 // movzx    eax, word [rdx + 2*rsi + 2]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x7244b70f; BYTE $0x04 // movzx    eax, word [rdx + 2*rsi + 4]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x7244b70f; BYTE $0x06 // movzx    eax, word [rdx + 2*rsi + 6]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1207
	JMP  LBB0_1526

LBB0_293:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_295
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_847
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_847

LBB0_295:
	WORD $0xf631 // xor    esi, esi

LBB0_1214:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1216

LBB0_1215:
	LONG $0x7204b70f // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966 // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1215

LBB0_1216:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1217:
	LONG $0x7204b70f             // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x7244b70f; BYTE $0x02 // movzx    eax, word [rdx + 2*rsi + 2]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x7244b70f; BYTE $0x04 // movzx    eax, word [rdx + 2*rsi + 4]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x7244b70f; BYTE $0x06 // movzx    eax, word [rdx + 2*rsi + 6]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1217
	JMP  LBB0_1526

LBB0_296:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_298
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_849
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_849

LBB0_298:
	WORD $0xf631 // xor    esi, esi

LBB0_1224:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1226

LBB0_1225:
	LONG $0x7204b70f // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966 // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1225

LBB0_1226:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1227:
	LONG $0x7204b70f             // movzx    eax, word [rdx + 2*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x7244b70f; BYTE $0x02 // movzx    eax, word [rdx + 2*rsi + 2]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x7244b70f; BYTE $0x04 // movzx    eax, word [rdx + 2*rsi + 4]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x7244b70f; BYTE $0x06 // movzx    eax, word [rdx + 2*rsi + 6]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1227
	JMP  LBB0_1526

LBB0_299:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_615
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1014

LBB0_302:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_618
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1019

LBB0_305:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_621
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1024

LBB0_308:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_624
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1029

LBB0_311:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_313
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_851
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_851

LBB0_313:
	WORD $0xf631 // xor    esi, esi

LBB0_1370:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1372

LBB0_1371:
	LONG $0x323cb60f // movzx    edi, byte [rdx + rsi]
	LONG $0x713c8966 // mov    word [rcx + 2*rsi], di
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc08348 // add    rax, -1
	JNE  LBB0_1371

LBB0_1372:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1373:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1373
	JMP  LBB0_1526

LBB0_314:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_316
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_854
	LONG $0x49048d4a         // lea    rax, [rcx + 2*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_854

LBB0_316:
	WORD $0xf631 // xor    esi, esi

LBB0_1378:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1380

LBB0_1379:
	LONG $0x323cb60f // movzx    edi, byte [rdx + rsi]
	LONG $0x713c8966 // mov    word [rcx + 2*rsi], di
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc08348 // add    rax, -1
	JNE  LBB0_1379

LBB0_1380:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1381:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x71448966; BYTE $0x02 // mov    word [rcx + 2*rsi + 2], ax
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x71448966; BYTE $0x04 // mov    word [rcx + 2*rsi + 4], ax
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x71448966; BYTE $0x06 // mov    word [rcx + 2*rsi + 6], ax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1381
	JMP  LBB0_1526

LBB0_317:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_633
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1034

LBB0_320:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_636
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1039

LBB0_323:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_639
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_863

LBB0_326:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_641
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1044

LBB0_329:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_644
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_646

LBB0_332:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_649
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1049

LBB0_335:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_337
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_864
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_864

LBB0_337:
	WORD $0xf631 // xor    esi, esi

LBB0_1234:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1236

LBB0_1235:
	LONG $0x04be0f48; BYTE $0x32 // movsx    rax, byte [rdx + rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1235

LBB0_1236:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1237:
	LONG $0x04be0f48; BYTE $0x32   // movsx    rax, byte [rdx + rsi]
	LONG $0xf1048948               // mov    qword [rcx + 8*rsi], rax
	LONG $0x44be0f48; WORD $0x0132 // movsx    rax, byte [rdx + rsi + 1]
	LONG $0xf1448948; BYTE $0x08   // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0x44be0f48; WORD $0x0232 // movsx    rax, byte [rdx + rsi + 2]
	LONG $0xf1448948; BYTE $0x10   // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0x44be0f48; WORD $0x0332 // movsx    rax, byte [rdx + rsi + 3]
	LONG $0xf1448948; BYTE $0x18   // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1237
	JMP  LBB0_1526

LBB0_338:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_340
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_866
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_866

LBB0_340:
	WORD $0xf631 // xor    esi, esi

LBB0_1386:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1388

LBB0_1387:
	LONG $0x3204be0f             // movsx    eax, byte [rdx + rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff3             // cvtsi2ss    xmm0, eax
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1387

LBB0_1388:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1389:
	LONG $0x3204be0f               // movsx    eax, byte [rdx + rsi]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x04110ff3; BYTE $0xb1   // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x3244be0f; BYTE $0x01   // movsx    eax, byte [rdx + rsi + 1]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x44110ff3; WORD $0x04b1 // movss    dword [rcx + 4*rsi + 4], xmm0
	LONG $0x3244be0f; BYTE $0x02   // movsx    eax, byte [rdx + rsi + 2]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x44110ff3; WORD $0x08b1 // movss    dword [rcx + 4*rsi + 8], xmm0
	LONG $0x3244be0f; BYTE $0x03   // movsx    eax, byte [rdx + rsi + 3]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x44110ff3; WORD $0x0cb1 // movss    dword [rcx + 4*rsi + 12], xmm0
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1389
	JMP  LBB0_1526

LBB0_341:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_343
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_869
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_869

LBB0_343:
	WORD $0xf631 // xor    esi, esi

LBB0_1244:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1246

LBB0_1245:
	LONG $0xf2048b48 // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948 // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1245

LBB0_1246:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1247:
	LONG $0xf2048b48             // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0xf2448b48; BYTE $0x08 // mov    rax, qword [rdx + 8*rsi + 8]
	LONG $0xf1448948; BYTE $0x08 // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0xf2448b48; BYTE $0x10 // mov    rax, qword [rdx + 8*rsi + 16]
	LONG $0xf1448948; BYTE $0x10 // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0xf2448b48; BYTE $0x18 // mov    rax, qword [rdx + 8*rsi + 24]
	LONG $0xf1448948; BYTE $0x18 // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1247
	JMP  LBB0_1526

LBB0_344:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_661
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1056

LBB0_347:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_664
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_877

LBB0_350:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_666
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1062

LBB0_353:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_669
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_884

LBB0_356:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_671
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1067

LBB0_359:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_361
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_885
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_885

LBB0_361:
	WORD $0xf631 // xor    esi, esi

LBB0_1254:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1256

LBB0_1255:
	LONG $0xf2048b48 // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948 // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1255

LBB0_1256:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1257:
	LONG $0xf2048b48             // mov    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0xf2448b48; BYTE $0x08 // mov    rax, qword [rdx + 8*rsi + 8]
	LONG $0xf1448948; BYTE $0x08 // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0xf2448b48; BYTE $0x10 // mov    rax, qword [rdx + 8*rsi + 16]
	LONG $0xf1448948; BYTE $0x10 // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0xf2448b48; BYTE $0x18 // mov    rax, qword [rdx + 8*rsi + 24]
	LONG $0xf1448948; BYTE $0x18 // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1257
	JMP  LBB0_1526

LBB0_362:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0xf089             // mov    eax, esi
	WORD $0xe083; BYTE $0x03 // and    eax, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_677
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_679

LBB0_365:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8944; BYTE $0xc6 // mov    esi, r8d
	LONG $0xff7e8d48         // lea    rdi, [rsi - 1]
	WORD $0x8941; BYTE $0xf0 // mov    r8d, esi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x03ff8348         // cmp    rdi, 3
	JAE  LBB0_682
	WORD $0xff31             // xor    edi, edi
	JMP  LBB0_684

LBB0_368:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_370
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_887
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_887

LBB0_370:
	WORD $0xf631 // xor    esi, esi

LBB0_1264:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x07e78348         // and    rdi, 7
	JE   LBB0_1266

LBB0_1265:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1265

LBB0_1266:
	LONG $0x07f88349 // cmp    r8, 7
	JB   LBB0_1526

LBB0_1267:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x04b2448b         // mov    eax, dword [rdx + 4*rsi + 4]
	LONG $0x04b14489         // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x08b2448b         // mov    eax, dword [rdx + 4*rsi + 8]
	LONG $0x08b14489         // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x0cb2448b         // mov    eax, dword [rdx + 4*rsi + 12]
	LONG $0x0cb14489         // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x10b2448b         // mov    eax, dword [rdx + 4*rsi + 16]
	LONG $0x10b14489         // mov    dword [rcx + 4*rsi + 16], eax
	LONG $0x14b2448b         // mov    eax, dword [rdx + 4*rsi + 20]
	LONG $0x14b14489         // mov    dword [rcx + 4*rsi + 20], eax
	LONG $0x18b2448b         // mov    eax, dword [rdx + 4*rsi + 24]
	LONG $0x18b14489         // mov    dword [rcx + 4*rsi + 24], eax
	LONG $0x1cb2448b         // mov    eax, dword [rdx + 4*rsi + 28]
	LONG $0x1cb14489         // mov    dword [rcx + 4*rsi + 28], eax
	LONG $0x08c68348         // add    rsi, 8
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1267
	JMP  LBB0_1526

LBB0_371:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_373
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_889
	LONG $0xc9048d4a         // lea    rax, [rcx + 8*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_889

LBB0_373:
	WORD $0xf631 // xor    esi, esi

LBB0_1274:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1276

LBB0_1275:
	LONG $0x3204b60f // movzx    eax, byte [rdx + rsi]
	LONG $0xf1048948 // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348 // add    rsi, 1
	LONG $0xffc78348 // add    rdi, -1
	JNE  LBB0_1275

LBB0_1276:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1277:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0xf1448948; BYTE $0x08 // mov    qword [rcx + 8*rsi + 8], rax
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0xf1448948; BYTE $0x10 // mov    qword [rcx + 8*rsi + 16], rax
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0xf1448948; BYTE $0x18 // mov    qword [rcx + 8*rsi + 24], rax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1277
	JMP  LBB0_1526

LBB0_374:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_376
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_891
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_891

LBB0_376:
	WORD $0xf631 // xor    esi, esi

LBB0_1394:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1396

LBB0_1395:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff3             // cvtsi2ss    xmm0, eax
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1395

LBB0_1396:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1397:
	LONG $0x3204b60f               // movzx    eax, byte [rdx + rsi]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x04110ff3; BYTE $0xb1   // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x3244b60f; BYTE $0x01   // movzx    eax, byte [rdx + rsi + 1]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x44110ff3; WORD $0x04b1 // movss    dword [rcx + 4*rsi + 4], xmm0
	LONG $0x3244b60f; BYTE $0x02   // movzx    eax, byte [rdx + rsi + 2]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x44110ff3; WORD $0x08b1 // movss    dword [rcx + 4*rsi + 8], xmm0
	LONG $0x3244b60f; BYTE $0x03   // movzx    eax, byte [rdx + rsi + 3]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff3               // cvtsi2ss    xmm0, eax
	LONG $0x44110ff3; WORD $0x0cb1 // movss    dword [rcx + 4*rsi + 12], xmm0
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1397
	JMP  LBB0_1526

LBB0_377:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_696
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_900

LBB0_380:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_698
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1072

LBB0_383:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_385
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_901
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_901

LBB0_385:
	WORD $0xf631 // xor    esi, esi

LBB0_1402:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1404

LBB0_1403:
	LONG $0xb204b60f         // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1403

LBB0_1404:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1405:
	LONG $0xb204b60f             // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xb244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 4*rsi + 4]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xb244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 4*rsi + 8]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xb244b60f; BYTE $0x0c // movzx    eax, byte [rdx + 4*rsi + 12]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1405
	JMP  LBB0_1526

LBB0_386:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_388
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_904
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_904

LBB0_388:
	WORD $0xf631 // xor    esi, esi

LBB0_1410:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1412

LBB0_1411:
	LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si    eax, qword [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1411

LBB0_1412:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1413:
	LONG $0x042c0ff2; BYTE $0xf2   // cvttsd2si    eax, qword [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31       // mov    byte [rcx + rsi], al
	LONG $0x442c0ff2; WORD $0x08f2 // cvttsd2si    eax, qword [rdx + 8*rsi + 8]
	LONG $0x01314488               // mov    byte [rcx + rsi + 1], al
	LONG $0x442c0ff2; WORD $0x10f2 // cvttsd2si    eax, qword [rdx + 8*rsi + 16]
	LONG $0x02314488               // mov    byte [rcx + rsi + 2], al
	LONG $0x442c0ff2; WORD $0x18f2 // cvttsd2si    eax, qword [rdx + 8*rsi + 24]
	LONG $0x03314488               // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1413
	JMP  LBB0_1526

LBB0_389:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x20f88341         // cmp    r8d, 32
	JB   LBB0_391
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_907
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_907

LBB0_391:
	WORD $0xf631 // xor    esi, esi

LBB0_1284:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1286

LBB0_1285:
	LONG $0x3204b60f         // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1285

LBB0_1286:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1287:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1287
	JMP  LBB0_1526

LBB0_392:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_394
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_909
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_909

LBB0_394:
	WORD $0xf631 // xor    esi, esi

LBB0_1418:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1420

LBB0_1419:
	LONG $0xf204b60f         // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1419

LBB0_1420:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1421:
	LONG $0xf204b60f             // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xf244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 8*rsi + 8]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xf244b60f; BYTE $0x10 // movzx    eax, byte [rdx + 8*rsi + 16]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xf244b60f; BYTE $0x18 // movzx    eax, byte [rdx + 8*rsi + 24]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1421
	JMP  LBB0_1526

LBB0_395:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_397
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_912
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_912

LBB0_397:
	WORD $0xf631 // xor    esi, esi

LBB0_1426:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1428

LBB0_1427:
	LONG $0x7204b60f         // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1427

LBB0_1428:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1429:
	LONG $0x7204b60f             // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x7244b60f; BYTE $0x02 // movzx    eax, byte [rdx + 2*rsi + 2]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x7244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 2*rsi + 4]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x7244b60f; BYTE $0x06 // movzx    eax, byte [rdx + 2*rsi + 6]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1429
	JMP  LBB0_1526

LBB0_398:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x10f88341         // cmp    r8d, 16
	JB   LBB0_400
	LONG $0x4a048d4a         // lea    rax, [rdx + 2*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_915
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_915

LBB0_400:
	WORD $0xf631 // xor    esi, esi

LBB0_1434:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1436

LBB0_1435:
	LONG $0x7204b60f         // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1435

LBB0_1436:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1437:
	LONG $0x7204b60f             // movzx    eax, byte [rdx + 2*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x7244b60f; BYTE $0x02 // movzx    eax, byte [rdx + 2*rsi + 2]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x7244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 2*rsi + 4]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x7244b60f; BYTE $0x06 // movzx    eax, byte [rdx + 2*rsi + 6]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1437
	JMP  LBB0_1526

LBB0_401:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JB   LBB0_403
	LONG $0xca048d4a         // lea    rax, [rdx + 8*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_918
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_918

LBB0_403:
	WORD $0xf631 // xor    esi, esi

LBB0_1442:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1444

LBB0_1443:
	LONG $0xf204b60f         // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1443

LBB0_1444:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1445:
	LONG $0xf204b60f             // movzx    eax, byte [rdx + 8*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xf244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 8*rsi + 8]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xf244b60f; BYTE $0x10 // movzx    eax, byte [rdx + 8*rsi + 16]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xf244b60f; BYTE $0x18 // movzx    eax, byte [rdx + 8*rsi + 24]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1445
	JMP  LBB0_1526

LBB0_404:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_406
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_921
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_921

LBB0_406:
	WORD $0xf631 // xor    esi, esi

LBB0_1450:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1452

LBB0_1451:
	LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si    eax, dword [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x01c68348             // add    rsi, 1
	LONG $0xffc78348             // add    rdi, -1
	JNE  LBB0_1451

LBB0_1452:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1453:
	LONG $0x042c0ff3; BYTE $0xb2   // cvttss2si    eax, dword [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31       // mov    byte [rcx + rsi], al
	LONG $0x442c0ff3; WORD $0x04b2 // cvttss2si    eax, dword [rdx + 4*rsi + 4]
	LONG $0x01314488               // mov    byte [rcx + rsi + 1], al
	LONG $0x442c0ff3; WORD $0x08b2 // cvttss2si    eax, dword [rdx + 4*rsi + 8]
	LONG $0x02314488               // mov    byte [rcx + rsi + 2], al
	LONG $0x442c0ff3; WORD $0x0cb2 // cvttss2si    eax, dword [rdx + 4*rsi + 12]
	LONG $0x03314488               // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348               // add    rsi, 4
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_1453
	JMP  LBB0_1526

LBB0_407:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x20f88341         // cmp    r8d, 32
	JB   LBB0_409
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_924
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_924

LBB0_409:
	WORD $0xf631 // xor    esi, esi

LBB0_1294:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1296

LBB0_1295:
	LONG $0x3204b60f         // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1295

LBB0_1296:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1297:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1297
	JMP  LBB0_1526

LBB0_410:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_412
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_926
	LONG $0x09048d4a         // lea    rax, [rcx + r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_926

LBB0_412:
	WORD $0xf631 // xor    esi, esi

LBB0_1458:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1460

LBB0_1459:
	LONG $0xb204b60f         // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31 // mov    byte [rcx + rsi], al
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1459

LBB0_1460:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1461:
	LONG $0xb204b60f             // movzx    eax, byte [rdx + 4*rsi]
	WORD $0x0488; BYTE $0x31     // mov    byte [rcx + rsi], al
	LONG $0xb244b60f; BYTE $0x04 // movzx    eax, byte [rdx + 4*rsi + 4]
	LONG $0x01314488             // mov    byte [rcx + rsi + 1], al
	LONG $0xb244b60f; BYTE $0x08 // movzx    eax, byte [rdx + 4*rsi + 8]
	LONG $0x02314488             // mov    byte [rcx + rsi + 2], al
	LONG $0xb244b60f; BYTE $0x0c // movzx    eax, byte [rdx + 4*rsi + 12]
	LONG $0x03314488             // mov    byte [rcx + rsi + 3], al
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1461
	JMP  LBB0_1526

LBB0_413:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_415
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_929
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_929

LBB0_415:
	WORD $0xf631 // xor    esi, esi

LBB0_1304:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1306

LBB0_1305:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1305

LBB0_1306:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1307:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x04b2448b         // mov    eax, dword [rdx + 4*rsi + 4]
	LONG $0x04b14489         // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x08b2448b         // mov    eax, dword [rdx + 4*rsi + 8]
	LONG $0x08b14489         // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x0cb2448b         // mov    eax, dword [rdx + 4*rsi + 12]
	LONG $0x0cb14489         // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348         // add    rsi, 4
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1307
	JMP  LBB0_1526

LBB0_416:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_734
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1077

LBB0_419:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_421
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_931
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_931

LBB0_421:
	WORD $0xf631 // xor    esi, esi

LBB0_1466:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1468

LBB0_1467:
	LONG $0x323cbe0f         // movsx    edi, byte [rdx + rsi]
	WORD $0x3c89; BYTE $0xb1 // mov    dword [rcx + 4*rsi], edi
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc08348         // add    rax, -1
	JNE  LBB0_1467

LBB0_1468:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1469:
	LONG $0x3204be0f             // movsx    eax, byte [rdx + rsi]
	WORD $0x0489; BYTE $0xb1     // mov    dword [rcx + 4*rsi], eax
	LONG $0x3244be0f; BYTE $0x01 // movsx    eax, byte [rdx + rsi + 1]
	LONG $0x04b14489             // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x3244be0f; BYTE $0x02 // movsx    eax, byte [rdx + rsi + 2]
	LONG $0x08b14489             // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x3244be0f; BYTE $0x03 // movsx    eax, byte [rdx + rsi + 3]
	LONG $0x0cb14489             // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1469
	JMP  LBB0_1526

LBB0_422:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_740
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_943

LBB0_425:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_743
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1082

LBB0_428:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_746
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1087

LBB0_431:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x04f88341         // cmp    r8d, 4
	JAE  LBB0_749
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1092

LBB0_434:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JAE  LBB0_752
	WORD $0xf631             // xor    esi, esi
	JMP  LBB0_1097

LBB0_437:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_439
	LONG $0x0a048d4a         // lea    rax, [rdx + r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_934
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_934

LBB0_439:
	WORD $0xf631 // xor    esi, esi

LBB0_1474:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xc8 // mov    rax, r9
	LONG $0x03e08348         // and    rax, 3
	JE   LBB0_1476

LBB0_1475:
	LONG $0x323cb60f         // movzx    edi, byte [rdx + rsi]
	WORD $0x3c89; BYTE $0xb1 // mov    dword [rcx + 4*rsi], edi
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc08348         // add    rax, -1
	JNE  LBB0_1475

LBB0_1476:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1477:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x0489; BYTE $0xb1     // mov    dword [rcx + 4*rsi], eax
	LONG $0x3244b60f; BYTE $0x01 // movzx    eax, byte [rdx + rsi + 1]
	LONG $0x04b14489             // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x3244b60f; BYTE $0x02 // movzx    eax, byte [rdx + rsi + 2]
	LONG $0x08b14489             // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x3244b60f; BYTE $0x03 // movzx    eax, byte [rdx + rsi + 3]
	LONG $0x0cb14489             // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348             // add    rsi, 4
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1477
	JMP  LBB0_1526

LBB0_440:
	WORD $0x8545; BYTE $0xc0 // test    r8d, r8d
	JLE  LBB0_1526
	WORD $0x8945; BYTE $0xc1 // mov    r9d, r8d
	LONG $0x08f88341         // cmp    r8d, 8
	JB   LBB0_442
	LONG $0x8a048d4a         // lea    rax, [rdx + 4*r9]
	WORD $0x3948; BYTE $0xc8 // cmp    rax, rcx
	JBE  LBB0_937
	LONG $0x89048d4a         // lea    rax, [rcx + 4*r9]
	WORD $0x3948; BYTE $0xd0 // cmp    rax, rdx
	JBE  LBB0_937

LBB0_442:
	WORD $0xf631 // xor    esi, esi

LBB0_1314:
	WORD $0x8949; BYTE $0xf0 // mov    r8, rsi
	WORD $0xf749; BYTE $0xd0 // not    r8
	WORD $0x014d; BYTE $0xc8 // add    r8, r9
	WORD $0x894c; BYTE $0xcf // mov    rdi, r9
	LONG $0x03e78348         // and    rdi, 3
	JE   LBB0_1316

LBB0_1315:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	LONG $0xffc78348         // add    rdi, -1
	JNE  LBB0_1315

LBB0_1316:
	LONG $0x03f88349 // cmp    r8, 3
	JB   LBB0_1526

LBB0_1317:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x04b2448b         // mov    eax, dword [rdx + 4*rsi + 4]
	LONG $0x04b14489         // mov    dword [rcx + 4*rsi + 4], eax
	LONG $0x08b2448b         // mov    eax, dword [rdx + 4*rsi + 8]
	LONG $0x08b14489         // mov    dword [rcx + 4*rsi + 8], eax
	LONG $0x0cb2448b         // mov    eax, dword [rdx + 4*rsi + 12]
	LONG $0x0cb14489         // mov    dword [rcx + 4*rsi + 12], eax
	LONG $0x04c68348         // add    rsi, 4
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1317
	JMP  LBB0_1526

LBB0_446:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_447:
	LONG $0x2c0f48f2; WORD $0xfa04             // cvttsd2si    rax, qword [rdx + 8*rdi]
	WORD $0x0489; BYTE $0xb9                   // mov    dword [rcx + 4*rdi], eax
	LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x08 // cvttsd2si    rax, qword [rdx + 8*rdi + 8]
	LONG $0x04b94489                           // mov    dword [rcx + 4*rdi + 4], eax
	LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x10 // cvttsd2si    rax, qword [rdx + 8*rdi + 16]
	LONG $0x08b94489                           // mov    dword [rcx + 4*rdi + 8], eax
	LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x18 // cvttsd2si    rax, qword [rdx + 8*rdi + 24]
	LONG $0x0cb94489                           // mov    dword [rcx + 4*rdi + 12], eax
	LONG $0x04c78348                           // add    rdi, 4
	WORD $0x3948; BYTE $0xfe                   // cmp    rsi, rdi
	JNE  LBB0_447

LBB0_448:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xb90c8d48         // lea    rcx, [rcx + 4*rdi]
	LONG $0xfa148d48         // lea    rdx, [rdx + 8*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_450:
	LONG $0x2c0f48f2; WORD $0xf204 // cvttsd2si    rax, qword [rdx + 8*rsi]
	WORD $0x0489; BYTE $0xb1       // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348               // add    rsi, 1
	WORD $0x3949; BYTE $0xf0       // cmp    r8, rsi
	JNE  LBB0_450
	JMP  LBB0_1526

LBB0_454:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_944
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_456:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x447f0ff3; WORD $0x10b9 // movdqu    oword [rcx + 4*rdi + 16], xmm0
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_456
	JMP  LBB0_945

LBB0_457:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_949
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_459:
	LONG $0x33380f66; WORD $0x7a04             // pmovzxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x33380f66; WORD $0x7a44; BYTE $0x10 // pmovzxwd    xmm0, qword [rdx + 2*rdi + 16]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x18 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 24]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_459
	JMP  LBB0_950

LBB0_460:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_954
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_462:
	LONG $0x23380f66; WORD $0x7a04             // pmovsxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x23380f66; WORD $0x7a44; BYTE $0x10 // pmovsxwd    xmm0, qword [rdx + 2*rdi + 16]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 24]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_462
	JMP  LBB0_955

LBB0_463:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_959
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_465:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x447f0ff3; WORD $0x10b9 // movdqu    oword [rcx + 4*rdi + 16], xmm0
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_465
	JMP  LBB0_960

LBB0_466:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_964
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	LONG $0x204d280f         // movaps    xmm1, oword 32[rbp] /* [rip + .LCPI0_3] */
	LONG $0x3055280f         // movaps    xmm2, oword 48[rbp] /* [rip + .LCPI0_4] */

LBB0_468:
	LONG $0xba1c100f             // movups    xmm3, oword [rdx + 4*rdi]
	LONG $0xba64100f; BYTE $0x10 // movups    xmm4, oword [rdx + 4*rdi + 16]
	WORD $0x280f; BYTE $0xc3     // movaps    xmm0, xmm3
	LONG $0x01c1c20f             // cmpltps    xmm0, xmm1
	LONG $0xeb5b0ff3             // cvttps2dq    xmm5, xmm3
	WORD $0x5c0f; BYTE $0xd9     // subps    xmm3, xmm1
	LONG $0xdb5b0ff3             // cvttps2dq    xmm3, xmm3
	WORD $0x570f; BYTE $0xda     // xorps    xmm3, xmm2
	LONG $0x14380f66; BYTE $0xdd // blendvps    xmm3, xmm5, xmm0
	WORD $0x280f; BYTE $0xc4     // movaps    xmm0, xmm4
	LONG $0x01c1c20f             // cmpltps    xmm0, xmm1
	LONG $0xec5b0ff3             // cvttps2dq    xmm5, xmm4
	WORD $0x5c0f; BYTE $0xe1     // subps    xmm4, xmm1
	LONG $0xe45b0ff3             // cvttps2dq    xmm4, xmm4
	WORD $0x570f; BYTE $0xe2     // xorps    xmm4, xmm2
	LONG $0x14380f66; BYTE $0xe5 // blendvps    xmm4, xmm5, xmm0
	LONG $0xb91c110f             // movups    oword [rcx + 4*rdi], xmm3
	LONG $0xb964110f; BYTE $0x10 // movups    oword [rcx + 4*rdi + 16], xmm4
	LONG $0xba5c100f; BYTE $0x20 // movups    xmm3, oword [rdx + 4*rdi + 32]
	WORD $0x280f; BYTE $0xc3     // movaps    xmm0, xmm3
	LONG $0x01c1c20f             // cmpltps    xmm0, xmm1
	LONG $0xe35b0ff3             // cvttps2dq    xmm4, xmm3
	WORD $0x5c0f; BYTE $0xd9     // subps    xmm3, xmm1
	LONG $0xdb5b0ff3             // cvttps2dq    xmm3, xmm3
	WORD $0x570f; BYTE $0xda     // xorps    xmm3, xmm2
	LONG $0x14380f66; BYTE $0xdc // blendvps    xmm3, xmm4, xmm0
	LONG $0xba64100f; BYTE $0x30 // movups    xmm4, oword [rdx + 4*rdi + 48]
	WORD $0x280f; BYTE $0xc4     // movaps    xmm0, xmm4
	LONG $0x01c1c20f             // cmpltps    xmm0, xmm1
	LONG $0xec5b0ff3             // cvttps2dq    xmm5, xmm4
	WORD $0x5c0f; BYTE $0xe1     // subps    xmm4, xmm1
	LONG $0xe45b0ff3             // cvttps2dq    xmm4, xmm4
	WORD $0x570f; BYTE $0xe2     // xorps    xmm4, xmm2
	LONG $0x14380f66; BYTE $0xe5 // blendvps    xmm4, xmm5, xmm0
	LONG $0xb95c110f; BYTE $0x20 // movups    oword [rcx + 4*rdi + 32], xmm3
	LONG $0xb964110f; BYTE $0x30 // movups    oword [rcx + 4*rdi + 48], xmm4
	LONG $0x10c78348             // add    rdi, 16
	LONG $0x02c08348             // add    rax, 2
	JNE  LBB0_468
	JMP  LBB0_965

LBB0_475:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_476:
	WORD $0x048b; BYTE $0xba       // mov    eax, dword [rdx + 4*rdi]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; BYTE $0xc0   // cvtsi2sd    xmm0, rax
	LONG $0x04110ff2; BYTE $0xf9   // movsd    qword [rcx + 8*rdi], xmm0
	LONG $0x04ba448b               // mov    eax, dword [rdx + 4*rdi + 4]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; BYTE $0xc0   // cvtsi2sd    xmm0, rax
	LONG $0x44110ff2; WORD $0x08f9 // movsd    qword [rcx + 8*rdi + 8], xmm0
	LONG $0x08ba448b               // mov    eax, dword [rdx + 4*rdi + 8]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; BYTE $0xc0   // cvtsi2sd    xmm0, rax
	LONG $0x44110ff2; WORD $0x10f9 // movsd    qword [rcx + 8*rdi + 16], xmm0
	LONG $0x0cba448b               // mov    eax, dword [rdx + 4*rdi + 12]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; BYTE $0xc0   // cvtsi2sd    xmm0, rax
	LONG $0x44110ff2; WORD $0x18f9 // movsd    qword [rcx + 8*rdi + 24], xmm0
	LONG $0x04c78348               // add    rdi, 4
	WORD $0x3948; BYTE $0xfe       // cmp    rsi, rdi
	JNE  LBB0_476

LBB0_477:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	LONG $0xba148d48         // lea    rdx, [rdx + 4*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_479:
	WORD $0x048b; BYTE $0xb2     // mov    eax, dword [rdx + 4*rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; BYTE $0xc0 // cvtsi2sd    xmm0, rax
	LONG $0x04110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf0     // cmp    r8, rsi
	JNE  LBB0_479
	JMP  LBB0_1526

LBB0_483:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_484:
	LONG $0x3a04be0f               // movsx    eax, byte [rdx + rdi]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf9   // movsd    qword [rcx + 8*rdi], xmm0
	LONG $0x3a44be0f; BYTE $0x01   // movsx    eax, byte [rdx + rdi + 1]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x08f9 // movsd    qword [rcx + 8*rdi + 8], xmm0
	LONG $0x3a44be0f; BYTE $0x02   // movsx    eax, byte [rdx + rdi + 2]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x10f9 // movsd    qword [rcx + 8*rdi + 16], xmm0
	LONG $0x3a44be0f; BYTE $0x03   // movsx    eax, byte [rdx + rdi + 3]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x18f9 // movsd    qword [rcx + 8*rdi + 24], xmm0
	LONG $0x04c78348               // add    rdi, 4
	WORD $0x3948; BYTE $0xfe       // cmp    rsi, rdi
	JNE  LBB0_484

LBB0_485:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	WORD $0x0148; BYTE $0xfa // add    rdx, rdi
	WORD $0xf631             // xor    esi, esi

LBB0_487:
	LONG $0x3204be0f             // movsx    eax, byte [rdx + rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff2             // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf0     // cmp    r8, rsi
	JNE  LBB0_487
	JMP  LBB0_1526

LBB0_488:
	WORD $0x8944; BYTE $0xce     // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc     // and    esi, -4
	LONG $0xfc468d48             // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0     // mov    r8, rax
	LONG $0x02e8c149             // shr    r8, 2
	LONG $0x01c08349             // add    r8, 1
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JE   LBB0_969
	WORD $0x894c; BYTE $0xc0     // mov    rax, r8
	LONG $0xfee08348             // and    rax, -2
	WORD $0xf748; BYTE $0xd8     // neg    rax
	WORD $0xff31                 // xor    edi, edi
	LONG $0xc0ef0f66             // pxor    xmm0, xmm0
	LONG $0x4d6f0f66; BYTE $0x50 // movdqa    xmm1, oword 80[rbp] /* [rip + .LCPI0_6] */
	LONG $0x556f0f66; BYTE $0x60 // movdqa    xmm2, oword 96[rbp] /* [rip + .LCPI0_7] */
	LONG $0x5d280f66; BYTE $0x70 // movapd    xmm3, oword 112[rbp] /* [rip + .LCPI0_8] */

LBB0_490:
	LONG $0x246f0ff3; BYTE $0xfa   // movdqu    xmm4, oword [rdx + 8*rdi]
	LONG $0x6c6f0ff3; WORD $0x10fa // movdqu    xmm5, oword [rdx + 8*rdi + 16]
	LONG $0xf46f0f66               // movdqa    xmm6, xmm4
	LONG $0x0e3a0f66; WORD $0xccf0 // pblendw    xmm6, xmm0, 204
	LONG $0xf1eb0f66               // por    xmm6, xmm1
	LONG $0xd4730f66; BYTE $0x20   // psrlq    xmm4, 32
	LONG $0xe2eb0f66               // por    xmm4, xmm2
	LONG $0xe35c0f66               // subpd    xmm4, xmm3
	LONG $0xe6580f66               // addpd    xmm4, xmm6
	LONG $0xf56f0f66               // movdqa    xmm6, xmm5
	LONG $0x0e3a0f66; WORD $0xccf0 // pblendw    xmm6, xmm0, 204
	LONG $0xf1eb0f66               // por    xmm6, xmm1
	LONG $0xd5730f66; BYTE $0x20   // psrlq    xmm5, 32
	LONG $0xeaeb0f66               // por    xmm5, xmm2
	LONG $0xeb5c0f66               // subpd    xmm5, xmm3
	LONG $0xee580f66               // addpd    xmm5, xmm6
	LONG $0x24110f66; BYTE $0xf9   // movupd    oword [rcx + 8*rdi], xmm4
	LONG $0x6c110f66; WORD $0x10f9 // movupd    oword [rcx + 8*rdi + 16], xmm5
	LONG $0x646f0ff3; WORD $0x20fa // movdqu    xmm4, oword [rdx + 8*rdi + 32]
	LONG $0x6c6f0ff3; WORD $0x30fa // movdqu    xmm5, oword [rdx + 8*rdi + 48]
	LONG $0xf46f0f66               // movdqa    xmm6, xmm4
	LONG $0x0e3a0f66; WORD $0xccf0 // pblendw    xmm6, xmm0, 204
	LONG $0xf1eb0f66               // por    xmm6, xmm1
	LONG $0xd4730f66; BYTE $0x20   // psrlq    xmm4, 32
	LONG $0xe2eb0f66               // por    xmm4, xmm2
	LONG $0xe35c0f66               // subpd    xmm4, xmm3
	LONG $0xe6580f66               // addpd    xmm4, xmm6
	LONG $0xf56f0f66               // movdqa    xmm6, xmm5
	LONG $0x0e3a0f66; WORD $0xccf0 // pblendw    xmm6, xmm0, 204
	LONG $0xf1eb0f66               // por    xmm6, xmm1
	LONG $0xd5730f66; BYTE $0x20   // psrlq    xmm5, 32
	LONG $0xeaeb0f66               // por    xmm5, xmm2
	LONG $0xeb5c0f66               // subpd    xmm5, xmm3
	LONG $0xee580f66               // addpd    xmm5, xmm6
	LONG $0x64110f66; WORD $0x20f9 // movupd    oword [rcx + 8*rdi + 32], xmm4
	LONG $0x6c110f66; WORD $0x30f9 // movupd    oword [rcx + 8*rdi + 48], xmm5
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_490
	JMP  LBB0_970

LBB0_491:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_492:
	LONG $0x7a04b70f               // movzx    eax, word [rdx + 2*rdi]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf9   // movsd    qword [rcx + 8*rdi], xmm0
	LONG $0x7a44b70f; BYTE $0x02   // movzx    eax, word [rdx + 2*rdi + 2]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x08f9 // movsd    qword [rcx + 8*rdi + 8], xmm0
	LONG $0x7a44b70f; BYTE $0x04   // movzx    eax, word [rdx + 2*rdi + 4]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x10f9 // movsd    qword [rcx + 8*rdi + 16], xmm0
	LONG $0x7a44b70f; BYTE $0x06   // movzx    eax, word [rdx + 2*rdi + 6]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x18f9 // movsd    qword [rcx + 8*rdi + 24], xmm0
	LONG $0x04c78348               // add    rdi, 4
	WORD $0x3948; BYTE $0xfe       // cmp    rsi, rdi
	JNE  LBB0_492

LBB0_493:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	LONG $0x7a148d48         // lea    rdx, [rdx + 2*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_495:
	LONG $0x7204b70f             // movzx    eax, word [rdx + 2*rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff2             // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf0     // cmp    r8, rsi
	JNE  LBB0_495
	JMP  LBB0_1526

LBB0_496:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_497:
	LONG $0x7a04bf0f               // movsx    eax, word [rdx + 2*rdi]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf9   // movsd    qword [rcx + 8*rdi], xmm0
	LONG $0x7a44bf0f; BYTE $0x02   // movsx    eax, word [rdx + 2*rdi + 2]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x08f9 // movsd    qword [rcx + 8*rdi + 8], xmm0
	LONG $0x7a44bf0f; BYTE $0x04   // movsx    eax, word [rdx + 2*rdi + 4]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x10f9 // movsd    qword [rcx + 8*rdi + 16], xmm0
	LONG $0x7a44bf0f; BYTE $0x06   // movsx    eax, word [rdx + 2*rdi + 6]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x18f9 // movsd    qword [rcx + 8*rdi + 24], xmm0
	LONG $0x04c78348               // add    rdi, 4
	WORD $0x3948; BYTE $0xfe       // cmp    rsi, rdi
	JNE  LBB0_497

LBB0_498:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	LONG $0x7a148d48         // lea    rdx, [rdx + 2*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_500:
	LONG $0x7204bf0f             // movsx    eax, word [rdx + 2*rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff2             // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf0     // cmp    r8, rsi
	JNE  LBB0_500
	JMP  LBB0_1526

LBB0_501:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_502:
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; WORD $0xfa04             // cvtsi2sd    xmm0, qword [rdx + 8*rdi]
	LONG $0x04110ff2; BYTE $0xf9               // movsd    qword [rcx + 8*rdi], xmm0
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; WORD $0xfa44; BYTE $0x08 // cvtsi2sd    xmm0, qword [rdx + 8*rdi + 8]
	LONG $0x44110ff2; WORD $0x08f9             // movsd    qword [rcx + 8*rdi + 8], xmm0
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; WORD $0xfa44; BYTE $0x10 // cvtsi2sd    xmm0, qword [rdx + 8*rdi + 16]
	LONG $0x44110ff2; WORD $0x10f9             // movsd    qword [rcx + 8*rdi + 16], xmm0
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; WORD $0xfa44; BYTE $0x18 // cvtsi2sd    xmm0, qword [rdx + 8*rdi + 24]
	LONG $0x44110ff2; WORD $0x18f9             // movsd    qword [rcx + 8*rdi + 24], xmm0
	LONG $0x04c78348                           // add    rdi, 4
	WORD $0x3948; BYTE $0xfe                   // cmp    rsi, rdi
	JNE  LBB0_502

LBB0_503:
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	LONG $0xfa148d48         // lea    rdx, [rdx + 8*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_505:
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x2a0f48f2; WORD $0xf204 // cvtsi2sd    xmm0, qword [rdx + 8*rsi]
	LONG $0x04110ff2; BYTE $0xf1   // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348               // add    rsi, 1
	WORD $0x3948; BYTE $0xf0       // cmp    rax, rsi
	JNE  LBB0_505
	JMP  LBB0_1526

LBB0_506:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_975
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_508:
	LONG $0xba045a0f               // cvtps2pd    xmm0, qword [rdx + 4*rdi]
	LONG $0xba4c5a0f; BYTE $0x08   // cvtps2pd    xmm1, qword [rdx + 4*rdi + 8]
	LONG $0xf904110f               // movups    oword [rcx + 8*rdi], xmm0
	LONG $0xf94c110f; BYTE $0x10   // movups    oword [rcx + 8*rdi + 16], xmm1
	LONG $0xba445a0f; BYTE $0x10   // cvtps2pd    xmm0, qword [rdx + 4*rdi + 16]
	LONG $0xba4c5a0f; BYTE $0x18   // cvtps2pd    xmm1, qword [rdx + 4*rdi + 24]
	LONG $0x44110f66; WORD $0x20f9 // movupd    oword [rcx + 8*rdi + 32], xmm0
	LONG $0x4c110f66; WORD $0x30f9 // movupd    oword [rcx + 8*rdi + 48], xmm1
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_508
	JMP  LBB0_976

LBB0_509:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_510:
	LONG $0x3a04b60f               // movzx    eax, byte [rdx + rdi]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf9   // movsd    qword [rcx + 8*rdi], xmm0
	LONG $0x3a44b60f; BYTE $0x01   // movzx    eax, byte [rdx + rdi + 1]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x08f9 // movsd    qword [rcx + 8*rdi + 8], xmm0
	LONG $0x3a44b60f; BYTE $0x02   // movzx    eax, byte [rdx + rdi + 2]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x10f9 // movsd    qword [rcx + 8*rdi + 16], xmm0
	LONG $0x3a44b60f; BYTE $0x03   // movzx    eax, byte [rdx + rdi + 3]
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0xc02a0ff2               // cvtsi2sd    xmm0, eax
	LONG $0x44110ff2; WORD $0x18f9 // movsd    qword [rcx + 8*rdi + 24], xmm0
	LONG $0x04c78348               // add    rdi, 4
	WORD $0x3948; BYTE $0xfe       // cmp    rsi, rdi
	JNE  LBB0_510

LBB0_511:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	WORD $0x0148; BYTE $0xfa // add    rdx, rdi
	WORD $0xf631             // xor    esi, esi

LBB0_513:
	LONG $0x3204b60f             // movzx    eax, byte [rdx + rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff2             // cvtsi2sd    xmm0, eax
	LONG $0x04110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf0     // cmp    r8, rsi
	JNE  LBB0_513
	JMP  LBB0_1526

LBB0_514:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_515:
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x042a0ff2; BYTE $0xba   // cvtsi2sd    xmm0, dword [rdx + 4*rdi]
	LONG $0x04110ff2; BYTE $0xf9   // movsd    qword [rcx + 8*rdi], xmm0
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x442a0ff2; WORD $0x04ba // cvtsi2sd    xmm0, dword [rdx + 4*rdi + 4]
	LONG $0x44110ff2; WORD $0x08f9 // movsd    qword [rcx + 8*rdi + 8], xmm0
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x442a0ff2; WORD $0x08ba // cvtsi2sd    xmm0, dword [rdx + 4*rdi + 8]
	LONG $0x44110ff2; WORD $0x10f9 // movsd    qword [rcx + 8*rdi + 16], xmm0
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x442a0ff2; WORD $0x0cba // cvtsi2sd    xmm0, dword [rdx + 4*rdi + 12]
	LONG $0x44110ff2; WORD $0x18f9 // movsd    qword [rcx + 8*rdi + 24], xmm0
	LONG $0x04c78348               // add    rdi, 4
	WORD $0x3948; BYTE $0xfe       // cmp    rsi, rdi
	JNE  LBB0_515

LBB0_516:
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	LONG $0xba148d48         // lea    rdx, [rdx + 4*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_518:
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0x042a0ff2; BYTE $0xb2 // cvtsi2sd    xmm0, dword [rdx + 4*rsi]
	LONG $0x04110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3948; BYTE $0xf0     // cmp    rax, rsi
	JNE  LBB0_518
	JMP  LBB0_1526

LBB0_549:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_801
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_803

LBB0_551:
	LONG $0xfce18341             // and    r9d, -4
	WORD $0xc031                 // xor    eax, eax
	LONG $0x45100ff2; BYTE $0x00 // movsd    xmm0, qword 0[rbp] /* [rip + .LCPI0_0] */

LBB0_552:
	LONG $0x0c100ff2; BYTE $0xc2   // movsd    xmm1, qword [rdx + 8*rax]
	LONG $0xd1280f66               // movapd    xmm2, xmm1
	LONG $0xd05c0ff2               // subsd    xmm2, xmm0
	LONG $0x2c0f48f2; BYTE $0xfa   // cvttsd2si    rdi, xmm2
	WORD $0x314c; BYTE $0xd7       // xor    rdi, r10
	LONG $0x2c0f48f2; BYTE $0xf1   // cvttsd2si    rsi, xmm1
	LONG $0xc12e0f66               // ucomisd    xmm0, xmm1
	LONG $0xf7460f48               // cmovbe    rsi, rdi
	LONG $0xc1348948               // mov    qword [rcx + 8*rax], rsi
	LONG $0x4c100ff2; WORD $0x08c2 // movsd    xmm1, qword [rdx + 8*rax + 8]
	LONG $0xd1280f66               // movapd    xmm2, xmm1
	LONG $0xd05c0ff2               // subsd    xmm2, xmm0
	LONG $0x2c0f48f2; BYTE $0xf2   // cvttsd2si    rsi, xmm2
	WORD $0x314c; BYTE $0xd6       // xor    rsi, r10
	LONG $0x2c0f48f2; BYTE $0xf9   // cvttsd2si    rdi, xmm1
	LONG $0xc12e0f66               // ucomisd    xmm0, xmm1
	LONG $0xfe460f48               // cmovbe    rdi, rsi
	LONG $0xc17c8948; BYTE $0x08   // mov    qword [rcx + 8*rax + 8], rdi
	LONG $0x4c100ff2; WORD $0x10c2 // movsd    xmm1, qword [rdx + 8*rax + 16]
	LONG $0xd1280f66               // movapd    xmm2, xmm1
	LONG $0xd05c0ff2               // subsd    xmm2, xmm0
	LONG $0x2c0f48f2; BYTE $0xf2   // cvttsd2si    rsi, xmm2
	WORD $0x314c; BYTE $0xd6       // xor    rsi, r10
	LONG $0x2c0f48f2; BYTE $0xf9   // cvttsd2si    rdi, xmm1
	LONG $0xc12e0f66               // ucomisd    xmm0, xmm1
	LONG $0xfe460f48               // cmovbe    rdi, rsi
	LONG $0xc17c8948; BYTE $0x10   // mov    qword [rcx + 8*rax + 16], rdi
	LONG $0x4c100ff2; WORD $0x18c2 // movsd    xmm1, qword [rdx + 8*rax + 24]
	LONG $0xd1280f66               // movapd    xmm2, xmm1
	LONG $0xd05c0ff2               // subsd    xmm2, xmm0
	LONG $0x2c0f48f2; BYTE $0xf2   // cvttsd2si    rsi, xmm2
	WORD $0x314c; BYTE $0xd6       // xor    rsi, r10
	LONG $0x2c0f48f2; BYTE $0xf9   // cvttsd2si    rdi, xmm1
	LONG $0xc12e0f66               // ucomisd    xmm0, xmm1
	LONG $0xfe460f48               // cmovbe    rdi, rsi
	LONG $0xc17c8948; BYTE $0x18   // mov    qword [rcx + 8*rax + 24], rdi
	LONG $0x04c08348               // add    rax, 4
	WORD $0x3949; BYTE $0xc1       // cmp    r9, rax
	JNE  LBB0_552

LBB0_553:
	WORD $0x854d; BYTE $0xc0     // test    r8, r8
	JE   LBB0_1526
	LONG $0xc10c8d48             // lea    rcx, [rcx + 8*rax]
	LONG $0xc2048d48             // lea    rax, [rdx + 8*rax]
	WORD $0xd231                 // xor    edx, edx
	LONG $0x45100ff2; BYTE $0x00 // movsd    xmm0, qword 0[rbp] /* [rip + .LCPI0_0] */

LBB0_555:
	LONG $0x0c100ff2; BYTE $0xd0 // movsd    xmm1, qword [rax + 8*rdx]
	LONG $0xd1280f66             // movapd    xmm2, xmm1
	LONG $0xd05c0ff2             // subsd    xmm2, xmm0
	LONG $0x2c0f48f2; BYTE $0xf2 // cvttsd2si    rsi, xmm2
	WORD $0x314c; BYTE $0xd6     // xor    rsi, r10
	LONG $0x2c0f48f2; BYTE $0xf9 // cvttsd2si    rdi, xmm1
	LONG $0xc12e0f66             // ucomisd    xmm0, xmm1
	LONG $0xfe460f48             // cmovbe    rdi, rsi
	LONG $0xd13c8948             // mov    qword [rcx + 8*rdx], rdi
	LONG $0x01c28348             // add    rdx, 1
	WORD $0x3949; BYTE $0xd0     // cmp    r8, rdx
	JNE  LBB0_555
	JMP  LBB0_1526

LBB0_562:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_812
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_814

LBB0_564:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_819
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_821

LBB0_569:
	LONG $0xfce18341                       // and    r9d, -4
	WORD $0xff31                           // xor    edi, edi
	QUAD $0x0000011085100ff3               // movss    xmm0, dword 272[rbp] /* [rip + .LCPI0_2] */
	QUAD $0x000000000000ba49; WORD $0x8000 // mov    r10, -9223372036854775808

LBB0_570:
	LONG $0x0c100ff3; BYTE $0xba   // movss    xmm1, dword [rdx + 4*rdi]
	WORD $0x280f; BYTE $0xd1       // movaps    xmm2, xmm1
	LONG $0xd05c0ff3               // subss    xmm2, xmm0
	LONG $0x2c0f48f3; BYTE $0xf2   // cvttss2si    rsi, xmm2
	WORD $0x314c; BYTE $0xd6       // xor    rsi, r10
	LONG $0x2c0f48f3; BYTE $0xc1   // cvttss2si    rax, xmm1
	WORD $0x2e0f; BYTE $0xc1       // ucomiss    xmm0, xmm1
	LONG $0xc6460f48               // cmovbe    rax, rsi
	LONG $0xf9048948               // mov    qword [rcx + 8*rdi], rax
	LONG $0x4c100ff3; WORD $0x04ba // movss    xmm1, dword [rdx + 4*rdi + 4]
	WORD $0x280f; BYTE $0xd1       // movaps    xmm2, xmm1
	LONG $0xd05c0ff3               // subss    xmm2, xmm0
	LONG $0x2c0f48f3; BYTE $0xc2   // cvttss2si    rax, xmm2
	WORD $0x314c; BYTE $0xd0       // xor    rax, r10
	LONG $0x2c0f48f3; BYTE $0xf1   // cvttss2si    rsi, xmm1
	WORD $0x2e0f; BYTE $0xc1       // ucomiss    xmm0, xmm1
	LONG $0xf0460f48               // cmovbe    rsi, rax
	LONG $0xf9748948; BYTE $0x08   // mov    qword [rcx + 8*rdi + 8], rsi
	LONG $0x4c100ff3; WORD $0x08ba // movss    xmm1, dword [rdx + 4*rdi + 8]
	WORD $0x280f; BYTE $0xd1       // movaps    xmm2, xmm1
	LONG $0xd05c0ff3               // subss    xmm2, xmm0
	LONG $0x2c0f48f3; BYTE $0xc2   // cvttss2si    rax, xmm2
	WORD $0x314c; BYTE $0xd0       // xor    rax, r10
	LONG $0x2c0f48f3; BYTE $0xf1   // cvttss2si    rsi, xmm1
	WORD $0x2e0f; BYTE $0xc1       // ucomiss    xmm0, xmm1
	LONG $0xf0460f48               // cmovbe    rsi, rax
	LONG $0xf9748948; BYTE $0x10   // mov    qword [rcx + 8*rdi + 16], rsi
	LONG $0x4c100ff3; WORD $0x0cba // movss    xmm1, dword [rdx + 4*rdi + 12]
	WORD $0x280f; BYTE $0xd1       // movaps    xmm2, xmm1
	LONG $0xd05c0ff3               // subss    xmm2, xmm0
	LONG $0x2c0f48f3; BYTE $0xc2   // cvttss2si    rax, xmm2
	WORD $0x314c; BYTE $0xd0       // xor    rax, r10
	LONG $0x2c0f48f3; BYTE $0xf1   // cvttss2si    rsi, xmm1
	WORD $0x2e0f; BYTE $0xc1       // ucomiss    xmm0, xmm1
	LONG $0xf0460f48               // cmovbe    rsi, rax
	LONG $0xf9748948; BYTE $0x18   // mov    qword [rcx + 8*rdi + 24], rsi
	LONG $0x04c78348               // add    rdi, 4
	WORD $0x3949; BYTE $0xf9       // cmp    r9, rdi
	JNE  LBB0_570

LBB0_571:
	WORD $0x854d; BYTE $0xc0               // test    r8, r8
	JE   LBB0_1526
	LONG $0xf9048d48                       // lea    rax, [rcx + 8*rdi]
	LONG $0xba0c8d48                       // lea    rcx, [rdx + 4*rdi]
	WORD $0xd231                           // xor    edx, edx
	QUAD $0x0000011085100ff3               // movss    xmm0, dword 272[rbp] /* [rip + .LCPI0_2] */
	QUAD $0x000000000000b949; WORD $0x8000 // mov    r9, -9223372036854775808

LBB0_573:
	LONG $0x0c100ff3; BYTE $0x91 // movss    xmm1, dword [rcx + 4*rdx]
	WORD $0x280f; BYTE $0xd1     // movaps    xmm2, xmm1
	LONG $0xd05c0ff3             // subss    xmm2, xmm0
	LONG $0x2c0f48f3; BYTE $0xfa // cvttss2si    rdi, xmm2
	WORD $0x314c; BYTE $0xcf     // xor    rdi, r9
	LONG $0x2c0f48f3; BYTE $0xf1 // cvttss2si    rsi, xmm1
	WORD $0x2e0f; BYTE $0xc1     // ucomiss    xmm0, xmm1
	LONG $0xf7460f48             // cmovbe    rsi, rdi
	LONG $0xd0348948             // mov    qword [rax + 8*rdx], rsi
	LONG $0x01c28348             // add    rdx, 1
	WORD $0x3949; BYTE $0xd0     // cmp    r8, rdx
	JNE  LBB0_573
	JMP  LBB0_1526

LBB0_577:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_830
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_832

LBB0_579:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_980
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000b0856f0f66 // movdqa    xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */

LBB0_581:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1079 // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_581
	JMP  LBB0_981

LBB0_582:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_985
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000b0856f0f66 // movdqa    xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */

LBB0_584:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1079 // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_584
	JMP  LBB0_986

LBB0_585:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_990
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_587:
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1
	LONG $0x44100f66; WORD $0x20fa // movupd    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c100f66; WORD $0x30fa // movupd    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x447e0f66; WORD $0x0879 // movd    dword [rcx + 2*rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c79 // movd    dword [rcx + 2*rdi + 12], xmm1
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_587
	JMP  LBB0_991

LBB0_588:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_995
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_590:
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1
	LONG $0x44100f66; WORD $0x20fa // movupd    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c100f66; WORD $0x30fa // movupd    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x447e0f66; WORD $0x0879 // movd    dword [rcx + 2*rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c79 // movd    dword [rcx + 2*rdi + 12], xmm1
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_590
	JMP  LBB0_996

LBB0_597:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1000
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_599:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x447e0f66; WORD $0x0879 // movd    dword [rcx + 2*rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c79 // movd    dword [rcx + 2*rdi + 12], xmm1
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_599
	JMP  LBB0_1001

LBB0_600:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1005
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_602:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x447e0f66; WORD $0x0879 // movd    dword [rcx + 2*rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c79 // movd    dword [rcx + 2*rdi + 12], xmm1
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_602
	JMP  LBB0_1006

LBB0_615:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1010
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_617:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x447e0f66; WORD $0x0879 // movd    dword [rcx + 2*rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c79 // movd    dword [rcx + 2*rdi + 12], xmm1
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_617
	JMP  LBB0_1011

LBB0_618:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1015
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_620:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x447e0f66; WORD $0x0879 // movd    dword [rcx + 2*rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c79 // movd    dword [rcx + 2*rdi + 12], xmm1
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_620
	JMP  LBB0_1016

LBB0_621:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1020
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_623:
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0x2b380f66; BYTE $0xc1   // packusdw    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0xba44100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rdi + 32]
	LONG $0xba4c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rdi + 48]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0x2b380f66; BYTE $0xc1   // packusdw    xmm0, xmm1
	LONG $0x447f0ff3; WORD $0x1079 // movdqu    oword [rcx + 2*rdi + 16], xmm0
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_623
	JMP  LBB0_1021

LBB0_624:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1025
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_626:
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0xc16b0f66               // packssdw    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0xba44100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rdi + 32]
	LONG $0xba4c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rdi + 48]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0xc16b0f66               // packssdw    xmm0, xmm1
	LONG $0x447f0ff3; WORD $0x1079 // movdqu    oword [rcx + 2*rdi + 16], xmm0
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_626
	JMP  LBB0_1026

LBB0_633:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1030
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000b0856f0f66 // movdqa    xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */

LBB0_635:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1079 // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_635
	JMP  LBB0_1031

LBB0_636:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1035
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000b0856f0f66 // movdqa    xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */

LBB0_638:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1079 // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_638
	JMP  LBB0_1036

LBB0_639:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_857
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_859

LBB0_641:
	WORD $0x8944; BYTE $0xce                   // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8                   // and    esi, -8
	LONG $0xf8468d48                           // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0                   // mov    r8, rax
	LONG $0x03e8c149                           // shr    r8, 3
	LONG $0x01c08349                           // add    r8, 1
	WORD $0x8548; BYTE $0xc0                   // test    rax, rax
	JE   LBB0_1040
	WORD $0x894c; BYTE $0xc0                   // mov    rax, r8
	LONG $0xfee08348                           // and    rax, -2
	WORD $0xf748; BYTE $0xd8                   // neg    rax
	WORD $0xff31                               // xor    edi, edi
	QUAD $0x000000d0856f0f66                   // movdqa    xmm0, oword 208[rbp] /* [rip + .LCPI0_14] */
	QUAD $0x000000e08d6f0f66                   // movdqa    xmm1, oword 224[rbp] /* [rip + .LCPI0_15] */
	LONG $0xf095280f; WORD $0x0000; BYTE $0x00 // movaps    xmm2, oword 240[rbp] /* [rip + .LCPI0_16] */

LBB0_643:
	LONG $0x1c6f0ff3; BYTE $0xba   // movdqu    xmm3, oword [rdx + 4*rdi]
	LONG $0x646f0ff3; WORD $0x10ba // movdqu    xmm4, oword [rdx + 4*rdi + 16]
	LONG $0xeb6f0f66               // movdqa    xmm5, xmm3
	LONG $0x0e3a0f66; WORD $0xaae8 // pblendw    xmm5, xmm0, 170
	LONG $0xd3720f66; BYTE $0x10   // psrld    xmm3, 16
	LONG $0x0e3a0f66; WORD $0xaad9 // pblendw    xmm3, xmm1, 170
	WORD $0x5c0f; BYTE $0xda       // subps    xmm3, xmm2
	WORD $0x580f; BYTE $0xdd       // addps    xmm3, xmm5
	LONG $0xec6f0f66               // movdqa    xmm5, xmm4
	LONG $0x0e3a0f66; WORD $0xaae8 // pblendw    xmm5, xmm0, 170
	LONG $0xd4720f66; BYTE $0x10   // psrld    xmm4, 16
	LONG $0x0e3a0f66; WORD $0xaae1 // pblendw    xmm4, xmm1, 170
	WORD $0x5c0f; BYTE $0xe2       // subps    xmm4, xmm2
	WORD $0x580f; BYTE $0xe5       // addps    xmm4, xmm5
	LONG $0xb91c110f               // movups    oword [rcx + 4*rdi], xmm3
	LONG $0xb964110f; BYTE $0x10   // movups    oword [rcx + 4*rdi + 16], xmm4
	LONG $0x5c6f0ff3; WORD $0x20ba // movdqu    xmm3, oword [rdx + 4*rdi + 32]
	LONG $0x646f0ff3; WORD $0x30ba // movdqu    xmm4, oword [rdx + 4*rdi + 48]
	LONG $0xeb6f0f66               // movdqa    xmm5, xmm3
	LONG $0x0e3a0f66; WORD $0xaae8 // pblendw    xmm5, xmm0, 170
	LONG $0xd3720f66; BYTE $0x10   // psrld    xmm3, 16
	LONG $0x0e3a0f66; WORD $0xaad9 // pblendw    xmm3, xmm1, 170
	WORD $0x5c0f; BYTE $0xda       // subps    xmm3, xmm2
	WORD $0x580f; BYTE $0xdd       // addps    xmm3, xmm5
	LONG $0xec6f0f66               // movdqa    xmm5, xmm4
	LONG $0x0e3a0f66; WORD $0xaae8 // pblendw    xmm5, xmm0, 170
	LONG $0xd4720f66; BYTE $0x10   // psrld    xmm4, 16
	LONG $0x0e3a0f66; WORD $0xaae1 // pblendw    xmm4, xmm1, 170
	WORD $0x5c0f; BYTE $0xe2       // subps    xmm4, xmm2
	WORD $0x580f; BYTE $0xe5       // addps    xmm4, xmm5
	LONG $0xb95c110f; BYTE $0x20   // movups    oword [rcx + 4*rdi + 32], xmm3
	LONG $0xb964110f; BYTE $0x30   // movups    oword [rcx + 4*rdi + 48], xmm4
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_643
	JMP  LBB0_1041

LBB0_644:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_645:
	LONG $0x2c0f48f2; WORD $0xfa04             // cvttsd2si    rax, qword [rdx + 8*rdi]
	LONG $0xf9048948                           // mov    qword [rcx + 8*rdi], rax
	LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x08 // cvttsd2si    rax, qword [rdx + 8*rdi + 8]
	LONG $0xf9448948; BYTE $0x08               // mov    qword [rcx + 8*rdi + 8], rax
	LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x10 // cvttsd2si    rax, qword [rdx + 8*rdi + 16]
	LONG $0xf9448948; BYTE $0x10               // mov    qword [rcx + 8*rdi + 16], rax
	LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x18 // cvttsd2si    rax, qword [rdx + 8*rdi + 24]
	LONG $0xf9448948; BYTE $0x18               // mov    qword [rcx + 8*rdi + 24], rax
	LONG $0x04c78348                           // add    rdi, 4
	WORD $0x3948; BYTE $0xfe                   // cmp    rsi, rdi
	JNE  LBB0_645

LBB0_646:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	LONG $0xfa148d48         // lea    rdx, [rdx + 8*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_648:
	LONG $0x2c0f48f2; WORD $0xf204 // cvttsd2si    rax, qword [rdx + 8*rsi]
	LONG $0xf1048948               // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348               // add    rsi, 1
	WORD $0x3949; BYTE $0xf0       // cmp    r8, rsi
	JNE  LBB0_648
	JMP  LBB0_1526

LBB0_649:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1045
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_651:
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc05a0f66               // cvtpd2ps    xmm0, xmm0
	LONG $0xc95a0f66               // cvtpd2ps    xmm1, xmm1
	LONG $0xc1140f66               // unpcklpd    xmm0, xmm1
	LONG $0x04110f66; BYTE $0xb9   // movupd    oword [rcx + 4*rdi], xmm0
	LONG $0x44100f66; WORD $0x20fa // movupd    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c100f66; WORD $0x30fa // movupd    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc05a0f66               // cvtpd2ps    xmm0, xmm0
	LONG $0xc95a0f66               // cvtpd2ps    xmm1, xmm1
	LONG $0xc1140f66               // unpcklpd    xmm0, xmm1
	LONG $0x44110f66; WORD $0x10b9 // movupd    oword [rcx + 4*rdi + 16], xmm0
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_651
	JMP  LBB0_1046

LBB0_661:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1050
	WORD $0x894d; BYTE $0xc2 // mov    r10, r8
	LONG $0xfee28349         // and    r10, -2
	WORD $0xf749; BYTE $0xda // neg    r10
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000a0956f0f66 // movdqa    xmm2, oword 160[rbp] /* [rip + .LCPI0_11] */

LBB0_663:
	LONG $0x046f0ff3; BYTE $0xfa               // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0xc86f0f66                           // movdqa    xmm1, xmm0
	LONG $0xcadb0f66                           // pand    xmm1, xmm2
	LONG $0xd86f0f66                           // movdqa    xmm3, xmm0
	LONG $0xd3730f66; BYTE $0x01               // psrlq    xmm3, 1
	LONG $0xd9eb0f66                           // por    xmm3, xmm1
	LONG $0xe4ef0f66                           // pxor    xmm4, xmm4
	LONG $0x37380f66; BYTE $0xe0               // pcmpgtq    xmm4, xmm0
	LONG $0x15380f66; BYTE $0xc3               // blendvpd    xmm0, xmm3, xmm0
	LONG $0x3a0f4866; WORD $0xc016; BYTE $0x01 // pextrq    rax, xmm0, 1
	WORD $0x570f; BYTE $0xed                   // xorps    xmm5, xmm5
	LONG $0x2a0f48f3; BYTE $0xe8               // cvtsi2ss    xmm5, rax
	LONG $0x7e0f4866; BYTE $0xc0               // movq    rax, xmm0
	WORD $0x570f; BYTE $0xdb                   // xorps    xmm3, xmm3
	LONG $0x2a0f48f3; BYTE $0xd8               // cvtsi2ss    xmm3, rax
	LONG $0x4c6f0ff3; WORD $0x10fa             // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x213a0f66; WORD $0x1cdd             // insertps    xmm3, xmm5, 28
	WORD $0x280f; BYTE $0xeb                   // movaps    xmm5, xmm3
	WORD $0x580f; BYTE $0xeb                   // addps    xmm5, xmm3
	LONG $0xc4700f66; BYTE $0xed               // pshufd    xmm0, xmm4, 237
	LONG $0x14380f66; BYTE $0xdd               // blendvps    xmm3, xmm5, xmm0
	LONG $0xc16f0f66                           // movdqa    xmm0, xmm1
	LONG $0xc2db0f66                           // pand    xmm0, xmm2
	LONG $0xe16f0f66                           // movdqa    xmm4, xmm1
	LONG $0xd4730f66; BYTE $0x01               // psrlq    xmm4, 1
	LONG $0xe0eb0f66                           // por    xmm4, xmm0
	WORD $0x570f; BYTE $0xed                   // xorps    xmm5, xmm5
	LONG $0x37380f66; BYTE $0xe9               // pcmpgtq    xmm5, xmm1
	LONG $0xc16f0f66                           // movdqa    xmm0, xmm1
	LONG $0x15380f66; BYTE $0xcc               // blendvpd    xmm1, xmm4, xmm0
	LONG $0x3a0f4866; WORD $0xc816; BYTE $0x01 // pextrq    rax, xmm1, 1
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; BYTE $0xc0               // cvtsi2ss    xmm0, rax
	LONG $0x7e0f4866; BYTE $0xc8               // movq    rax, xmm1
	WORD $0x570f; BYTE $0xc9                   // xorps    xmm1, xmm1
	LONG $0x2a0f48f3; BYTE $0xc8               // cvtsi2ss    xmm1, rax
	LONG $0x213a0f66; WORD $0x1cc8             // insertps    xmm1, xmm0, 28
	WORD $0x280f; BYTE $0xe1                   // movaps    xmm4, xmm1
	WORD $0x580f; BYTE $0xe1                   // addps    xmm4, xmm1
	LONG $0xc5700f66; BYTE $0xed               // pshufd    xmm0, xmm5, 237
	LONG $0x14380f66; BYTE $0xcc               // blendvps    xmm1, xmm4, xmm0
	WORD $0x160f; BYTE $0xd9                   // movlhps    xmm3, xmm1
	LONG $0xb91c110f                           // movups    oword [rcx + 4*rdi], xmm3
	LONG $0x446f0ff3; WORD $0x20fa             // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0xc86f0f66                           // movdqa    xmm1, xmm0
	LONG $0xcadb0f66                           // pand    xmm1, xmm2
	LONG $0xd86f0f66                           // movdqa    xmm3, xmm0
	LONG $0xd3730f66; BYTE $0x01               // psrlq    xmm3, 1
	LONG $0xd9eb0f66                           // por    xmm3, xmm1
	WORD $0x570f; BYTE $0xe4                   // xorps    xmm4, xmm4
	LONG $0x37380f66; BYTE $0xe0               // pcmpgtq    xmm4, xmm0
	LONG $0x15380f66; BYTE $0xc3               // blendvpd    xmm0, xmm3, xmm0
	LONG $0x3a0f4866; WORD $0xc016; BYTE $0x01 // pextrq    rax, xmm0, 1
	WORD $0x570f; BYTE $0xed                   // xorps    xmm5, xmm5
	LONG $0x2a0f48f3; BYTE $0xe8               // cvtsi2ss    xmm5, rax
	LONG $0x7e0f4866; BYTE $0xc0               // movq    rax, xmm0
	WORD $0x570f; BYTE $0xdb                   // xorps    xmm3, xmm3
	LONG $0x2a0f48f3; BYTE $0xd8               // cvtsi2ss    xmm3, rax
	LONG $0x4c6f0ff3; WORD $0x30fa             // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0x213a0f66; WORD $0x1cdd             // insertps    xmm3, xmm5, 28
	WORD $0x280f; BYTE $0xeb                   // movaps    xmm5, xmm3
	WORD $0x580f; BYTE $0xeb                   // addps    xmm5, xmm3
	LONG $0xc4700f66; BYTE $0xed               // pshufd    xmm0, xmm4, 237
	LONG $0x14380f66; BYTE $0xdd               // blendvps    xmm3, xmm5, xmm0
	LONG $0xc16f0f66                           // movdqa    xmm0, xmm1
	LONG $0xc2db0f66                           // pand    xmm0, xmm2
	LONG $0xe16f0f66                           // movdqa    xmm4, xmm1
	LONG $0xd4730f66; BYTE $0x01               // psrlq    xmm4, 1
	LONG $0xe0eb0f66                           // por    xmm4, xmm0
	WORD $0x570f; BYTE $0xed                   // xorps    xmm5, xmm5
	LONG $0x37380f66; BYTE $0xe9               // pcmpgtq    xmm5, xmm1
	LONG $0xc16f0f66                           // movdqa    xmm0, xmm1
	LONG $0x15380f66; BYTE $0xcc               // blendvpd    xmm1, xmm4, xmm0
	LONG $0x3a0f4866; WORD $0xc816; BYTE $0x01 // pextrq    rax, xmm1, 1
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; BYTE $0xc0               // cvtsi2ss    xmm0, rax
	LONG $0x7e0f4866; BYTE $0xc8               // movq    rax, xmm1
	WORD $0x570f; BYTE $0xc9                   // xorps    xmm1, xmm1
	LONG $0x2a0f48f3; BYTE $0xc8               // cvtsi2ss    xmm1, rax
	LONG $0x213a0f66; WORD $0x1cc8             // insertps    xmm1, xmm0, 28
	WORD $0x280f; BYTE $0xe1                   // movaps    xmm4, xmm1
	WORD $0x580f; BYTE $0xe1                   // addps    xmm4, xmm1
	LONG $0xc5700f66; BYTE $0xed               // pshufd    xmm0, xmm5, 237
	LONG $0x14380f66; BYTE $0xcc               // blendvps    xmm1, xmm4, xmm0
	WORD $0x160f; BYTE $0xd9                   // movlhps    xmm3, xmm1
	LONG $0xb95c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm3
	LONG $0x08c78348                           // add    rdi, 8
	LONG $0x02c28349                           // add    r10, 2
	JNE  LBB0_663
	JMP  LBB0_1051

LBB0_664:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_871
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_873

LBB0_666:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1058
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_668:
	LONG $0x33380f66; WORD $0x7a04             // pmovzxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 8]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x33380f66; WORD $0x7a44; BYTE $0x10 // pmovzxwd    xmm0, qword [rdx + 2*rdi + 16]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x18 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 24]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb944110f; BYTE $0x20               // movups    oword [rcx + 4*rdi + 32], xmm0
	LONG $0xb94c110f; BYTE $0x30               // movups    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_668
	JMP  LBB0_1059

LBB0_669:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_878
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_880

LBB0_671:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1063
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_673:
	LONG $0x23380f66; WORD $0x7a04             // pmovsxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 8]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x23380f66; WORD $0x7a44; BYTE $0x10 // pmovsxwd    xmm0, qword [rdx + 2*rdi + 16]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 24]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb944110f; BYTE $0x20               // movups    oword [rcx + 4*rdi + 32], xmm0
	LONG $0xb94c110f; BYTE $0x30               // movups    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_673
	JMP  LBB0_1064

LBB0_677:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_678:
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; WORD $0xfa04             // cvtsi2ss    xmm0, qword [rdx + 8*rdi]
	LONG $0x04110ff3; BYTE $0xb9               // movss    dword [rcx + 4*rdi], xmm0
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; WORD $0xfa44; BYTE $0x08 // cvtsi2ss    xmm0, qword [rdx + 8*rdi + 8]
	LONG $0x44110ff3; WORD $0x04b9             // movss    dword [rcx + 4*rdi + 4], xmm0
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; WORD $0xfa44; BYTE $0x10 // cvtsi2ss    xmm0, qword [rdx + 8*rdi + 16]
	LONG $0x44110ff3; WORD $0x08b9             // movss    dword [rcx + 4*rdi + 8], xmm0
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; WORD $0xfa44; BYTE $0x18 // cvtsi2ss    xmm0, qword [rdx + 8*rdi + 24]
	LONG $0x44110ff3; WORD $0x0cb9             // movss    dword [rcx + 4*rdi + 12], xmm0
	LONG $0x04c78348                           // add    rdi, 4
	WORD $0x3948; BYTE $0xfe                   // cmp    rsi, rdi
	JNE  LBB0_678

LBB0_679:
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1526
	LONG $0xb90c8d48         // lea    rcx, [rcx + 4*rdi]
	LONG $0xfa148d48         // lea    rdx, [rdx + 8*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_681:
	WORD $0x570f; BYTE $0xc0       // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; WORD $0xf204 // cvtsi2ss    xmm0, qword [rdx + 8*rsi]
	LONG $0x04110ff3; BYTE $0xb1   // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348               // add    rsi, 1
	WORD $0x3948; BYTE $0xf0       // cmp    rax, rsi
	JNE  LBB0_681
	JMP  LBB0_1526

LBB0_682:
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	WORD $0xff31             // xor    edi, edi

LBB0_683:
	LONG $0x2c0f48f3; WORD $0xba04             // cvttss2si    rax, dword [rdx + 4*rdi]
	LONG $0xf9048948                           // mov    qword [rcx + 8*rdi], rax
	LONG $0x2c0f48f3; WORD $0xba44; BYTE $0x04 // cvttss2si    rax, dword [rdx + 4*rdi + 4]
	LONG $0xf9448948; BYTE $0x08               // mov    qword [rcx + 8*rdi + 8], rax
	LONG $0x2c0f48f3; WORD $0xba44; BYTE $0x08 // cvttss2si    rax, dword [rdx + 4*rdi + 8]
	LONG $0xf9448948; BYTE $0x10               // mov    qword [rcx + 8*rdi + 16], rax
	LONG $0x2c0f48f3; WORD $0xba44; BYTE $0x0c // cvttss2si    rax, dword [rdx + 4*rdi + 12]
	LONG $0xf9448948; BYTE $0x18               // mov    qword [rcx + 8*rdi + 24], rax
	LONG $0x04c78348                           // add    rdi, 4
	WORD $0x3948; BYTE $0xfe                   // cmp    rsi, rdi
	JNE  LBB0_683

LBB0_684:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1526
	LONG $0xf90c8d48         // lea    rcx, [rcx + 8*rdi]
	LONG $0xba148d48         // lea    rdx, [rdx + 4*rdi]
	WORD $0xf631             // xor    esi, esi

LBB0_686:
	LONG $0x2c0f48f3; WORD $0xb204 // cvttss2si    rax, dword [rdx + 4*rsi]
	LONG $0xf1048948               // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348               // add    rsi, 1
	WORD $0x3949; BYTE $0xf0       // cmp    r8, rsi
	JNE  LBB0_686
	JMP  LBB0_1526

LBB0_696:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_894
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_896

LBB0_698:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1068
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_700:
	LONG $0xba04100f             // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10 // movups    xmm1, oword [rdx + 4*rdi + 16]
	WORD $0x5b0f; BYTE $0xc0     // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9     // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f             // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10 // movups    oword [rcx + 4*rdi + 16], xmm1
	LONG $0xba44100f; BYTE $0x20 // movups    xmm0, oword [rdx + 4*rdi + 32]
	LONG $0xba4c100f; BYTE $0x30 // movups    xmm1, oword [rdx + 4*rdi + 48]
	WORD $0x5b0f; BYTE $0xc0     // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9     // cvtdq2ps    xmm1, xmm1
	LONG $0xb944110f; BYTE $0x20 // movups    oword [rcx + 4*rdi + 32], xmm0
	LONG $0xb94c110f; BYTE $0x30 // movups    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348             // add    rdi, 16
	LONG $0x02c08348             // add    rax, 2
	JNE  LBB0_700
	JMP  LBB0_1069

LBB0_734:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1073
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_736:
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc1140f66               // unpcklpd    xmm0, xmm1
	LONG $0x04110f66; BYTE $0xb9   // movupd    oword [rcx + 4*rdi], xmm0
	LONG $0x44100f66; WORD $0x20fa // movupd    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c100f66; WORD $0x30fa // movupd    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc1140f66               // unpcklpd    xmm0, xmm1
	LONG $0x44110f66; WORD $0x10b9 // movupd    oword [rcx + 4*rdi + 16], xmm0
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_736
	JMP  LBB0_1074

LBB0_740:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_939
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_742:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x447f0ff3; WORD $0x10b9 // movdqu    oword [rcx + 4*rdi + 16], xmm0
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_742
	JMP  LBB0_940

LBB0_743:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1078
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_745:
	LONG $0x33380f66; WORD $0x7a04             // pmovzxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x33380f66; WORD $0x7a44; BYTE $0x10 // pmovzxwd    xmm0, qword [rdx + 2*rdi + 16]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x18 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 24]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_745
	JMP  LBB0_1079

LBB0_746:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1083
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_748:
	LONG $0x23380f66; WORD $0x7a04             // pmovsxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x23380f66; WORD $0x7a44; BYTE $0x10 // pmovsxwd    xmm0, qword [rdx + 2*rdi + 16]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 24]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_748
	JMP  LBB0_1084

LBB0_749:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x02e8c149         // shr    r8, 2
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1088
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_751:
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x446f0ff3; WORD $0x20fa // movdqu    xmm0, oword [rdx + 8*rdi + 32]
	LONG $0x4c6f0ff3; WORD $0x30fa // movdqu    xmm1, oword [rdx + 8*rdi + 48]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x447f0ff3; WORD $0x10b9 // movdqu    oword [rcx + 4*rdi + 16], xmm0
	LONG $0x08c78348               // add    rdi, 8
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_751
	JMP  LBB0_1089

LBB0_752:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1093
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_754:
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0xb904110f               // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10   // movups    oword [rcx + 4*rdi + 16], xmm1
	LONG $0xba44100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rdi + 32]
	LONG $0xba4c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rdi + 48]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0x44110f66; WORD $0x20b9 // movupd    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c110f66; WORD $0x30b9 // movupd    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_754
	JMP  LBB0_1094

LBB0_761:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x03efc148         // shr    rdi, 3
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x18f88348         // cmp    rax, 24
	JAE  LBB0_1098
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1100

LBB0_763:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1478
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_765:
	LONG $0x21380f66; WORD $0x3a04             // pmovsxbd    xmm0, dword [rdx + rdi]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd    xmm0, dword [rdx + rdi + 8]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x0c // pmovsxbd    xmm1, dword [rdx + rdi + 12]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_765
	JMP  LBB0_1479

LBB0_766:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1486
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_768:
	LONG $0x31380f66; WORD $0x3a04             // pmovzxbd    xmm0, dword [rdx + rdi]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x31380f66; WORD $0x3a44; BYTE $0x08 // pmovzxbd    xmm0, dword [rdx + rdi + 8]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x0c // pmovzxbd    xmm1, dword [rdx + rdi + 12]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_768
	JMP  LBB0_1487

LBB0_769:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x03efc148         // shr    rdi, 3
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x18f88348         // cmp    rax, 24
	JAE  LBB0_1108
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1110

LBB0_771:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1118
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1120

LBB0_773:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1494
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000c0856f0f66 // movdqa    xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */

LBB0_775:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x0c7e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm1
	LONG $0x547e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm2
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x4c7e0f66; WORD $0x0839 // movd    dword [rcx + rdi + 8], xmm1
	LONG $0x547e0f66; WORD $0x0c39 // movd    dword [rcx + rdi + 12], xmm2
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_775
	JMP  LBB0_1495

LBB0_776:
	WORD $0x8944; BYTE $0xce     // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc     // and    esi, -4
	LONG $0xfc468d48             // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0     // mov    r8, rax
	LONG $0x02e8c149             // shr    r8, 2
	LONG $0x01c08349             // add    r8, 1
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JE   LBB0_1502
	WORD $0x894c; BYTE $0xc0     // mov    rax, r8
	LONG $0xfee08348             // and    rax, -2
	WORD $0xf748; BYTE $0xd8     // neg    rax
	WORD $0xff31                 // xor    edi, edi
	LONG $0x456f0f66; BYTE $0x10 // movdqa    xmm0, oword 16[rbp] /* [rip + .LCPI0_1] */

LBB0_778:
	LONG $0x0c100f66; BYTE $0xfa               // movupd    xmm1, oword [rdx + 8*rdi]
	LONG $0x54100f66; WORD $0x10fa             // movupd    xmm2, oword [rdx + 8*rdi + 16]
	LONG $0xc9e60f66                           // cvttpd2dq    xmm1, xmm1
	LONG $0xd2e60f66                           // cvttpd2dq    xmm2, xmm2
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw    word [rcx + rdi], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00023954153a0f66                   // pextrw    word [rcx + rdi + 2], xmm2, 0
	LONG $0x4c100f66; WORD $0x20fa             // movupd    xmm1, oword [rdx + 8*rdi + 32]
	LONG $0x54100f66; WORD $0x30fa             // movupd    xmm2, oword [rdx + 8*rdi + 48]
	LONG $0xc9e60f66                           // cvttpd2dq    xmm1, xmm1
	LONG $0xd2e60f66                           // cvttpd2dq    xmm2, xmm2
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	QUAD $0x0004394c153a0f66                   // pextrw    word [rcx + rdi + 4], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00063954153a0f66                   // pextrw    word [rcx + rdi + 6], xmm2, 0
	LONG $0x08c78348                           // add    rdi, 8
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_778
	JMP  LBB0_1503

LBB0_779:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xe0 // and    esi, -32
	LONG $0xe0468d48         // lea    rax, [rsi - 32]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x05efc148         // shr    rdi, 5
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x60f88348         // cmp    rax, 96
	JAE  LBB0_1128
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1130

LBB0_781:
	WORD $0x8944; BYTE $0xce     // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc     // and    esi, -4
	LONG $0xfc468d48             // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0     // mov    r8, rax
	LONG $0x02e8c149             // shr    r8, 2
	LONG $0x01c08349             // add    r8, 1
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JE   LBB0_1318
	WORD $0x894c; BYTE $0xc0     // mov    rax, r8
	LONG $0xfee08348             // and    rax, -2
	WORD $0xf748; BYTE $0xd8     // neg    rax
	WORD $0xff31                 // xor    edi, edi
	LONG $0x456f0f66; BYTE $0x40 // movdqa    xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */

LBB0_783:
	LONG $0x0c6f0ff3; BYTE $0xfa               // movdqu    xmm1, oword [rdx + 8*rdi]
	LONG $0x546f0ff3; WORD $0x10fa             // movdqu    xmm2, oword [rdx + 8*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw    word [rcx + rdi], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00023954153a0f66                   // pextrw    word [rcx + rdi + 2], xmm2, 0
	LONG $0x4c6f0ff3; WORD $0x20fa             // movdqu    xmm1, oword [rdx + 8*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30fa             // movdqu    xmm2, oword [rdx + 8*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	QUAD $0x0004394c153a0f66                   // pextrw    word [rcx + rdi + 4], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00063954153a0f66                   // pextrw    word [rcx + rdi + 6], xmm2, 0
	LONG $0x08c78348                           // add    rdi, 8
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_783
	JMP  LBB0_1319

LBB0_784:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1326
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x00000100856f0f66 // movdqa    xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */

LBB0_786:
	LONG $0x0c6f0ff3; BYTE $0x7a   // movdqu    xmm1, oword [rdx + 2*rdi]
	LONG $0x546f0ff3; WORD $0x107a // movdqu    xmm2, oword [rdx + 2*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x207a // movdqu    xmm1, oword [rdx + 2*rdi + 32]
	LONG $0x546f0ff3; WORD $0x307a // movdqu    xmm2, oword [rdx + 2*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1039 // movdqu    oword [rcx + rdi + 16], xmm1
	LONG $0x20c78348               // add    rdi, 32
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_786
	JMP  LBB0_1327

LBB0_787:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1510
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x00000100856f0f66 // movdqa    xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */

LBB0_789:
	LONG $0x0c6f0ff3; BYTE $0x7a   // movdqu    xmm1, oword [rdx + 2*rdi]
	LONG $0x546f0ff3; WORD $0x107a // movdqu    xmm2, oword [rdx + 2*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x207a // movdqu    xmm1, oword [rdx + 2*rdi + 32]
	LONG $0x546f0ff3; WORD $0x307a // movdqu    xmm2, oword [rdx + 2*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1039 // movdqu    oword [rcx + rdi + 16], xmm1
	LONG $0x20c78348               // add    rdi, 32
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_789
	JMP  LBB0_1511

LBB0_790:
	WORD $0x8944; BYTE $0xce     // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc     // and    esi, -4
	LONG $0xfc468d48             // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0     // mov    r8, rax
	LONG $0x02e8c149             // shr    r8, 2
	LONG $0x01c08349             // add    r8, 1
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JE   LBB0_1334
	WORD $0x894c; BYTE $0xc0     // mov    rax, r8
	LONG $0xfee08348             // and    rax, -2
	WORD $0xf748; BYTE $0xd8     // neg    rax
	WORD $0xff31                 // xor    edi, edi
	LONG $0x456f0f66; BYTE $0x40 // movdqa    xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */

LBB0_792:
	LONG $0x0c6f0ff3; BYTE $0xfa               // movdqu    xmm1, oword [rdx + 8*rdi]
	LONG $0x546f0ff3; WORD $0x10fa             // movdqu    xmm2, oword [rdx + 8*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw    word [rcx + rdi], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00023954153a0f66                   // pextrw    word [rcx + rdi + 2], xmm2, 0
	LONG $0x4c6f0ff3; WORD $0x20fa             // movdqu    xmm1, oword [rdx + 8*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30fa             // movdqu    xmm2, oword [rdx + 8*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	QUAD $0x0004394c153a0f66                   // pextrw    word [rcx + rdi + 4], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00063954153a0f66                   // pextrw    word [rcx + rdi + 6], xmm2, 0
	LONG $0x08c78348                           // add    rdi, 8
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_792
	JMP  LBB0_1335

LBB0_793:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1518
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_795:
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc06b0f66               // packssdw    xmm0, xmm0
	LONG $0xc0630f66               // packsswb    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0xc96b0f66               // packssdw    xmm1, xmm1
	LONG $0xc9630f66               // packsswb    xmm1, xmm1
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1
	LONG $0xba44100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rdi + 32]
	LONG $0xba4c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rdi + 48]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc06b0f66               // packssdw    xmm0, xmm0
	LONG $0xc0630f66               // packsswb    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0xc96b0f66               // packssdw    xmm1, xmm1
	LONG $0xc9630f66               // packsswb    xmm1, xmm1
	LONG $0x447e0f66; WORD $0x0839 // movd    dword [rcx + rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c39 // movd    dword [rcx + rdi + 12], xmm1
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_795
	JMP  LBB0_1519

LBB0_796:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xe0 // and    esi, -32
	LONG $0xe0468d48         // lea    rax, [rsi - 32]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x05efc148         // shr    rdi, 5
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x60f88348         // cmp    rax, 96
	JAE  LBB0_1138
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1140

LBB0_798:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1342
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000c0856f0f66 // movdqa    xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */

LBB0_800:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x0c7e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm1
	LONG $0x547e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm2
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x4c7e0f66; WORD $0x0839 // movd    dword [rcx + rdi + 8], xmm1
	LONG $0x547e0f66; WORD $0x0c39 // movd    dword [rcx + rdi + 12], xmm2
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_800
	JMP  LBB0_1343

LBB0_808:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1148
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1150

LBB0_810:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1158
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1160

LBB0_826:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1168
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1170

LBB0_828:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1178
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1180

LBB0_837:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1350
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_839:
	LONG $0x20380f66; WORD $0x3a04             // pmovsxbw    xmm0, qword [rdx + rdi]
	LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x20380f66; WORD $0x3a44; BYTE $0x10 // pmovsxbw    xmm0, qword [rdx + rdi + 16]
	LONG $0x20380f66; WORD $0x3a4c; BYTE $0x18 // pmovsxbw    xmm1, qword [rdx + rdi + 24]
	LONG $0x447f0ff3; WORD $0x2079             // movdqu    oword [rcx + 2*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x3079             // movdqu    oword [rcx + 2*rdi + 48], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_839
	JMP  LBB0_1351

LBB0_840:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1358
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_842:
	LONG $0x20380f66; WORD $0x3a04             // pmovsxbw    xmm0, qword [rdx + rdi]
	LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x20380f66; WORD $0x3a44; BYTE $0x10 // pmovsxbw    xmm0, qword [rdx + rdi + 16]
	LONG $0x20380f66; WORD $0x3a4c; BYTE $0x18 // pmovsxbw    xmm1, qword [rdx + rdi + 24]
	LONG $0x447f0ff3; WORD $0x2079             // movdqu    oword [rcx + 2*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x3079             // movdqu    oword [rcx + 2*rdi + 48], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_842
	JMP  LBB0_1359

LBB0_843:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x04efc148         // shr    rdi, 4
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x30f88348         // cmp    rax, 48
	JAE  LBB0_1188
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1190

LBB0_845:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x04efc148         // shr    rdi, 4
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x30f88348         // cmp    rax, 48
	JAE  LBB0_1198
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1200

LBB0_847:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x04efc148         // shr    rdi, 4
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x30f88348         // cmp    rax, 48
	JAE  LBB0_1208
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1210

LBB0_849:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x04efc148         // shr    rdi, 4
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x30f88348         // cmp    rax, 48
	JAE  LBB0_1218
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1220

LBB0_851:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1366
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_853:
	LONG $0x30380f66; WORD $0x3a04             // pmovzxbw    xmm0, qword [rdx + rdi]
	LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x30380f66; WORD $0x3a44; BYTE $0x10 // pmovzxbw    xmm0, qword [rdx + rdi + 16]
	LONG $0x30380f66; WORD $0x3a4c; BYTE $0x18 // pmovzxbw    xmm1, qword [rdx + rdi + 24]
	LONG $0x447f0ff3; WORD $0x2079             // movdqu    oword [rcx + 2*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x3079             // movdqu    oword [rcx + 2*rdi + 48], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_853
	JMP  LBB0_1367

LBB0_854:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1374
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_856:
	LONG $0x30380f66; WORD $0x3a04             // pmovzxbw    xmm0, qword [rdx + rdi]
	LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1
	LONG $0x30380f66; WORD $0x3a44; BYTE $0x10 // pmovzxbw    xmm0, qword [rdx + rdi + 16]
	LONG $0x30380f66; WORD $0x3a4c; BYTE $0x18 // pmovzxbw    xmm1, qword [rdx + rdi + 24]
	LONG $0x447f0ff3; WORD $0x2079             // movdqu    oword [rcx + 2*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x3079             // movdqu    oword [rcx + 2*rdi + 48], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_856
	JMP  LBB0_1375

LBB0_864:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1228
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1230

LBB0_866:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1382
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_868:
	LONG $0x21380f66; WORD $0x3a04             // pmovsxbd    xmm0, dword [rdx + rdi]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd    xmm1, dword [rdx + rdi + 4]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd    xmm0, dword [rdx + rdi + 8]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x0c // pmovsxbd    xmm1, dword [rdx + rdi + 12]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb944110f; BYTE $0x20               // movups    oword [rcx + 4*rdi + 32], xmm0
	LONG $0xb94c110f; BYTE $0x30               // movups    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_868
	JMP  LBB0_1383

LBB0_869:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1238
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1240

LBB0_885:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1248
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1250

LBB0_887:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x03efc148         // shr    rdi, 3
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x18f88348         // cmp    rax, 24
	JAE  LBB0_1258
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1260

LBB0_889:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc // and    esi, -4
	LONG $0xfc468d48         // lea    rax, [rsi - 4]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x02efc148         // shr    rdi, 2
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x0cf88348         // cmp    rax, 12
	JAE  LBB0_1268
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1270

LBB0_891:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1390
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_893:
	LONG $0x31380f66; WORD $0x3a04             // pmovzxbd    xmm0, dword [rdx + rdi]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd    xmm1, dword [rdx + rdi + 4]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x31380f66; WORD $0x3a44; BYTE $0x08 // pmovzxbd    xmm0, dword [rdx + rdi + 8]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x0c // pmovzxbd    xmm1, dword [rdx + rdi + 12]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb944110f; BYTE $0x20               // movups    oword [rcx + 4*rdi + 32], xmm0
	LONG $0xb94c110f; BYTE $0x30               // movups    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_893
	JMP  LBB0_1391

LBB0_901:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1398
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000c0856f0f66 // movdqa    xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */

LBB0_903:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x0c7e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm1
	LONG $0x547e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm2
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x4c7e0f66; WORD $0x0839 // movd    dword [rcx + rdi + 8], xmm1
	LONG $0x547e0f66; WORD $0x0c39 // movd    dword [rcx + rdi + 12], xmm2
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_903
	JMP  LBB0_1399

LBB0_904:
	WORD $0x8944; BYTE $0xce     // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc     // and    esi, -4
	LONG $0xfc468d48             // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0     // mov    r8, rax
	LONG $0x02e8c149             // shr    r8, 2
	LONG $0x01c08349             // add    r8, 1
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JE   LBB0_1406
	WORD $0x894c; BYTE $0xc0     // mov    rax, r8
	LONG $0xfee08348             // and    rax, -2
	WORD $0xf748; BYTE $0xd8     // neg    rax
	WORD $0xff31                 // xor    edi, edi
	LONG $0x456f0f66; BYTE $0x10 // movdqa    xmm0, oword 16[rbp] /* [rip + .LCPI0_1] */

LBB0_906:
	LONG $0x0c100f66; BYTE $0xfa               // movupd    xmm1, oword [rdx + 8*rdi]
	LONG $0x54100f66; WORD $0x10fa             // movupd    xmm2, oword [rdx + 8*rdi + 16]
	LONG $0xc9e60f66                           // cvttpd2dq    xmm1, xmm1
	LONG $0xd2e60f66                           // cvttpd2dq    xmm2, xmm2
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw    word [rcx + rdi], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00023954153a0f66                   // pextrw    word [rcx + rdi + 2], xmm2, 0
	LONG $0x4c100f66; WORD $0x20fa             // movupd    xmm1, oword [rdx + 8*rdi + 32]
	LONG $0x54100f66; WORD $0x30fa             // movupd    xmm2, oword [rdx + 8*rdi + 48]
	LONG $0xc9e60f66                           // cvttpd2dq    xmm1, xmm1
	LONG $0xd2e60f66                           // cvttpd2dq    xmm2, xmm2
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	QUAD $0x0004394c153a0f66                   // pextrw    word [rcx + rdi + 4], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00063954153a0f66                   // pextrw    word [rcx + rdi + 6], xmm2, 0
	LONG $0x08c78348                           // add    rdi, 8
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_906
	JMP  LBB0_1407

LBB0_907:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xe0 // and    esi, -32
	LONG $0xe0468d48         // lea    rax, [rsi - 32]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x05efc148         // shr    rdi, 5
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x60f88348         // cmp    rax, 96
	JAE  LBB0_1278
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1280

LBB0_909:
	WORD $0x8944; BYTE $0xce     // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc     // and    esi, -4
	LONG $0xfc468d48             // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0     // mov    r8, rax
	LONG $0x02e8c149             // shr    r8, 2
	LONG $0x01c08349             // add    r8, 1
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JE   LBB0_1414
	WORD $0x894c; BYTE $0xc0     // mov    rax, r8
	LONG $0xfee08348             // and    rax, -2
	WORD $0xf748; BYTE $0xd8     // neg    rax
	WORD $0xff31                 // xor    edi, edi
	LONG $0x456f0f66; BYTE $0x40 // movdqa    xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */

LBB0_911:
	LONG $0x0c6f0ff3; BYTE $0xfa               // movdqu    xmm1, oword [rdx + 8*rdi]
	LONG $0x546f0ff3; WORD $0x10fa             // movdqu    xmm2, oword [rdx + 8*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw    word [rcx + rdi], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00023954153a0f66                   // pextrw    word [rcx + rdi + 2], xmm2, 0
	LONG $0x4c6f0ff3; WORD $0x20fa             // movdqu    xmm1, oword [rdx + 8*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30fa             // movdqu    xmm2, oword [rdx + 8*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	QUAD $0x0004394c153a0f66                   // pextrw    word [rcx + rdi + 4], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00063954153a0f66                   // pextrw    word [rcx + rdi + 6], xmm2, 0
	LONG $0x08c78348                           // add    rdi, 8
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_911
	JMP  LBB0_1415

LBB0_912:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1422
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x00000100856f0f66 // movdqa    xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */

LBB0_914:
	LONG $0x0c6f0ff3; BYTE $0x7a   // movdqu    xmm1, oword [rdx + 2*rdi]
	LONG $0x546f0ff3; WORD $0x107a // movdqu    xmm2, oword [rdx + 2*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x207a // movdqu    xmm1, oword [rdx + 2*rdi + 32]
	LONG $0x546f0ff3; WORD $0x307a // movdqu    xmm2, oword [rdx + 2*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1039 // movdqu    oword [rcx + rdi + 16], xmm1
	LONG $0x20c78348               // add    rdi, 32
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_914
	JMP  LBB0_1423

LBB0_915:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf0 // and    esi, -16
	LONG $0xf0468d48         // lea    rax, [rsi - 16]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x04e8c149         // shr    r8, 4
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1430
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x00000100856f0f66 // movdqa    xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */

LBB0_917:
	LONG $0x0c6f0ff3; BYTE $0x7a   // movdqu    xmm1, oword [rdx + 2*rdi]
	LONG $0x546f0ff3; WORD $0x107a // movdqu    xmm2, oword [rdx + 2*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x0c7f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm1
	LONG $0x4c6f0ff3; WORD $0x207a // movdqu    xmm1, oword [rdx + 2*rdi + 32]
	LONG $0x546f0ff3; WORD $0x307a // movdqu    xmm2, oword [rdx + 2*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0xca6c0f66               // punpcklqdq    xmm1, xmm2
	LONG $0x4c7f0ff3; WORD $0x1039 // movdqu    oword [rcx + rdi + 16], xmm1
	LONG $0x20c78348               // add    rdi, 32
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_917
	JMP  LBB0_1431

LBB0_918:
	WORD $0x8944; BYTE $0xce     // mov    esi, r9d
	WORD $0xe683; BYTE $0xfc     // and    esi, -4
	LONG $0xfc468d48             // lea    rax, [rsi - 4]
	WORD $0x8949; BYTE $0xc0     // mov    r8, rax
	LONG $0x02e8c149             // shr    r8, 2
	LONG $0x01c08349             // add    r8, 1
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JE   LBB0_1438
	WORD $0x894c; BYTE $0xc0     // mov    rax, r8
	LONG $0xfee08348             // and    rax, -2
	WORD $0xf748; BYTE $0xd8     // neg    rax
	WORD $0xff31                 // xor    edi, edi
	LONG $0x456f0f66; BYTE $0x40 // movdqa    xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */

LBB0_920:
	LONG $0x0c6f0ff3; BYTE $0xfa               // movdqu    xmm1, oword [rdx + 8*rdi]
	LONG $0x546f0ff3; WORD $0x10fa             // movdqu    xmm2, oword [rdx + 8*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw    word [rcx + rdi], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00023954153a0f66                   // pextrw    word [rcx + rdi + 2], xmm2, 0
	LONG $0x4c6f0ff3; WORD $0x20fa             // movdqu    xmm1, oword [rdx + 8*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30fa             // movdqu    xmm2, oword [rdx + 8*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8               // pshufb    xmm1, xmm0
	QUAD $0x0004394c153a0f66                   // pextrw    word [rcx + rdi + 4], xmm1, 0
	LONG $0x00380f66; BYTE $0xd0               // pshufb    xmm2, xmm0
	QUAD $0x00063954153a0f66                   // pextrw    word [rcx + rdi + 6], xmm2, 0
	LONG $0x08c78348                           // add    rdi, 8
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_920
	JMP  LBB0_1439

LBB0_921:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1446
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_923:
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0x2b380f66; BYTE $0xc0   // packusdw    xmm0, xmm0
	LONG $0xc0670f66               // packuswb    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0x2b380f66; BYTE $0xc9   // packusdw    xmm1, xmm1
	LONG $0xc9670f66               // packuswb    xmm1, xmm1
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1
	LONG $0xba44100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rdi + 32]
	LONG $0xba4c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rdi + 48]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0x2b380f66; BYTE $0xc0   // packusdw    xmm0, xmm0
	LONG $0xc0670f66               // packuswb    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0x2b380f66; BYTE $0xc9   // packusdw    xmm1, xmm1
	LONG $0xc9670f66               // packuswb    xmm1, xmm1
	LONG $0x447e0f66; WORD $0x0839 // movd    dword [rcx + rdi + 8], xmm0
	LONG $0x4c7e0f66; WORD $0x0c39 // movd    dword [rcx + rdi + 12], xmm1
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_923
	JMP  LBB0_1447

LBB0_924:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xe0 // and    esi, -32
	LONG $0xe0468d48         // lea    rax, [rsi - 32]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x05efc148         // shr    rdi, 5
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x60f88348         // cmp    rax, 96
	JAE  LBB0_1288
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1290

LBB0_926:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1454
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi
	QUAD $0x000000c0856f0f66 // movdqa    xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */

LBB0_928:
	LONG $0x0c6f0ff3; BYTE $0xba   // movdqu    xmm1, oword [rdx + 4*rdi]
	LONG $0x546f0ff3; WORD $0x10ba // movdqu    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x0c7e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm1
	LONG $0x547e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm2
	LONG $0x4c6f0ff3; WORD $0x20ba // movdqu    xmm1, oword [rdx + 4*rdi + 32]
	LONG $0x546f0ff3; WORD $0x30ba // movdqu    xmm2, oword [rdx + 4*rdi + 48]
	LONG $0x00380f66; BYTE $0xc8   // pshufb    xmm1, xmm0
	LONG $0x00380f66; BYTE $0xd0   // pshufb    xmm2, xmm0
	LONG $0x4c7e0f66; WORD $0x0839 // movd    dword [rcx + rdi + 8], xmm1
	LONG $0x547e0f66; WORD $0x0c39 // movd    dword [rcx + rdi + 12], xmm2
	LONG $0x10c78348               // add    rdi, 16
	LONG $0x02c08348               // add    rax, 2
	JNE  LBB0_928
	JMP  LBB0_1455

LBB0_929:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x03efc148         // shr    rdi, 3
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x18f88348         // cmp    rax, 24
	JAE  LBB0_1298
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1300

LBB0_931:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1462
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_933:
	LONG $0x21380f66; WORD $0x3a04             // pmovsxbd    xmm0, dword [rdx + rdi]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd    xmm0, dword [rdx + rdi + 8]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x0c // pmovsxbd    xmm1, dword [rdx + rdi + 12]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_933
	JMP  LBB0_1463

LBB0_934:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8949; BYTE $0xc0 // mov    r8, rax
	LONG $0x03e8c149         // shr    r8, 3
	LONG $0x01c08349         // add    r8, 1
	WORD $0x8548; BYTE $0xc0 // test    rax, rax
	JE   LBB0_1470
	WORD $0x894c; BYTE $0xc0 // mov    rax, r8
	LONG $0xfee08348         // and    rax, -2
	WORD $0xf748; BYTE $0xd8 // neg    rax
	WORD $0xff31             // xor    edi, edi

LBB0_936:
	LONG $0x31380f66; WORD $0x3a04             // pmovzxbd    xmm0, dword [rdx + rdi]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1
	LONG $0x31380f66; WORD $0x3a44; BYTE $0x08 // pmovzxbd    xmm0, dword [rdx + rdi + 8]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x0c // pmovzxbd    xmm1, dword [rdx + rdi + 12]
	LONG $0x447f0ff3; WORD $0x20b9             // movdqu    oword [rcx + 4*rdi + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30b9             // movdqu    oword [rcx + 4*rdi + 48], xmm1
	LONG $0x10c78348                           // add    rdi, 16
	LONG $0x02c08348                           // add    rax, 2
	JNE  LBB0_936
	JMP  LBB0_1471

LBB0_937:
	WORD $0x8944; BYTE $0xce // mov    esi, r9d
	WORD $0xe683; BYTE $0xf8 // and    esi, -8
	LONG $0xf8468d48         // lea    rax, [rsi - 8]
	WORD $0x8948; BYTE $0xc7 // mov    rdi, rax
	LONG $0x03efc148         // shr    rdi, 3
	LONG $0x01c78348         // add    rdi, 1
	WORD $0x8941; BYTE $0xf8 // mov    r8d, edi
	LONG $0x03e08341         // and    r8d, 3
	LONG $0x18f88348         // cmp    rax, 24
	JAE  LBB0_1308
	WORD $0xc031             // xor    eax, eax
	JMP  LBB0_1310

LBB0_801:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_802:
	LONG $0x35380f66; WORD $0x8204             // pmovzxdq    xmm0, qword [rdx + 4*rax]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x08 // pmovzxdq    xmm1, qword [rdx + 4*rax + 8]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x35380f66; WORD $0x8244; BYTE $0x10 // pmovzxdq    xmm0, qword [rdx + 4*rax + 16]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x18 // pmovzxdq    xmm1, qword [rdx + 4*rax + 24]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x35380f66; WORD $0x8244; BYTE $0x20 // pmovzxdq    xmm0, qword [rdx + 4*rax + 32]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x28 // pmovzxdq    xmm1, qword [rdx + 4*rax + 40]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x35380f66; WORD $0x8244; BYTE $0x30 // pmovzxdq    xmm0, qword [rdx + 4*rax + 48]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x38 // pmovzxdq    xmm1, qword [rdx + 4*rax + 56]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_802

LBB0_803:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_806
	QUAD $0x0000000885048d48 // lea    rax, [4*rax + 8]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_805:
	LONG $0x35380f66; WORD $0x0244; BYTE $0xf8 // pmovzxdq    xmm0, qword [rdx + rax - 8]
	LONG $0x35380f66; WORD $0x020c             // pmovzxdq    xmm1, qword [rdx + rax]
	LONG $0x447f0ff3; WORD $0xf041             // movdqu    oword [rcx + 2*rax - 16], xmm0
	LONG $0x0c7f0ff3; BYTE $0x41               // movdqu    oword [rcx + 2*rax], xmm1
	LONG $0x10c08348                           // add    rax, 16
	WORD $0xff49; BYTE $0xc0                   // inc    r8
	JNE  LBB0_805

LBB0_806:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_807:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	LONG $0xf1048948         // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_807
	JMP  LBB0_1526

LBB0_812:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_813:
	LONG $0x34380f66; WORD $0x4204             // pmovzxwq    xmm0, dword [rdx + 2*rax]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x04 // pmovzxwq    xmm1, dword [rdx + 2*rax + 4]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x34380f66; WORD $0x4244; BYTE $0x08 // pmovzxwq    xmm0, dword [rdx + 2*rax + 8]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x0c // pmovzxwq    xmm1, dword [rdx + 2*rax + 12]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x34380f66; WORD $0x4244; BYTE $0x10 // pmovzxwq    xmm0, dword [rdx + 2*rax + 16]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x14 // pmovzxwq    xmm1, dword [rdx + 2*rax + 20]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x34380f66; WORD $0x4244; BYTE $0x18 // pmovzxwq    xmm0, dword [rdx + 2*rax + 24]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x1c // pmovzxwq    xmm1, dword [rdx + 2*rax + 28]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_813

LBB0_814:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_817
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x42148d4c         // lea    r10, [rdx + 2*rax]
	LONG $0x04c28349         // add    r10, 4
	WORD $0xc031             // xor    eax, eax

LBB0_816:
	QUAD $0xfcc24434380f4166                   // pmovzxwq    xmm0, dword [r10 + 8*rax - 4]
	LONG $0x380f4166; WORD $0x0c34; BYTE $0xc2 // pmovzxwq    xmm1, dword [r10 + 8*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_816

LBB0_817:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_818:
	LONG $0x7204b70f         // movzx    eax, word [rdx + 2*rsi]
	LONG $0xf1048948         // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_818
	JMP  LBB0_1526

LBB0_819:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_820:
	LONG $0x24380f66; WORD $0x4204             // pmovsxwq    xmm0, dword [rdx + 2*rax]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x04 // pmovsxwq    xmm1, dword [rdx + 2*rax + 4]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x24380f66; WORD $0x4244; BYTE $0x08 // pmovsxwq    xmm0, dword [rdx + 2*rax + 8]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x0c // pmovsxwq    xmm1, dword [rdx + 2*rax + 12]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x24380f66; WORD $0x4244; BYTE $0x10 // pmovsxwq    xmm0, dword [rdx + 2*rax + 16]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x14 // pmovsxwq    xmm1, dword [rdx + 2*rax + 20]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x24380f66; WORD $0x4244; BYTE $0x18 // pmovsxwq    xmm0, dword [rdx + 2*rax + 24]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x1c // pmovsxwq    xmm1, dword [rdx + 2*rax + 28]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_820

LBB0_821:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_824
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x42148d4c         // lea    r10, [rdx + 2*rax]
	LONG $0x04c28349         // add    r10, 4
	WORD $0xc031             // xor    eax, eax

LBB0_823:
	QUAD $0xfcc24424380f4166                   // pmovsxwq    xmm0, dword [r10 + 8*rax - 4]
	LONG $0x380f4166; WORD $0x0c24; BYTE $0xc2 // pmovsxwq    xmm1, dword [r10 + 8*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_823

LBB0_824:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_825:
	LONG $0x04bf0f48; BYTE $0x72 // movsx    rax, word [rdx + 2*rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_825
	JMP  LBB0_1526

LBB0_830:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_831:
	LONG $0x25380f66; WORD $0x8204             // pmovsxdq    xmm0, qword [rdx + 4*rax]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x08 // pmovsxdq    xmm1, qword [rdx + 4*rax + 8]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x25380f66; WORD $0x8244; BYTE $0x10 // pmovsxdq    xmm0, qword [rdx + 4*rax + 16]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x18 // pmovsxdq    xmm1, qword [rdx + 4*rax + 24]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x25380f66; WORD $0x8244; BYTE $0x20 // pmovsxdq    xmm0, qword [rdx + 4*rax + 32]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x28 // pmovsxdq    xmm1, qword [rdx + 4*rax + 40]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x25380f66; WORD $0x8244; BYTE $0x30 // pmovsxdq    xmm0, qword [rdx + 4*rax + 48]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x38 // pmovsxdq    xmm1, qword [rdx + 4*rax + 56]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_831

LBB0_832:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_835
	QUAD $0x0000000885048d48 // lea    rax, [4*rax + 8]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_834:
	LONG $0x25380f66; WORD $0x0244; BYTE $0xf8 // pmovsxdq    xmm0, qword [rdx + rax - 8]
	LONG $0x25380f66; WORD $0x020c             // pmovsxdq    xmm1, qword [rdx + rax]
	LONG $0x447f0ff3; WORD $0xf041             // movdqu    oword [rcx + 2*rax - 16], xmm0
	LONG $0x0c7f0ff3; BYTE $0x41               // movdqu    oword [rcx + 2*rax], xmm1
	LONG $0x10c08348                           // add    rax, 16
	WORD $0xff49; BYTE $0xc0                   // inc    r8
	JNE  LBB0_834

LBB0_835:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_836:
	LONG $0xb2046348         // movsxd    rax, dword [rdx + 4*rsi]
	LONG $0xf1048948         // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_836
	JMP  LBB0_1526

LBB0_857:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_858:
	LONG $0x35380f66; WORD $0x8204             // pmovzxdq    xmm0, qword [rdx + 4*rax]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x08 // pmovzxdq    xmm1, qword [rdx + 4*rax + 8]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x35380f66; WORD $0x8244; BYTE $0x10 // pmovzxdq    xmm0, qword [rdx + 4*rax + 16]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x18 // pmovzxdq    xmm1, qword [rdx + 4*rax + 24]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x35380f66; WORD $0x8244; BYTE $0x20 // pmovzxdq    xmm0, qword [rdx + 4*rax + 32]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x28 // pmovzxdq    xmm1, qword [rdx + 4*rax + 40]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x35380f66; WORD $0x8244; BYTE $0x30 // pmovzxdq    xmm0, qword [rdx + 4*rax + 48]
	LONG $0x35380f66; WORD $0x824c; BYTE $0x38 // pmovzxdq    xmm1, qword [rdx + 4*rax + 56]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_858

LBB0_859:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_862
	QUAD $0x0000000885048d48 // lea    rax, [4*rax + 8]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_861:
	LONG $0x35380f66; WORD $0x0244; BYTE $0xf8 // pmovzxdq    xmm0, qword [rdx + rax - 8]
	LONG $0x35380f66; WORD $0x020c             // pmovzxdq    xmm1, qword [rdx + rax]
	LONG $0x447f0ff3; WORD $0xf041             // movdqu    oword [rcx + 2*rax - 16], xmm0
	LONG $0x0c7f0ff3; BYTE $0x41               // movdqu    oword [rcx + 2*rax], xmm1
	LONG $0x10c08348                           // add    rax, 16
	WORD $0xff49; BYTE $0xc0                   // inc    r8
	JNE  LBB0_861

LBB0_862:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_863:
	WORD $0x048b; BYTE $0xb2 // mov    eax, dword [rdx + 4*rsi]
	LONG $0xf1048948         // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_863
	JMP  LBB0_1526

LBB0_871:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_872:
	LONG $0x34380f66; WORD $0x4204             // pmovzxwq    xmm0, dword [rdx + 2*rax]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x04 // pmovzxwq    xmm1, dword [rdx + 2*rax + 4]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x34380f66; WORD $0x4244; BYTE $0x08 // pmovzxwq    xmm0, dword [rdx + 2*rax + 8]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x0c // pmovzxwq    xmm1, dword [rdx + 2*rax + 12]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x34380f66; WORD $0x4244; BYTE $0x10 // pmovzxwq    xmm0, dword [rdx + 2*rax + 16]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x14 // pmovzxwq    xmm1, dword [rdx + 2*rax + 20]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x34380f66; WORD $0x4244; BYTE $0x18 // pmovzxwq    xmm0, dword [rdx + 2*rax + 24]
	LONG $0x34380f66; WORD $0x424c; BYTE $0x1c // pmovzxwq    xmm1, dword [rdx + 2*rax + 28]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_872

LBB0_873:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_876
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x42148d4c         // lea    r10, [rdx + 2*rax]
	LONG $0x04c28349         // add    r10, 4
	WORD $0xc031             // xor    eax, eax

LBB0_875:
	QUAD $0xfcc24434380f4166                   // pmovzxwq    xmm0, dword [r10 + 8*rax - 4]
	LONG $0x380f4166; WORD $0x0c34; BYTE $0xc2 // pmovzxwq    xmm1, dword [r10 + 8*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_875

LBB0_876:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_877:
	LONG $0x7204b70f         // movzx    eax, word [rdx + 2*rsi]
	LONG $0xf1048948         // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_877
	JMP  LBB0_1526

LBB0_878:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_879:
	LONG $0x24380f66; WORD $0x4204             // pmovsxwq    xmm0, dword [rdx + 2*rax]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x04 // pmovsxwq    xmm1, dword [rdx + 2*rax + 4]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x24380f66; WORD $0x4244; BYTE $0x08 // pmovsxwq    xmm0, dword [rdx + 2*rax + 8]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x0c // pmovsxwq    xmm1, dword [rdx + 2*rax + 12]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x24380f66; WORD $0x4244; BYTE $0x10 // pmovsxwq    xmm0, dword [rdx + 2*rax + 16]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x14 // pmovsxwq    xmm1, dword [rdx + 2*rax + 20]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x24380f66; WORD $0x4244; BYTE $0x18 // pmovsxwq    xmm0, dword [rdx + 2*rax + 24]
	LONG $0x24380f66; WORD $0x424c; BYTE $0x1c // pmovsxwq    xmm1, dword [rdx + 2*rax + 28]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_879

LBB0_880:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_883
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x42148d4c         // lea    r10, [rdx + 2*rax]
	LONG $0x04c28349         // add    r10, 4
	WORD $0xc031             // xor    eax, eax

LBB0_882:
	QUAD $0xfcc24424380f4166                   // pmovsxwq    xmm0, dword [r10 + 8*rax - 4]
	LONG $0x380f4166; WORD $0x0c24; BYTE $0xc2 // pmovsxwq    xmm1, dword [r10 + 8*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_882

LBB0_883:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_884:
	LONG $0x04bf0f48; BYTE $0x72 // movsx    rax, word [rdx + 2*rsi]
	LONG $0xf1048948             // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_884
	JMP  LBB0_1526

LBB0_894:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_895:
	LONG $0x25380f66; WORD $0x8204             // pmovsxdq    xmm0, qword [rdx + 4*rax]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x08 // pmovsxdq    xmm1, qword [rdx + 4*rax + 8]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x25380f66; WORD $0x8244; BYTE $0x10 // pmovsxdq    xmm0, qword [rdx + 4*rax + 16]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x18 // pmovsxdq    xmm1, qword [rdx + 4*rax + 24]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x25380f66; WORD $0x8244; BYTE $0x20 // pmovsxdq    xmm0, qword [rdx + 4*rax + 32]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x28 // pmovsxdq    xmm1, qword [rdx + 4*rax + 40]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x25380f66; WORD $0x8244; BYTE $0x30 // pmovsxdq    xmm0, qword [rdx + 4*rax + 48]
	LONG $0x25380f66; WORD $0x824c; BYTE $0x38 // pmovsxdq    xmm1, qword [rdx + 4*rax + 56]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_895

LBB0_896:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_899
	QUAD $0x0000000885048d48 // lea    rax, [4*rax + 8]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_898:
	LONG $0x25380f66; WORD $0x0244; BYTE $0xf8 // pmovsxdq    xmm0, qword [rdx + rax - 8]
	LONG $0x25380f66; WORD $0x020c             // pmovsxdq    xmm1, qword [rdx + rax]
	LONG $0x447f0ff3; WORD $0xf041             // movdqu    oword [rcx + 2*rax - 16], xmm0
	LONG $0x0c7f0ff3; BYTE $0x41               // movdqu    oword [rcx + 2*rax], xmm1
	LONG $0x10c08348                           // add    rax, 16
	WORD $0xff49; BYTE $0xc0                   // inc    r8
	JNE  LBB0_898

LBB0_899:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_900:
	LONG $0xb2046348         // movsxd    rax, dword [rdx + 4*rsi]
	LONG $0xf1048948         // mov    qword [rcx + 8*rsi], rax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_900
	JMP  LBB0_1526

LBB0_939:
	WORD $0xff31 // xor    edi, edi

LBB0_940:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_942
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0

LBB0_942:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_943:
	WORD $0x048b; BYTE $0xf2 // mov    eax, dword [rdx + 8*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_943
	JMP  LBB0_1526

LBB0_944:
	WORD $0xff31 // xor    edi, edi

LBB0_945:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_947
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0

LBB0_947:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_948:
	WORD $0x048b; BYTE $0xf2 // mov    eax, dword [rdx + 8*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_948
	JMP  LBB0_1526

LBB0_949:
	WORD $0xff31 // xor    edi, edi

LBB0_950:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_952
	LONG $0x33380f66; WORD $0x7a04             // pmovzxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_952:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_953:
	LONG $0x7204b70f         // movzx    eax, word [rdx + 2*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_953
	JMP  LBB0_1526

LBB0_954:
	WORD $0xff31 // xor    edi, edi

LBB0_955:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_957
	LONG $0x23380f66; WORD $0x7a04             // pmovsxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_957:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_958:
	LONG $0x7204bf0f         // movsx    eax, word [rdx + 2*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_958
	JMP  LBB0_1526

LBB0_959:
	WORD $0xff31 // xor    edi, edi

LBB0_960:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_962
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0

LBB0_962:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_963:
	WORD $0x048b; BYTE $0xf2 // mov    eax, dword [rdx + 8*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_963
	JMP  LBB0_1526

LBB0_964:
	WORD $0xff31 // xor    edi, edi

LBB0_965:
	LONG $0x01c0f641             // test    r8b, 1
	JE   LBB0_967
	LONG $0xba0c100f             // movups    xmm1, oword [rdx + 4*rdi]
	LONG $0xba54100f; BYTE $0x10 // movups    xmm2, oword [rdx + 4*rdi + 16]
	LONG $0x205d280f             // movaps    xmm3, oword 32[rbp] /* [rip + .LCPI0_3] */
	WORD $0x280f; BYTE $0xc1     // movaps    xmm0, xmm1
	LONG $0x01c3c20f             // cmpltps    xmm0, xmm3
	LONG $0xe15b0ff3             // cvttps2dq    xmm4, xmm1
	WORD $0x5c0f; BYTE $0xcb     // subps    xmm1, xmm3
	LONG $0xc95b0ff3             // cvttps2dq    xmm1, xmm1
	LONG $0x306d280f             // movaps    xmm5, oword 48[rbp] /* [rip + .LCPI0_4] */
	WORD $0x570f; BYTE $0xcd     // xorps    xmm1, xmm5
	LONG $0x14380f66; BYTE $0xcc // blendvps    xmm1, xmm4, xmm0
	WORD $0x280f; BYTE $0xc2     // movaps    xmm0, xmm2
	LONG $0x01c3c20f             // cmpltps    xmm0, xmm3
	LONG $0xe25b0ff3             // cvttps2dq    xmm4, xmm2
	WORD $0x5c0f; BYTE $0xd3     // subps    xmm2, xmm3
	LONG $0xd25b0ff3             // cvttps2dq    xmm2, xmm2
	WORD $0x570f; BYTE $0xd5     // xorps    xmm2, xmm5
	LONG $0x14380f66; BYTE $0xd4 // blendvps    xmm2, xmm4, xmm0
	LONG $0xb90c110f             // movups    oword [rcx + 4*rdi], xmm1
	LONG $0xb954110f; BYTE $0x10 // movups    oword [rcx + 4*rdi + 16], xmm2

LBB0_967:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_968:
	LONG $0x2c0f48f3; WORD $0xb204 // cvttss2si    rax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1       // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348               // add    rsi, 1
	WORD $0x3949; BYTE $0xf1       // cmp    r9, rsi
	JNE  LBB0_968
	JMP  LBB0_1526

LBB0_969:
	WORD $0xff31 // xor    edi, edi

LBB0_970:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_972
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xd2ef0f66               // pxor    xmm2, xmm2
	LONG $0xd86f0f66               // movdqa    xmm3, xmm0
	LONG $0x0e3a0f66; WORD $0xccda // pblendw    xmm3, xmm2, 204
	LONG $0x656f0f66; BYTE $0x50   // movdqa    xmm4, oword 80[rbp] /* [rip + .LCPI0_6] */
	LONG $0xdceb0f66               // por    xmm3, xmm4
	LONG $0xd0730f66; BYTE $0x20   // psrlq    xmm0, 32
	LONG $0x6d6f0f66; BYTE $0x60   // movdqa    xmm5, oword 96[rbp] /* [rip + .LCPI0_7] */
	LONG $0xc5eb0f66               // por    xmm0, xmm5
	LONG $0x75280f66; BYTE $0x70   // movapd    xmm6, oword 112[rbp] /* [rip + .LCPI0_8] */
	LONG $0xc65c0f66               // subpd    xmm0, xmm6
	LONG $0xc3580f66               // addpd    xmm0, xmm3
	LONG $0x0e3a0f66; WORD $0x33d1 // pblendw    xmm2, xmm1, 51
	LONG $0xd4eb0f66               // por    xmm2, xmm4
	LONG $0xd1730f66; BYTE $0x20   // psrlq    xmm1, 32
	LONG $0xcdeb0f66               // por    xmm1, xmm5
	LONG $0xce5c0f66               // subpd    xmm1, xmm6
	LONG $0xca580f66               // addpd    xmm1, xmm2
	LONG $0x04110f66; BYTE $0xf9   // movupd    oword [rcx + 8*rdi], xmm0
	LONG $0x4c110f66; WORD $0x10f9 // movupd    oword [rcx + 8*rdi + 16], xmm1

LBB0_972:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_973:
	QUAD $0x0000008085280f66 // movapd    xmm0, oword 128[rbp] /* [rip + .LCPI0_9] */
	QUAD $0x000000908d280f66 // movapd    xmm1, oword 144[rbp] /* [rip + .LCPI0_10] */

LBB0_974:
	LONG $0x14100ff2; BYTE $0xf2 // movsd    xmm2, qword [rdx + 8*rsi]
	WORD $0x140f; BYTE $0xd0     // unpcklps    xmm2, xmm0
	LONG $0xd15c0f66             // subpd    xmm2, xmm1
	LONG $0xda280f66             // movapd    xmm3, xmm2
	LONG $0xda150f66             // unpckhpd    xmm3, xmm2
	LONG $0xda580ff2             // addsd    xmm3, xmm2
	LONG $0x1c110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm3
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_974
	JMP  LBB0_1526

LBB0_975:
	WORD $0xff31 // xor    edi, edi

LBB0_976:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_978
	LONG $0xba045a0f               // cvtps2pd    xmm0, qword [rdx + 4*rdi]
	LONG $0xba4c5a0f; BYTE $0x08   // cvtps2pd    xmm1, qword [rdx + 4*rdi + 8]
	LONG $0x04110f66; BYTE $0xf9   // movupd    oword [rcx + 8*rdi], xmm0
	LONG $0x4c110f66; WORD $0x10f9 // movupd    oword [rcx + 8*rdi + 16], xmm1

LBB0_978:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_979:
	LONG $0x04100ff3; BYTE $0xb2 // movss    xmm0, dword [rdx + 4*rsi]
	LONG $0xc05a0ff3             // cvtss2sd    xmm0, xmm0
	LONG $0x04110ff2; BYTE $0xf1 // movsd    qword [rcx + 8*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_979
	JMP  LBB0_1526

LBB0_980:
	WORD $0xff31 // xor    edi, edi

LBB0_981:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_983
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000b0956f0f66       // movdqa    xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm0

LBB0_983:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_984:
	LONG $0xb204b70f         // movzx    eax, word [rdx + 4*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_984
	JMP  LBB0_1526

LBB0_985:
	WORD $0xff31 // xor    edi, edi

LBB0_986:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_988
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000b0956f0f66       // movdqa    xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm0

LBB0_988:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_989:
	LONG $0xb204b70f         // movzx    eax, word [rdx + 4*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_989
	JMP  LBB0_1526

LBB0_990:
	WORD $0xff31 // xor    edi, edi

LBB0_991:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_993
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1

LBB0_993:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_994:
	LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si    eax, qword [rdx + 8*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_994
	JMP  LBB0_1526

LBB0_995:
	WORD $0xff31 // xor    edi, edi

LBB0_996:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_998
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1

LBB0_998:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_999:
	LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si    eax, qword [rdx + 8*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_999
	JMP  LBB0_1526

LBB0_1000:
	WORD $0xff31 // xor    edi, edi

LBB0_1001:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1003
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1

LBB0_1003:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1004:
	LONG $0xf204b70f         // movzx    eax, word [rdx + 8*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1004
	JMP  LBB0_1526

LBB0_1005:
	WORD $0xff31 // xor    edi, edi

LBB0_1006:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1008
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1

LBB0_1008:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1009:
	LONG $0xf204b70f         // movzx    eax, word [rdx + 8*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1009
	JMP  LBB0_1526

LBB0_1010:
	WORD $0xff31 // xor    edi, edi

LBB0_1011:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1013
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1

LBB0_1013:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1014:
	LONG $0xf204b70f         // movzx    eax, word [rdx + 8*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1014
	JMP  LBB0_1526

LBB0_1015:
	WORD $0xff31 // xor    edi, edi

LBB0_1016:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1018
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc0700ff2; BYTE $0xe8   // pshuflw    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc9700ff2; BYTE $0xe8   // pshuflw    xmm1, xmm1, 232
	LONG $0x047e0f66; BYTE $0x79   // movd    dword [rcx + 2*rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0479 // movd    dword [rcx + 2*rdi + 4], xmm1

LBB0_1018:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1019:
	LONG $0xf204b70f         // movzx    eax, word [rdx + 8*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1019
	JMP  LBB0_1526

LBB0_1020:
	WORD $0xff31 // xor    edi, edi

LBB0_1021:
	LONG $0x01c0f641             // test    r8b, 1
	JE   LBB0_1023
	LONG $0xba04100f             // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10 // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3             // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3             // cvttps2dq    xmm1, xmm1
	LONG $0x2b380f66; BYTE $0xc1 // packusdw    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79 // movdqu    oword [rcx + 2*rdi], xmm0

LBB0_1023:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1024:
	LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si    eax, dword [rdx + 4*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1024
	JMP  LBB0_1526

LBB0_1025:
	WORD $0xff31 // xor    edi, edi

LBB0_1026:
	LONG $0x01c0f641             // test    r8b, 1
	JE   LBB0_1028
	LONG $0xba04100f             // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10 // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3             // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3             // cvttps2dq    xmm1, xmm1
	LONG $0xc16b0f66             // packssdw    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79 // movdqu    oword [rcx + 2*rdi], xmm0

LBB0_1028:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1029:
	LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si    eax, dword [rdx + 4*rsi]
	LONG $0x71048966             // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1029
	JMP  LBB0_1526

LBB0_1030:
	WORD $0xff31 // xor    edi, edi

LBB0_1031:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1033
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000b0956f0f66       // movdqa    xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm0

LBB0_1033:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1034:
	LONG $0xb204b70f         // movzx    eax, word [rdx + 4*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1034
	JMP  LBB0_1526

LBB0_1035:
	WORD $0xff31 // xor    edi, edi

LBB0_1036:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1038
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000b0956f0f66       // movdqa    xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x79   // movdqu    oword [rcx + 2*rdi], xmm0

LBB0_1038:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1039:
	LONG $0xb204b70f         // movzx    eax, word [rdx + 4*rsi]
	LONG $0x71048966         // mov    word [rcx + 2*rsi], ax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1039
	JMP  LBB0_1526

LBB0_1040:
	WORD $0xff31 // xor    edi, edi

LBB0_1041:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1043
	LONG $0x046f0ff3; BYTE $0xba               // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba             // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000d0956f0f66                   // movdqa    xmm2, oword 208[rbp] /* [rip + .LCPI0_14] */
	LONG $0xd86f0f66                           // movdqa    xmm3, xmm0
	LONG $0x0e3a0f66; WORD $0xaada             // pblendw    xmm3, xmm2, 170
	LONG $0xd0720f66; BYTE $0x10               // psrld    xmm0, 16
	QUAD $0x000000e0a56f0f66                   // movdqa    xmm4, oword 224[rbp] /* [rip + .LCPI0_15] */
	LONG $0x0e3a0f66; WORD $0xaac4             // pblendw    xmm0, xmm4, 170
	LONG $0xf0ad280f; WORD $0x0000; BYTE $0x00 // movaps    xmm5, oword 240[rbp] /* [rip + .LCPI0_16] */
	WORD $0x5c0f; BYTE $0xc5                   // subps    xmm0, xmm5
	WORD $0x580f; BYTE $0xc3                   // addps    xmm0, xmm3
	LONG $0x0e3a0f66; WORD $0x55d1             // pblendw    xmm2, xmm1, 85
	LONG $0xd1720f66; BYTE $0x10               // psrld    xmm1, 16
	LONG $0x0e3a0f66; WORD $0xaacc             // pblendw    xmm1, xmm4, 170
	WORD $0x5c0f; BYTE $0xcd                   // subps    xmm1, xmm5
	WORD $0x580f; BYTE $0xca                   // addps    xmm1, xmm2
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1

LBB0_1043:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1044:
	WORD $0x048b; BYTE $0xb2     // mov    eax, dword [rdx + 4*rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss    xmm0, rax
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1044
	JMP  LBB0_1526

LBB0_1045:
	WORD $0xff31 // xor    edi, edi

LBB0_1046:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1048
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc05a0f66               // cvtpd2ps    xmm0, xmm0
	LONG $0xc95a0f66               // cvtpd2ps    xmm1, xmm1
	LONG $0xc1140f66               // unpcklpd    xmm0, xmm1
	LONG $0x04110f66; BYTE $0xb9   // movupd    oword [rcx + 4*rdi], xmm0

LBB0_1048:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1049:
	LONG $0x04100ff2; BYTE $0xf2 // movsd    xmm0, qword [rdx + 8*rsi]
	LONG $0xc05a0ff2             // cvtsd2ss    xmm0, xmm0
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1049
	JMP  LBB0_1526

LBB0_1050:
	WORD $0xff31 // xor    edi, edi

LBB0_1051:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1053
	LONG $0x046f0ff3; BYTE $0xfa               // movdqu    xmm0, oword [rdx + 8*rdi]
	QUAD $0x000000a09d6f0f66                   // movdqa    xmm3, oword 160[rbp] /* [rip + .LCPI0_11] */
	LONG $0xc86f0f66                           // movdqa    xmm1, xmm0
	LONG $0xd06f0f66                           // movdqa    xmm2, xmm0
	LONG $0xe06f0f66                           // movdqa    xmm4, xmm0
	LONG $0xe3db0f66                           // pand    xmm4, xmm3
	LONG $0xd1730f66; BYTE $0x01               // psrlq    xmm1, 1
	LONG $0xcceb0f66                           // por    xmm1, xmm4
	LONG $0x15380f66; BYTE $0xd1               // blendvpd    xmm2, xmm1, xmm0
	LONG $0x3a0f4866; WORD $0xd016; BYTE $0x01 // pextrq    rax, xmm2, 1
	WORD $0x570f; BYTE $0xe4                   // xorps    xmm4, xmm4
	LONG $0x2a0f48f3; BYTE $0xe0               // cvtsi2ss    xmm4, rax
	LONG $0x7e0f4866; BYTE $0xd0               // movq    rax, xmm2
	WORD $0x570f; BYTE $0xd2                   // xorps    xmm2, xmm2
	LONG $0x2a0f48f3; BYTE $0xd0               // cvtsi2ss    xmm2, rax
	LONG $0xedef0f66                           // pxor    xmm5, xmm5
	LONG $0x37380f66; BYTE $0xe8               // pcmpgtq    xmm5, xmm0
	LONG $0x4c6f0ff3; WORD $0x10fa             // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x213a0f66; WORD $0x1cd4             // insertps    xmm2, xmm4, 28
	WORD $0x280f; BYTE $0xe2                   // movaps    xmm4, xmm2
	WORD $0x580f; BYTE $0xe2                   // addps    xmm4, xmm2
	LONG $0xf6ef0f66                           // pxor    xmm6, xmm6
	LONG $0xc5700f66; BYTE $0xed               // pshufd    xmm0, xmm5, 237
	LONG $0x14380f66; BYTE $0xd4               // blendvps    xmm2, xmm4, xmm0
	LONG $0xd9db0f66                           // pand    xmm3, xmm1
	LONG $0xe16f0f66                           // movdqa    xmm4, xmm1
	LONG $0xd4730f66; BYTE $0x01               // psrlq    xmm4, 1
	LONG $0xe3eb0f66                           // por    xmm4, xmm3
	LONG $0x37380f66; BYTE $0xf1               // pcmpgtq    xmm6, xmm1
	LONG $0xc16f0f66                           // movdqa    xmm0, xmm1
	LONG $0x15380f66; BYTE $0xcc               // blendvpd    xmm1, xmm4, xmm0
	LONG $0x3a0f4866; WORD $0xc816; BYTE $0x01 // pextrq    rax, xmm1, 1
	WORD $0x570f; BYTE $0xc0                   // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; BYTE $0xc0               // cvtsi2ss    xmm0, rax
	LONG $0x7e0f4866; BYTE $0xc8               // movq    rax, xmm1
	WORD $0x570f; BYTE $0xc9                   // xorps    xmm1, xmm1
	LONG $0x2a0f48f3; BYTE $0xc8               // cvtsi2ss    xmm1, rax
	LONG $0x213a0f66; WORD $0x1cc8             // insertps    xmm1, xmm0, 28
	WORD $0x280f; BYTE $0xd9                   // movaps    xmm3, xmm1
	WORD $0x580f; BYTE $0xd9                   // addps    xmm3, xmm1
	LONG $0xc6700f66; BYTE $0xed               // pshufd    xmm0, xmm6, 237
	LONG $0x14380f66; BYTE $0xcb               // blendvps    xmm1, xmm3, xmm0
	WORD $0x160f; BYTE $0xd1                   // movlhps    xmm2, xmm1
	LONG $0xb914110f                           // movups    oword [rcx + 4*rdi], xmm2

LBB0_1053:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JNE  LBB0_1056
	JMP  LBB0_1526

LBB0_1054:
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss    xmm0, rax
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JE   LBB0_1526

LBB0_1056:
	LONG $0xf2048b48             // mov    rax, qword [rdx + 8*rsi]
	WORD $0x8548; BYTE $0xc0     // test    rax, rax
	JNS  LBB0_1054
	WORD $0x8948; BYTE $0xc7     // mov    rdi, rax
	WORD $0xd148; BYTE $0xef     // shr    rdi, 1
	WORD $0xe083; BYTE $0x01     // and    eax, 1
	WORD $0x0948; BYTE $0xf8     // or    rax, rdi
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss    xmm0, rax
	LONG $0xc0580ff3             // addss    xmm0, xmm0
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1056
	JMP  LBB0_1526

LBB0_1058:
	WORD $0xff31 // xor    edi, edi

LBB0_1059:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1061
	LONG $0x33380f66; WORD $0x7a04             // pmovzxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 8]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1

LBB0_1061:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1062:
	LONG $0x7204b70f             // movzx    eax, word [rdx + 2*rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff3             // cvtsi2ss    xmm0, eax
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1062
	JMP  LBB0_1526

LBB0_1063:
	WORD $0xff31 // xor    edi, edi

LBB0_1064:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1066
	LONG $0x23380f66; WORD $0x7a04             // pmovsxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 8]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1

LBB0_1066:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1067:
	LONG $0x7204bf0f             // movsx    eax, word [rdx + 2*rsi]
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0xc02a0ff3             // cvtsi2ss    xmm0, eax
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1067
	JMP  LBB0_1526

LBB0_1068:
	WORD $0xff31 // xor    edi, edi

LBB0_1069:
	LONG $0x01c0f641             // test    r8b, 1
	JE   LBB0_1071
	LONG $0xba04100f             // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10 // movups    xmm1, oword [rdx + 4*rdi + 16]
	WORD $0x5b0f; BYTE $0xc0     // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9     // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f             // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10 // movups    oword [rcx + 4*rdi + 16], xmm1

LBB0_1071:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1072:
	WORD $0x570f; BYTE $0xc0     // xorps    xmm0, xmm0
	LONG $0x042a0ff3; BYTE $0xb2 // cvtsi2ss    xmm0, dword [rdx + 4*rsi]
	LONG $0x04110ff3; BYTE $0xb1 // movss    dword [rcx + 4*rsi], xmm0
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1072
	JMP  LBB0_1526

LBB0_1073:
	WORD $0xff31 // xor    edi, edi

LBB0_1074:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1076
	LONG $0x04100f66; BYTE $0xfa   // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c100f66; WORD $0x10fa // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0e60f66               // cvttpd2dq    xmm0, xmm0
	LONG $0xc9e60f66               // cvttpd2dq    xmm1, xmm1
	LONG $0xc1140f66               // unpcklpd    xmm0, xmm1
	LONG $0x04110f66; BYTE $0xb9   // movupd    oword [rcx + 4*rdi], xmm0

LBB0_1076:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1077:
	LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si    eax, qword [rdx + 8*rsi]
	WORD $0x0489; BYTE $0xb1     // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1077
	JMP  LBB0_1526

LBB0_1078:
	WORD $0xff31 // xor    edi, edi

LBB0_1079:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1081
	LONG $0x33380f66; WORD $0x7a04             // pmovzxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_1081:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1082:
	LONG $0x7204b70f         // movzx    eax, word [rdx + 2*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1082
	JMP  LBB0_1526

LBB0_1083:
	WORD $0xff31 // xor    edi, edi

LBB0_1084:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1086
	LONG $0x23380f66; WORD $0x7a04             // pmovsxwd    xmm0, qword [rdx + 2*rdi]
	LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd    xmm1, qword [rdx + 2*rdi + 8]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_1086:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1087:
	LONG $0x7204bf0f         // movsx    eax, word [rdx + 2*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1087
	JMP  LBB0_1526

LBB0_1088:
	WORD $0xff31 // xor    edi, edi

LBB0_1089:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1091
	LONG $0x046f0ff3; BYTE $0xfa   // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0xc0700f66; BYTE $0xe8   // pshufd    xmm0, xmm0, 232
	LONG $0xc9700f66; BYTE $0xe8   // pshufd    xmm1, xmm1, 232
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0xb9   // movdqu    oword [rcx + 4*rdi], xmm0

LBB0_1091:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1092:
	WORD $0x048b; BYTE $0xf2 // mov    eax, dword [rdx + 8*rsi]
	WORD $0x0489; BYTE $0xb1 // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348         // add    rsi, 1
	WORD $0x3949; BYTE $0xf1 // cmp    r9, rsi
	JNE  LBB0_1092
	JMP  LBB0_1526

LBB0_1093:
	WORD $0xff31 // xor    edi, edi

LBB0_1094:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1096
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0x04110f66; BYTE $0xb9   // movupd    oword [rcx + 4*rdi], xmm0
	LONG $0x4c110f66; WORD $0x10b9 // movupd    oword [rcx + 4*rdi + 16], xmm1

LBB0_1096:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526

LBB0_1097:
	LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si    eax, dword [rdx + 4*rsi]
	WORD $0x0489; BYTE $0xb1     // mov    dword [rcx + 4*rsi], eax
	LONG $0x01c68348             // add    rsi, 1
	WORD $0x3949; BYTE $0xf1     // cmp    r9, rsi
	JNE  LBB0_1097

LBB0_1526:
	RET

LBB0_1098:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1099:
	LONG $0x8204100f               // movups    xmm0, oword [rdx + 4*rax]
	LONG $0x824c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rax + 16]
	LONG $0x8104110f               // movups    oword [rcx + 4*rax], xmm0
	LONG $0x814c110f; BYTE $0x10   // movups    oword [rcx + 4*rax + 16], xmm1
	LONG $0x8244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rax + 32]
	LONG $0x824c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rax + 48]
	LONG $0x8144110f; BYTE $0x20   // movups    oword [rcx + 4*rax + 32], xmm0
	LONG $0x814c110f; BYTE $0x30   // movups    oword [rcx + 4*rax + 48], xmm1
	LONG $0x8244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 4*rax + 64]
	LONG $0x824c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 4*rax + 80]
	LONG $0x8144110f; BYTE $0x40   // movups    oword [rcx + 4*rax + 64], xmm0
	LONG $0x814c110f; BYTE $0x50   // movups    oword [rcx + 4*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6082 // movupd    xmm0, oword [rdx + 4*rax + 96]
	LONG $0x4c100f66; WORD $0x7082 // movupd    xmm1, oword [rdx + 4*rax + 112]
	LONG $0x44110f66; WORD $0x6081 // movupd    oword [rcx + 4*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7081 // movupd    oword [rcx + 4*rax + 112], xmm1
	LONG $0x20c08348               // add    rax, 32
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1099

LBB0_1100:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1103
	QUAD $0x0000001085048d48 // lea    rax, [4*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1102:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1102

LBB0_1103:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1104

LBB0_1108:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1109:
	LONG $0x8204100f               // movups    xmm0, oword [rdx + 4*rax]
	LONG $0x824c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rax + 16]
	LONG $0x8104110f               // movups    oword [rcx + 4*rax], xmm0
	LONG $0x814c110f; BYTE $0x10   // movups    oword [rcx + 4*rax + 16], xmm1
	LONG $0x8244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rax + 32]
	LONG $0x824c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rax + 48]
	LONG $0x8144110f; BYTE $0x20   // movups    oword [rcx + 4*rax + 32], xmm0
	LONG $0x814c110f; BYTE $0x30   // movups    oword [rcx + 4*rax + 48], xmm1
	LONG $0x8244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 4*rax + 64]
	LONG $0x824c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 4*rax + 80]
	LONG $0x8144110f; BYTE $0x40   // movups    oword [rcx + 4*rax + 64], xmm0
	LONG $0x814c110f; BYTE $0x50   // movups    oword [rcx + 4*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6082 // movupd    xmm0, oword [rdx + 4*rax + 96]
	LONG $0x4c100f66; WORD $0x7082 // movupd    xmm1, oword [rdx + 4*rax + 112]
	LONG $0x44110f66; WORD $0x6081 // movupd    oword [rcx + 4*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7081 // movupd    oword [rcx + 4*rax + 112], xmm1
	LONG $0x20c08348               // add    rax, 32
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1109

LBB0_1110:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1113
	QUAD $0x0000001085048d48 // lea    rax, [4*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1112:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1112

LBB0_1113:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1114

LBB0_1118:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1119:
	LONG $0xc204100f               // movups    xmm0, oword [rdx + 8*rax]
	LONG $0xc24c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 8*rax + 16]
	LONG $0xc104110f               // movups    oword [rcx + 8*rax], xmm0
	LONG $0xc14c110f; BYTE $0x10   // movups    oword [rcx + 8*rax + 16], xmm1
	LONG $0xc244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 8*rax + 32]
	LONG $0xc24c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 8*rax + 48]
	LONG $0xc144110f; BYTE $0x20   // movups    oword [rcx + 8*rax + 32], xmm0
	LONG $0xc14c110f; BYTE $0x30   // movups    oword [rcx + 8*rax + 48], xmm1
	LONG $0xc244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 8*rax + 64]
	LONG $0xc24c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 8*rax + 80]
	LONG $0xc144110f; BYTE $0x40   // movups    oword [rcx + 8*rax + 64], xmm0
	LONG $0xc14c110f; BYTE $0x50   // movups    oword [rcx + 8*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x60c2 // movupd    xmm0, oword [rdx + 8*rax + 96]
	LONG $0x4c100f66; WORD $0x70c2 // movupd    xmm1, oword [rdx + 8*rax + 112]
	LONG $0x44110f66; WORD $0x60c1 // movupd    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x70c1 // movupd    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348               // add    rax, 16
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1119

LBB0_1120:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1123
	QUAD $0x00000010c5048d48 // lea    rax, [8*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1122:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1122

LBB0_1123:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1124

LBB0_1128:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1129:
	LONG $0x0204100f               // movups    xmm0, oword [rdx + rax]
	LONG $0x024c100f; BYTE $0x10   // movups    xmm1, oword [rdx + rax + 16]
	LONG $0x0104110f               // movups    oword [rcx + rax], xmm0
	LONG $0x014c110f; BYTE $0x10   // movups    oword [rcx + rax + 16], xmm1
	LONG $0x0244100f; BYTE $0x20   // movups    xmm0, oword [rdx + rax + 32]
	LONG $0x024c100f; BYTE $0x30   // movups    xmm1, oword [rdx + rax + 48]
	LONG $0x0144110f; BYTE $0x20   // movups    oword [rcx + rax + 32], xmm0
	LONG $0x014c110f; BYTE $0x30   // movups    oword [rcx + rax + 48], xmm1
	LONG $0x0244100f; BYTE $0x40   // movups    xmm0, oword [rdx + rax + 64]
	LONG $0x024c100f; BYTE $0x50   // movups    xmm1, oword [rdx + rax + 80]
	LONG $0x0144110f; BYTE $0x40   // movups    oword [rcx + rax + 64], xmm0
	LONG $0x014c110f; BYTE $0x50   // movups    oword [rcx + rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6002 // movupd    xmm0, oword [rdx + rax + 96]
	LONG $0x4c100f66; WORD $0x7002 // movupd    xmm1, oword [rdx + rax + 112]
	LONG $0x44110f66; WORD $0x6001 // movupd    oword [rcx + rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7001 // movupd    oword [rcx + rax + 112], xmm1
	LONG $0x80e88348               // sub    rax, -128
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1129

LBB0_1130:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1133
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1132:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1132

LBB0_1133:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1134

LBB0_1138:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1139:
	LONG $0x0204100f               // movups    xmm0, oword [rdx + rax]
	LONG $0x024c100f; BYTE $0x10   // movups    xmm1, oword [rdx + rax + 16]
	LONG $0x0104110f               // movups    oword [rcx + rax], xmm0
	LONG $0x014c110f; BYTE $0x10   // movups    oword [rcx + rax + 16], xmm1
	LONG $0x0244100f; BYTE $0x20   // movups    xmm0, oword [rdx + rax + 32]
	LONG $0x024c100f; BYTE $0x30   // movups    xmm1, oword [rdx + rax + 48]
	LONG $0x0144110f; BYTE $0x20   // movups    oword [rcx + rax + 32], xmm0
	LONG $0x014c110f; BYTE $0x30   // movups    oword [rcx + rax + 48], xmm1
	LONG $0x0244100f; BYTE $0x40   // movups    xmm0, oword [rdx + rax + 64]
	LONG $0x024c100f; BYTE $0x50   // movups    xmm1, oword [rdx + rax + 80]
	LONG $0x0144110f; BYTE $0x40   // movups    oword [rcx + rax + 64], xmm0
	LONG $0x014c110f; BYTE $0x50   // movups    oword [rcx + rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6002 // movupd    xmm0, oword [rdx + rax + 96]
	LONG $0x4c100f66; WORD $0x7002 // movupd    xmm1, oword [rdx + rax + 112]
	LONG $0x44110f66; WORD $0x6001 // movupd    oword [rcx + rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7001 // movupd    oword [rcx + rax + 112], xmm1
	LONG $0x80e88348               // sub    rax, -128
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1139

LBB0_1140:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1143
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1142:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1142

LBB0_1143:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1144

LBB0_1148:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1149:
	LONG $0x22380f66; WORD $0x0204             // pmovsxbq    xmm0, word [rdx + rax]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x02 // pmovsxbq    xmm1, word [rdx + rax + 2]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x22380f66; WORD $0x0244; BYTE $0x04 // pmovsxbq    xmm0, word [rdx + rax + 4]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x06 // pmovsxbq    xmm1, word [rdx + rax + 6]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x22380f66; WORD $0x0244; BYTE $0x08 // pmovsxbq    xmm0, word [rdx + rax + 8]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x0a // pmovsxbq    xmm1, word [rdx + rax + 10]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x22380f66; WORD $0x0244; BYTE $0x0c // pmovsxbq    xmm0, word [rdx + rax + 12]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x0e // pmovsxbq    xmm1, word [rdx + rax + 14]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_1149

LBB0_1150:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1153
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x10148d4c         // lea    r10, [rax + rdx]
	LONG $0x02c28349         // add    r10, 2
	WORD $0xc031             // xor    eax, eax

LBB0_1152:
	QUAD $0xfe824422380f4166                   // pmovsxbq    xmm0, word [r10 + 4*rax - 2]
	LONG $0x380f4166; WORD $0x0c22; BYTE $0x82 // pmovsxbq    xmm1, word [r10 + 4*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_1152

LBB0_1153:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1154

LBB0_1158:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1159:
	LONG $0xc204100f               // movups    xmm0, oword [rdx + 8*rax]
	LONG $0xc24c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 8*rax + 16]
	LONG $0xc104110f               // movups    oword [rcx + 8*rax], xmm0
	LONG $0xc14c110f; BYTE $0x10   // movups    oword [rcx + 8*rax + 16], xmm1
	LONG $0xc244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 8*rax + 32]
	LONG $0xc24c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 8*rax + 48]
	LONG $0xc144110f; BYTE $0x20   // movups    oword [rcx + 8*rax + 32], xmm0
	LONG $0xc14c110f; BYTE $0x30   // movups    oword [rcx + 8*rax + 48], xmm1
	LONG $0xc244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 8*rax + 64]
	LONG $0xc24c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 8*rax + 80]
	LONG $0xc144110f; BYTE $0x40   // movups    oword [rcx + 8*rax + 64], xmm0
	LONG $0xc14c110f; BYTE $0x50   // movups    oword [rcx + 8*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x60c2 // movupd    xmm0, oword [rdx + 8*rax + 96]
	LONG $0x4c100f66; WORD $0x70c2 // movupd    xmm1, oword [rdx + 8*rax + 112]
	LONG $0x44110f66; WORD $0x60c1 // movupd    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x70c1 // movupd    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348               // add    rax, 16
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1159

LBB0_1160:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1163
	QUAD $0x00000010c5048d48 // lea    rax, [8*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1162:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1162

LBB0_1163:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1164

LBB0_1168:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1169:
	LONG $0xc204100f               // movups    xmm0, oword [rdx + 8*rax]
	LONG $0xc24c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 8*rax + 16]
	LONG $0xc104110f               // movups    oword [rcx + 8*rax], xmm0
	LONG $0xc14c110f; BYTE $0x10   // movups    oword [rcx + 8*rax + 16], xmm1
	LONG $0xc244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 8*rax + 32]
	LONG $0xc24c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 8*rax + 48]
	LONG $0xc144110f; BYTE $0x20   // movups    oword [rcx + 8*rax + 32], xmm0
	LONG $0xc14c110f; BYTE $0x30   // movups    oword [rcx + 8*rax + 48], xmm1
	LONG $0xc244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 8*rax + 64]
	LONG $0xc24c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 8*rax + 80]
	LONG $0xc144110f; BYTE $0x40   // movups    oword [rcx + 8*rax + 64], xmm0
	LONG $0xc14c110f; BYTE $0x50   // movups    oword [rcx + 8*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x60c2 // movupd    xmm0, oword [rdx + 8*rax + 96]
	LONG $0x4c100f66; WORD $0x70c2 // movupd    xmm1, oword [rdx + 8*rax + 112]
	LONG $0x44110f66; WORD $0x60c1 // movupd    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x70c1 // movupd    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348               // add    rax, 16
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1169

LBB0_1170:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1173
	QUAD $0x00000010c5048d48 // lea    rax, [8*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1172:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1172

LBB0_1173:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1174

LBB0_1178:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1179:
	LONG $0x32380f66; WORD $0x0204             // pmovzxbq    xmm0, word [rdx + rax]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x02 // pmovzxbq    xmm1, word [rdx + rax + 2]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x32380f66; WORD $0x0244; BYTE $0x04 // pmovzxbq    xmm0, word [rdx + rax + 4]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x06 // pmovzxbq    xmm1, word [rdx + rax + 6]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x32380f66; WORD $0x0244; BYTE $0x08 // pmovzxbq    xmm0, word [rdx + rax + 8]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x0a // pmovzxbq    xmm1, word [rdx + rax + 10]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x32380f66; WORD $0x0244; BYTE $0x0c // pmovzxbq    xmm0, word [rdx + rax + 12]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x0e // pmovzxbq    xmm1, word [rdx + rax + 14]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_1179

LBB0_1180:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1183
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x10148d4c         // lea    r10, [rax + rdx]
	LONG $0x02c28349         // add    r10, 2
	WORD $0xc031             // xor    eax, eax

LBB0_1182:
	QUAD $0xfe824432380f4166                   // pmovzxbq    xmm0, word [r10 + 4*rax - 2]
	LONG $0x380f4166; WORD $0x0c32; BYTE $0x82 // pmovzxbq    xmm1, word [r10 + 4*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_1182

LBB0_1183:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1184

LBB0_1188:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1189:
	LONG $0x4204100f               // movups    xmm0, oword [rdx + 2*rax]
	LONG $0x424c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 2*rax + 16]
	LONG $0x4104110f               // movups    oword [rcx + 2*rax], xmm0
	LONG $0x414c110f; BYTE $0x10   // movups    oword [rcx + 2*rax + 16], xmm1
	LONG $0x4244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 2*rax + 32]
	LONG $0x424c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 2*rax + 48]
	LONG $0x4144110f; BYTE $0x20   // movups    oword [rcx + 2*rax + 32], xmm0
	LONG $0x414c110f; BYTE $0x30   // movups    oword [rcx + 2*rax + 48], xmm1
	LONG $0x4244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 2*rax + 64]
	LONG $0x424c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 2*rax + 80]
	LONG $0x4144110f; BYTE $0x40   // movups    oword [rcx + 2*rax + 64], xmm0
	LONG $0x414c110f; BYTE $0x50   // movups    oword [rcx + 2*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6042 // movupd    xmm0, oword [rdx + 2*rax + 96]
	LONG $0x4c100f66; WORD $0x7042 // movupd    xmm1, oword [rdx + 2*rax + 112]
	LONG $0x44110f66; WORD $0x6041 // movupd    oword [rcx + 2*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7041 // movupd    oword [rcx + 2*rax + 112], xmm1
	LONG $0x40c08348               // add    rax, 64
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1189

LBB0_1190:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1193
	WORD $0x0148; BYTE $0xc0 // add    rax, rax
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1192:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1192

LBB0_1193:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1194

LBB0_1198:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1199:
	LONG $0x4204100f               // movups    xmm0, oword [rdx + 2*rax]
	LONG $0x424c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 2*rax + 16]
	LONG $0x4104110f               // movups    oword [rcx + 2*rax], xmm0
	LONG $0x414c110f; BYTE $0x10   // movups    oword [rcx + 2*rax + 16], xmm1
	LONG $0x4244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 2*rax + 32]
	LONG $0x424c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 2*rax + 48]
	LONG $0x4144110f; BYTE $0x20   // movups    oword [rcx + 2*rax + 32], xmm0
	LONG $0x414c110f; BYTE $0x30   // movups    oword [rcx + 2*rax + 48], xmm1
	LONG $0x4244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 2*rax + 64]
	LONG $0x424c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 2*rax + 80]
	LONG $0x4144110f; BYTE $0x40   // movups    oword [rcx + 2*rax + 64], xmm0
	LONG $0x414c110f; BYTE $0x50   // movups    oword [rcx + 2*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6042 // movupd    xmm0, oword [rdx + 2*rax + 96]
	LONG $0x4c100f66; WORD $0x7042 // movupd    xmm1, oword [rdx + 2*rax + 112]
	LONG $0x44110f66; WORD $0x6041 // movupd    oword [rcx + 2*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7041 // movupd    oword [rcx + 2*rax + 112], xmm1
	LONG $0x40c08348               // add    rax, 64
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1199

LBB0_1200:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1203
	WORD $0x0148; BYTE $0xc0 // add    rax, rax
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1202:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1202

LBB0_1203:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1204

LBB0_1208:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1209:
	LONG $0x4204100f               // movups    xmm0, oword [rdx + 2*rax]
	LONG $0x424c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 2*rax + 16]
	LONG $0x4104110f               // movups    oword [rcx + 2*rax], xmm0
	LONG $0x414c110f; BYTE $0x10   // movups    oword [rcx + 2*rax + 16], xmm1
	LONG $0x4244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 2*rax + 32]
	LONG $0x424c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 2*rax + 48]
	LONG $0x4144110f; BYTE $0x20   // movups    oword [rcx + 2*rax + 32], xmm0
	LONG $0x414c110f; BYTE $0x30   // movups    oword [rcx + 2*rax + 48], xmm1
	LONG $0x4244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 2*rax + 64]
	LONG $0x424c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 2*rax + 80]
	LONG $0x4144110f; BYTE $0x40   // movups    oword [rcx + 2*rax + 64], xmm0
	LONG $0x414c110f; BYTE $0x50   // movups    oword [rcx + 2*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6042 // movupd    xmm0, oword [rdx + 2*rax + 96]
	LONG $0x4c100f66; WORD $0x7042 // movupd    xmm1, oword [rdx + 2*rax + 112]
	LONG $0x44110f66; WORD $0x6041 // movupd    oword [rcx + 2*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7041 // movupd    oword [rcx + 2*rax + 112], xmm1
	LONG $0x40c08348               // add    rax, 64
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1209

LBB0_1210:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1213
	WORD $0x0148; BYTE $0xc0 // add    rax, rax
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1212:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1212

LBB0_1213:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1214

LBB0_1218:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1219:
	LONG $0x4204100f               // movups    xmm0, oword [rdx + 2*rax]
	LONG $0x424c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 2*rax + 16]
	LONG $0x4104110f               // movups    oword [rcx + 2*rax], xmm0
	LONG $0x414c110f; BYTE $0x10   // movups    oword [rcx + 2*rax + 16], xmm1
	LONG $0x4244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 2*rax + 32]
	LONG $0x424c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 2*rax + 48]
	LONG $0x4144110f; BYTE $0x20   // movups    oword [rcx + 2*rax + 32], xmm0
	LONG $0x414c110f; BYTE $0x30   // movups    oword [rcx + 2*rax + 48], xmm1
	LONG $0x4244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 2*rax + 64]
	LONG $0x424c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 2*rax + 80]
	LONG $0x4144110f; BYTE $0x40   // movups    oword [rcx + 2*rax + 64], xmm0
	LONG $0x414c110f; BYTE $0x50   // movups    oword [rcx + 2*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6042 // movupd    xmm0, oword [rdx + 2*rax + 96]
	LONG $0x4c100f66; WORD $0x7042 // movupd    xmm1, oword [rdx + 2*rax + 112]
	LONG $0x44110f66; WORD $0x6041 // movupd    oword [rcx + 2*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7041 // movupd    oword [rcx + 2*rax + 112], xmm1
	LONG $0x40c08348               // add    rax, 64
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1219

LBB0_1220:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1223
	WORD $0x0148; BYTE $0xc0 // add    rax, rax
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1222:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1222

LBB0_1223:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1224

LBB0_1228:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1229:
	LONG $0x22380f66; WORD $0x0204             // pmovsxbq    xmm0, word [rdx + rax]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x02 // pmovsxbq    xmm1, word [rdx + rax + 2]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x22380f66; WORD $0x0244; BYTE $0x04 // pmovsxbq    xmm0, word [rdx + rax + 4]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x06 // pmovsxbq    xmm1, word [rdx + rax + 6]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x22380f66; WORD $0x0244; BYTE $0x08 // pmovsxbq    xmm0, word [rdx + rax + 8]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x0a // pmovsxbq    xmm1, word [rdx + rax + 10]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x22380f66; WORD $0x0244; BYTE $0x0c // pmovsxbq    xmm0, word [rdx + rax + 12]
	LONG $0x22380f66; WORD $0x024c; BYTE $0x0e // pmovsxbq    xmm1, word [rdx + rax + 14]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_1229

LBB0_1230:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1233
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x10148d4c         // lea    r10, [rax + rdx]
	LONG $0x02c28349         // add    r10, 2
	WORD $0xc031             // xor    eax, eax

LBB0_1232:
	QUAD $0xfe824422380f4166                   // pmovsxbq    xmm0, word [r10 + 4*rax - 2]
	LONG $0x380f4166; WORD $0x0c22; BYTE $0x82 // pmovsxbq    xmm1, word [r10 + 4*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_1232

LBB0_1233:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1234

LBB0_1238:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1239:
	LONG $0xc204100f               // movups    xmm0, oword [rdx + 8*rax]
	LONG $0xc24c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 8*rax + 16]
	LONG $0xc104110f               // movups    oword [rcx + 8*rax], xmm0
	LONG $0xc14c110f; BYTE $0x10   // movups    oword [rcx + 8*rax + 16], xmm1
	LONG $0xc244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 8*rax + 32]
	LONG $0xc24c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 8*rax + 48]
	LONG $0xc144110f; BYTE $0x20   // movups    oword [rcx + 8*rax + 32], xmm0
	LONG $0xc14c110f; BYTE $0x30   // movups    oword [rcx + 8*rax + 48], xmm1
	LONG $0xc244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 8*rax + 64]
	LONG $0xc24c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 8*rax + 80]
	LONG $0xc144110f; BYTE $0x40   // movups    oword [rcx + 8*rax + 64], xmm0
	LONG $0xc14c110f; BYTE $0x50   // movups    oword [rcx + 8*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x60c2 // movupd    xmm0, oword [rdx + 8*rax + 96]
	LONG $0x4c100f66; WORD $0x70c2 // movupd    xmm1, oword [rdx + 8*rax + 112]
	LONG $0x44110f66; WORD $0x60c1 // movupd    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x70c1 // movupd    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348               // add    rax, 16
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1239

LBB0_1240:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1243
	QUAD $0x00000010c5048d48 // lea    rax, [8*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1242:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1242

LBB0_1243:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1244

LBB0_1248:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1249:
	LONG $0xc204100f               // movups    xmm0, oword [rdx + 8*rax]
	LONG $0xc24c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 8*rax + 16]
	LONG $0xc104110f               // movups    oword [rcx + 8*rax], xmm0
	LONG $0xc14c110f; BYTE $0x10   // movups    oword [rcx + 8*rax + 16], xmm1
	LONG $0xc244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 8*rax + 32]
	LONG $0xc24c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 8*rax + 48]
	LONG $0xc144110f; BYTE $0x20   // movups    oword [rcx + 8*rax + 32], xmm0
	LONG $0xc14c110f; BYTE $0x30   // movups    oword [rcx + 8*rax + 48], xmm1
	LONG $0xc244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 8*rax + 64]
	LONG $0xc24c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 8*rax + 80]
	LONG $0xc144110f; BYTE $0x40   // movups    oword [rcx + 8*rax + 64], xmm0
	LONG $0xc14c110f; BYTE $0x50   // movups    oword [rcx + 8*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x60c2 // movupd    xmm0, oword [rdx + 8*rax + 96]
	LONG $0x4c100f66; WORD $0x70c2 // movupd    xmm1, oword [rdx + 8*rax + 112]
	LONG $0x44110f66; WORD $0x60c1 // movupd    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x70c1 // movupd    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348               // add    rax, 16
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1249

LBB0_1250:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1253
	QUAD $0x00000010c5048d48 // lea    rax, [8*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1252:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1252

LBB0_1253:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1254

LBB0_1258:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1259:
	LONG $0x8204100f               // movups    xmm0, oword [rdx + 4*rax]
	LONG $0x824c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rax + 16]
	LONG $0x8104110f               // movups    oword [rcx + 4*rax], xmm0
	LONG $0x814c110f; BYTE $0x10   // movups    oword [rcx + 4*rax + 16], xmm1
	LONG $0x8244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rax + 32]
	LONG $0x824c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rax + 48]
	LONG $0x8144110f; BYTE $0x20   // movups    oword [rcx + 4*rax + 32], xmm0
	LONG $0x814c110f; BYTE $0x30   // movups    oword [rcx + 4*rax + 48], xmm1
	LONG $0x8244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 4*rax + 64]
	LONG $0x824c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 4*rax + 80]
	LONG $0x8144110f; BYTE $0x40   // movups    oword [rcx + 4*rax + 64], xmm0
	LONG $0x814c110f; BYTE $0x50   // movups    oword [rcx + 4*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6082 // movupd    xmm0, oword [rdx + 4*rax + 96]
	LONG $0x4c100f66; WORD $0x7082 // movupd    xmm1, oword [rdx + 4*rax + 112]
	LONG $0x44110f66; WORD $0x6081 // movupd    oword [rcx + 4*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7081 // movupd    oword [rcx + 4*rax + 112], xmm1
	LONG $0x20c08348               // add    rax, 32
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1259

LBB0_1260:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1263
	QUAD $0x0000001085048d48 // lea    rax, [4*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1262:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1262

LBB0_1263:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1264

LBB0_1268:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1269:
	LONG $0x32380f66; WORD $0x0204             // pmovzxbq    xmm0, word [rdx + rax]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x02 // pmovzxbq    xmm1, word [rdx + rax + 2]
	LONG $0x047f0ff3; BYTE $0xc1               // movdqu    oword [rcx + 8*rax], xmm0
	LONG $0x4c7f0ff3; WORD $0x10c1             // movdqu    oword [rcx + 8*rax + 16], xmm1
	LONG $0x32380f66; WORD $0x0244; BYTE $0x04 // pmovzxbq    xmm0, word [rdx + rax + 4]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x06 // pmovzxbq    xmm1, word [rdx + rax + 6]
	LONG $0x447f0ff3; WORD $0x20c1             // movdqu    oword [rcx + 8*rax + 32], xmm0
	LONG $0x4c7f0ff3; WORD $0x30c1             // movdqu    oword [rcx + 8*rax + 48], xmm1
	LONG $0x32380f66; WORD $0x0244; BYTE $0x08 // pmovzxbq    xmm0, word [rdx + rax + 8]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x0a // pmovzxbq    xmm1, word [rdx + rax + 10]
	LONG $0x447f0ff3; WORD $0x40c1             // movdqu    oword [rcx + 8*rax + 64], xmm0
	LONG $0x4c7f0ff3; WORD $0x50c1             // movdqu    oword [rcx + 8*rax + 80], xmm1
	LONG $0x32380f66; WORD $0x0244; BYTE $0x0c // pmovzxbq    xmm0, word [rdx + rax + 12]
	LONG $0x32380f66; WORD $0x024c; BYTE $0x0e // pmovzxbq    xmm1, word [rdx + rax + 14]
	LONG $0x447f0ff3; WORD $0x60c1             // movdqu    oword [rcx + 8*rax + 96], xmm0
	LONG $0x4c7f0ff3; WORD $0x70c1             // movdqu    oword [rcx + 8*rax + 112], xmm1
	LONG $0x10c08348                           // add    rax, 16
	LONG $0x04c78348                           // add    rdi, 4
	JNE  LBB0_1269

LBB0_1270:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1273
	LONG $0xc13c8d48         // lea    rdi, [rcx + 8*rax]
	LONG $0x10c78348         // add    rdi, 16
	LONG $0x10148d4c         // lea    r10, [rax + rdx]
	LONG $0x02c28349         // add    r10, 2
	WORD $0xc031             // xor    eax, eax

LBB0_1272:
	QUAD $0xfe824432380f4166                   // pmovzxbq    xmm0, word [r10 + 4*rax - 2]
	LONG $0x380f4166; WORD $0x0c32; BYTE $0x82 // pmovzxbq    xmm1, word [r10 + 4*rax]
	LONG $0x477f0ff3; BYTE $0xf0               // movdqu    oword [rdi - 16], xmm0
	LONG $0x0f7f0ff3                           // movdqu    oword [rdi], xmm1
	LONG $0x20c78348                           // add    rdi, 32
	LONG $0x01c08348                           // add    rax, 1
	WORD $0x3949; BYTE $0xc0                   // cmp    r8, rax
	JNE  LBB0_1272

LBB0_1273:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1274

LBB0_1278:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1279:
	LONG $0x0204100f               // movups    xmm0, oword [rdx + rax]
	LONG $0x024c100f; BYTE $0x10   // movups    xmm1, oword [rdx + rax + 16]
	LONG $0x0104110f               // movups    oword [rcx + rax], xmm0
	LONG $0x014c110f; BYTE $0x10   // movups    oword [rcx + rax + 16], xmm1
	LONG $0x0244100f; BYTE $0x20   // movups    xmm0, oword [rdx + rax + 32]
	LONG $0x024c100f; BYTE $0x30   // movups    xmm1, oword [rdx + rax + 48]
	LONG $0x0144110f; BYTE $0x20   // movups    oword [rcx + rax + 32], xmm0
	LONG $0x014c110f; BYTE $0x30   // movups    oword [rcx + rax + 48], xmm1
	LONG $0x0244100f; BYTE $0x40   // movups    xmm0, oword [rdx + rax + 64]
	LONG $0x024c100f; BYTE $0x50   // movups    xmm1, oword [rdx + rax + 80]
	LONG $0x0144110f; BYTE $0x40   // movups    oword [rcx + rax + 64], xmm0
	LONG $0x014c110f; BYTE $0x50   // movups    oword [rcx + rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6002 // movupd    xmm0, oword [rdx + rax + 96]
	LONG $0x4c100f66; WORD $0x7002 // movupd    xmm1, oword [rdx + rax + 112]
	LONG $0x44110f66; WORD $0x6001 // movupd    oword [rcx + rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7001 // movupd    oword [rcx + rax + 112], xmm1
	LONG $0x80e88348               // sub    rax, -128
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1279

LBB0_1280:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1283
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1282:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1282

LBB0_1283:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1284

LBB0_1288:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1289:
	LONG $0x0204100f               // movups    xmm0, oword [rdx + rax]
	LONG $0x024c100f; BYTE $0x10   // movups    xmm1, oword [rdx + rax + 16]
	LONG $0x0104110f               // movups    oword [rcx + rax], xmm0
	LONG $0x014c110f; BYTE $0x10   // movups    oword [rcx + rax + 16], xmm1
	LONG $0x0244100f; BYTE $0x20   // movups    xmm0, oword [rdx + rax + 32]
	LONG $0x024c100f; BYTE $0x30   // movups    xmm1, oword [rdx + rax + 48]
	LONG $0x0144110f; BYTE $0x20   // movups    oword [rcx + rax + 32], xmm0
	LONG $0x014c110f; BYTE $0x30   // movups    oword [rcx + rax + 48], xmm1
	LONG $0x0244100f; BYTE $0x40   // movups    xmm0, oword [rdx + rax + 64]
	LONG $0x024c100f; BYTE $0x50   // movups    xmm1, oword [rdx + rax + 80]
	LONG $0x0144110f; BYTE $0x40   // movups    oword [rcx + rax + 64], xmm0
	LONG $0x014c110f; BYTE $0x50   // movups    oword [rcx + rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6002 // movupd    xmm0, oword [rdx + rax + 96]
	LONG $0x4c100f66; WORD $0x7002 // movupd    xmm1, oword [rdx + rax + 112]
	LONG $0x44110f66; WORD $0x6001 // movupd    oword [rcx + rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7001 // movupd    oword [rcx + rax + 112], xmm1
	LONG $0x80e88348               // sub    rax, -128
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1289

LBB0_1290:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1293
	LONG $0x10c08348         // add    rax, 16
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1292:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1292

LBB0_1293:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1294

LBB0_1298:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1299:
	LONG $0x8204100f               // movups    xmm0, oword [rdx + 4*rax]
	LONG $0x824c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rax + 16]
	LONG $0x8104110f               // movups    oword [rcx + 4*rax], xmm0
	LONG $0x814c110f; BYTE $0x10   // movups    oword [rcx + 4*rax + 16], xmm1
	LONG $0x8244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rax + 32]
	LONG $0x824c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rax + 48]
	LONG $0x8144110f; BYTE $0x20   // movups    oword [rcx + 4*rax + 32], xmm0
	LONG $0x814c110f; BYTE $0x30   // movups    oword [rcx + 4*rax + 48], xmm1
	LONG $0x8244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 4*rax + 64]
	LONG $0x824c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 4*rax + 80]
	LONG $0x8144110f; BYTE $0x40   // movups    oword [rcx + 4*rax + 64], xmm0
	LONG $0x814c110f; BYTE $0x50   // movups    oword [rcx + 4*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6082 // movupd    xmm0, oword [rdx + 4*rax + 96]
	LONG $0x4c100f66; WORD $0x7082 // movupd    xmm1, oword [rdx + 4*rax + 112]
	LONG $0x44110f66; WORD $0x6081 // movupd    oword [rcx + 4*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7081 // movupd    oword [rcx + 4*rax + 112], xmm1
	LONG $0x20c08348               // add    rax, 32
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1299

LBB0_1300:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1303
	QUAD $0x0000001085048d48 // lea    rax, [4*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1302:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1302

LBB0_1303:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1304

LBB0_1308:
	LONG $0xfce78348         // and    rdi, -4
	WORD $0xf748; BYTE $0xdf // neg    rdi
	WORD $0xc031             // xor    eax, eax

LBB0_1309:
	LONG $0x8204100f               // movups    xmm0, oword [rdx + 4*rax]
	LONG $0x824c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rax + 16]
	LONG $0x8104110f               // movups    oword [rcx + 4*rax], xmm0
	LONG $0x814c110f; BYTE $0x10   // movups    oword [rcx + 4*rax + 16], xmm1
	LONG $0x8244100f; BYTE $0x20   // movups    xmm0, oword [rdx + 4*rax + 32]
	LONG $0x824c100f; BYTE $0x30   // movups    xmm1, oword [rdx + 4*rax + 48]
	LONG $0x8144110f; BYTE $0x20   // movups    oword [rcx + 4*rax + 32], xmm0
	LONG $0x814c110f; BYTE $0x30   // movups    oword [rcx + 4*rax + 48], xmm1
	LONG $0x8244100f; BYTE $0x40   // movups    xmm0, oword [rdx + 4*rax + 64]
	LONG $0x824c100f; BYTE $0x50   // movups    xmm1, oword [rdx + 4*rax + 80]
	LONG $0x8144110f; BYTE $0x40   // movups    oword [rcx + 4*rax + 64], xmm0
	LONG $0x814c110f; BYTE $0x50   // movups    oword [rcx + 4*rax + 80], xmm1
	LONG $0x44100f66; WORD $0x6082 // movupd    xmm0, oword [rdx + 4*rax + 96]
	LONG $0x4c100f66; WORD $0x7082 // movupd    xmm1, oword [rdx + 4*rax + 112]
	LONG $0x44110f66; WORD $0x6081 // movupd    oword [rcx + 4*rax + 96], xmm0
	LONG $0x4c110f66; WORD $0x7081 // movupd    oword [rcx + 4*rax + 112], xmm1
	LONG $0x20c08348               // add    rax, 32
	LONG $0x04c78348               // add    rdi, 4
	JNE  LBB0_1309

LBB0_1310:
	WORD $0x854d; BYTE $0xc0 // test    r8, r8
	JE   LBB0_1313
	QUAD $0x0000001085048d48 // lea    rax, [4*rax + 16]
	WORD $0xf749; BYTE $0xd8 // neg    r8

LBB0_1312:
	LONG $0x44100f66; WORD $0xf002 // movupd    xmm0, oword [rdx + rax - 16]
	LONG $0x0c100f66; BYTE $0x02   // movupd    xmm1, oword [rdx + rax]
	LONG $0x44110f66; WORD $0xf001 // movupd    oword [rcx + rax - 16], xmm0
	LONG $0x0c110f66; BYTE $0x01   // movupd    oword [rcx + rax], xmm1
	LONG $0x20c08348               // add    rax, 32
	WORD $0xff49; BYTE $0xc0       // inc    r8
	JNE  LBB0_1312

LBB0_1313:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1314

LBB0_1318:
	WORD $0xff31 // xor    edi, edi

LBB0_1319:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1321
	LONG $0x046f0ff3; BYTE $0xfa               // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa             // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x556f0f66; BYTE $0x40               // movdqa    xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */
	LONG $0x00380f66; BYTE $0xc2               // pshufb    xmm0, xmm2
	LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw    word [rcx + rdi], xmm0, 0
	LONG $0x00380f66; BYTE $0xca               // pshufb    xmm1, xmm2
	QUAD $0x0002394c153a0f66                   // pextrw    word [rcx + rdi + 2], xmm1, 0

LBB0_1321:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1322

LBB0_1326:
	WORD $0xff31 // xor    edi, edi

LBB0_1327:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1329
	LONG $0x046f0ff3; BYTE $0x7a   // movdqu    xmm0, oword [rdx + 2*rdi]
	LONG $0x4c6f0ff3; WORD $0x107a // movdqu    xmm1, oword [rdx + 2*rdi + 16]
	QUAD $0x00000100956f0f66       // movdqa    xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm0

LBB0_1329:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1330

LBB0_1334:
	WORD $0xff31 // xor    edi, edi

LBB0_1335:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1337
	LONG $0x046f0ff3; BYTE $0xfa               // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa             // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x556f0f66; BYTE $0x40               // movdqa    xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */
	LONG $0x00380f66; BYTE $0xc2               // pshufb    xmm0, xmm2
	LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw    word [rcx + rdi], xmm0, 0
	LONG $0x00380f66; BYTE $0xca               // pshufb    xmm1, xmm2
	QUAD $0x0002394c153a0f66                   // pextrw    word [rcx + rdi + 2], xmm1, 0

LBB0_1337:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1338

LBB0_1342:
	WORD $0xff31 // xor    edi, edi

LBB0_1343:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1345
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000c0956f0f66       // movdqa    xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1

LBB0_1345:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1346

LBB0_1350:
	WORD $0xff31 // xor    edi, edi

LBB0_1351:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1353
	LONG $0x20380f66; WORD $0x3a04             // pmovsxbw    xmm0, qword [rdx + rdi]
	LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1

LBB0_1353:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1354

LBB0_1358:
	WORD $0xff31 // xor    edi, edi

LBB0_1359:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1361
	LONG $0x20380f66; WORD $0x3a04             // pmovsxbw    xmm0, qword [rdx + rdi]
	LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1

LBB0_1361:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1362

LBB0_1366:
	WORD $0xff31 // xor    edi, edi

LBB0_1367:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1369
	LONG $0x30380f66; WORD $0x3a04             // pmovzxbw    xmm0, qword [rdx + rdi]
	LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1

LBB0_1369:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1370

LBB0_1374:
	WORD $0xff31 // xor    edi, edi

LBB0_1375:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1377
	LONG $0x30380f66; WORD $0x3a04             // pmovzxbw    xmm0, qword [rdx + rdi]
	LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw    xmm1, qword [rdx + rdi + 8]
	LONG $0x047f0ff3; BYTE $0x79               // movdqu    oword [rcx + 2*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x1079             // movdqu    oword [rcx + 2*rdi + 16], xmm1

LBB0_1377:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1378

LBB0_1382:
	WORD $0xff31 // xor    edi, edi

LBB0_1383:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1385
	LONG $0x21380f66; WORD $0x3a04             // pmovsxbd    xmm0, dword [rdx + rdi]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd    xmm1, dword [rdx + rdi + 4]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1

LBB0_1385:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1386

LBB0_1390:
	WORD $0xff31 // xor    edi, edi

LBB0_1391:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1393
	LONG $0x31380f66; WORD $0x3a04             // pmovzxbd    xmm0, dword [rdx + rdi]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd    xmm1, dword [rdx + rdi + 4]
	WORD $0x5b0f; BYTE $0xc0                   // cvtdq2ps    xmm0, xmm0
	WORD $0x5b0f; BYTE $0xc9                   // cvtdq2ps    xmm1, xmm1
	LONG $0xb904110f                           // movups    oword [rcx + 4*rdi], xmm0
	LONG $0xb94c110f; BYTE $0x10               // movups    oword [rcx + 4*rdi + 16], xmm1

LBB0_1393:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1394

LBB0_1398:
	WORD $0xff31 // xor    edi, edi

LBB0_1399:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1401
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000c0956f0f66       // movdqa    xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1

LBB0_1401:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1402

LBB0_1406:
	WORD $0xff31 // xor    edi, edi

LBB0_1407:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1409
	LONG $0x04100f66; BYTE $0xfa               // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0xc0e60f66                           // cvttpd2dq    xmm0, xmm0
	LONG $0x4c100f66; WORD $0x10fa             // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x556f0f66; BYTE $0x10               // movdqa    xmm2, oword 16[rbp] /* [rip + .LCPI0_1] */
	LONG $0xc9e60f66                           // cvttpd2dq    xmm1, xmm1
	LONG $0x00380f66; BYTE $0xc2               // pshufb    xmm0, xmm2
	LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw    word [rcx + rdi], xmm0, 0
	LONG $0x00380f66; BYTE $0xca               // pshufb    xmm1, xmm2
	QUAD $0x0002394c153a0f66                   // pextrw    word [rcx + rdi + 2], xmm1, 0

LBB0_1409:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1410

LBB0_1414:
	WORD $0xff31 // xor    edi, edi

LBB0_1415:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1417
	LONG $0x046f0ff3; BYTE $0xfa               // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa             // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x556f0f66; BYTE $0x40               // movdqa    xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */
	LONG $0x00380f66; BYTE $0xc2               // pshufb    xmm0, xmm2
	LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw    word [rcx + rdi], xmm0, 0
	LONG $0x00380f66; BYTE $0xca               // pshufb    xmm1, xmm2
	QUAD $0x0002394c153a0f66                   // pextrw    word [rcx + rdi + 2], xmm1, 0

LBB0_1417:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1418

LBB0_1422:
	WORD $0xff31 // xor    edi, edi

LBB0_1423:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1425
	LONG $0x046f0ff3; BYTE $0x7a   // movdqu    xmm0, oword [rdx + 2*rdi]
	LONG $0x4c6f0ff3; WORD $0x107a // movdqu    xmm1, oword [rdx + 2*rdi + 16]
	QUAD $0x00000100956f0f66       // movdqa    xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm0

LBB0_1425:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1426

LBB0_1430:
	WORD $0xff31 // xor    edi, edi

LBB0_1431:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1433
	LONG $0x046f0ff3; BYTE $0x7a   // movdqu    xmm0, oword [rdx + 2*rdi]
	LONG $0x4c6f0ff3; WORD $0x107a // movdqu    xmm1, oword [rdx + 2*rdi + 16]
	QUAD $0x00000100956f0f66       // movdqa    xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm0

LBB0_1433:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1434

LBB0_1438:
	WORD $0xff31 // xor    edi, edi

LBB0_1439:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1441
	LONG $0x046f0ff3; BYTE $0xfa               // movdqu    xmm0, oword [rdx + 8*rdi]
	LONG $0x4c6f0ff3; WORD $0x10fa             // movdqu    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x556f0f66; BYTE $0x40               // movdqa    xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */
	LONG $0x00380f66; BYTE $0xc2               // pshufb    xmm0, xmm2
	LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw    word [rcx + rdi], xmm0, 0
	LONG $0x00380f66; BYTE $0xca               // pshufb    xmm1, xmm2
	QUAD $0x0002394c153a0f66                   // pextrw    word [rcx + rdi + 2], xmm1, 0

LBB0_1441:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1442

LBB0_1446:
	WORD $0xff31 // xor    edi, edi

LBB0_1447:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1449
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0x2b380f66; BYTE $0xc0   // packusdw    xmm0, xmm0
	LONG $0xc0670f66               // packuswb    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0x2b380f66; BYTE $0xc9   // packusdw    xmm1, xmm1
	LONG $0xc9670f66               // packuswb    xmm1, xmm1
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1

LBB0_1449:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1450

LBB0_1454:
	WORD $0xff31 // xor    edi, edi

LBB0_1455:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1457
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000c0956f0f66       // movdqa    xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1

LBB0_1457:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1458

LBB0_1462:
	WORD $0xff31 // xor    edi, edi

LBB0_1463:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1465
	LONG $0x21380f66; WORD $0x3a04             // pmovsxbd    xmm0, dword [rdx + rdi]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_1465:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1466

LBB0_1470:
	WORD $0xff31 // xor    edi, edi

LBB0_1471:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1473
	LONG $0x31380f66; WORD $0x3a04             // pmovzxbd    xmm0, dword [rdx + rdi]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_1473:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1474

LBB0_1478:
	WORD $0xff31 // xor    edi, edi

LBB0_1479:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1481
	LONG $0x21380f66; WORD $0x3a04             // pmovsxbd    xmm0, dword [rdx + rdi]
	LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_1481:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1482

LBB0_1486:
	WORD $0xff31 // xor    edi, edi

LBB0_1487:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1489
	LONG $0x31380f66; WORD $0x3a04             // pmovzxbd    xmm0, dword [rdx + rdi]
	LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd    xmm1, dword [rdx + rdi + 4]
	LONG $0x047f0ff3; BYTE $0xb9               // movdqu    oword [rcx + 4*rdi], xmm0
	LONG $0x4c7f0ff3; WORD $0x10b9             // movdqu    oword [rcx + 4*rdi + 16], xmm1

LBB0_1489:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1490

LBB0_1494:
	WORD $0xff31 // xor    edi, edi

LBB0_1495:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1497
	LONG $0x046f0ff3; BYTE $0xba   // movdqu    xmm0, oword [rdx + 4*rdi]
	LONG $0x4c6f0ff3; WORD $0x10ba // movdqu    xmm1, oword [rdx + 4*rdi + 16]
	QUAD $0x000000c0956f0f66       // movdqa    xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1

LBB0_1497:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1498

LBB0_1502:
	WORD $0xff31 // xor    edi, edi

LBB0_1503:
	LONG $0x01c0f641                           // test    r8b, 1
	JE   LBB0_1505
	LONG $0x04100f66; BYTE $0xfa               // movupd    xmm0, oword [rdx + 8*rdi]
	LONG $0xc0e60f66                           // cvttpd2dq    xmm0, xmm0
	LONG $0x4c100f66; WORD $0x10fa             // movupd    xmm1, oword [rdx + 8*rdi + 16]
	LONG $0x556f0f66; BYTE $0x10               // movdqa    xmm2, oword 16[rbp] /* [rip + .LCPI0_1] */
	LONG $0xc9e60f66                           // cvttpd2dq    xmm1, xmm1
	LONG $0x00380f66; BYTE $0xc2               // pshufb    xmm0, xmm2
	LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw    word [rcx + rdi], xmm0, 0
	LONG $0x00380f66; BYTE $0xca               // pshufb    xmm1, xmm2
	QUAD $0x0002394c153a0f66                   // pextrw    word [rcx + rdi + 2], xmm1, 0

LBB0_1505:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1506

LBB0_1510:
	WORD $0xff31 // xor    edi, edi

LBB0_1511:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1513
	LONG $0x046f0ff3; BYTE $0x7a   // movdqu    xmm0, oword [rdx + 2*rdi]
	LONG $0x4c6f0ff3; WORD $0x107a // movdqu    xmm1, oword [rdx + 2*rdi + 16]
	QUAD $0x00000100956f0f66       // movdqa    xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */
	LONG $0x00380f66; BYTE $0xc2   // pshufb    xmm0, xmm2
	LONG $0x00380f66; BYTE $0xca   // pshufb    xmm1, xmm2
	LONG $0xc16c0f66               // punpcklqdq    xmm0, xmm1
	LONG $0x047f0ff3; BYTE $0x39   // movdqu    oword [rcx + rdi], xmm0

LBB0_1513:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1514

LBB0_1518:
	WORD $0xff31 // xor    edi, edi

LBB0_1519:
	LONG $0x01c0f641               // test    r8b, 1
	JE   LBB0_1521
	LONG $0xba04100f               // movups    xmm0, oword [rdx + 4*rdi]
	LONG $0xba4c100f; BYTE $0x10   // movups    xmm1, oword [rdx + 4*rdi + 16]
	LONG $0xc05b0ff3               // cvttps2dq    xmm0, xmm0
	LONG $0xc06b0f66               // packssdw    xmm0, xmm0
	LONG $0xc0630f66               // packsswb    xmm0, xmm0
	LONG $0xc95b0ff3               // cvttps2dq    xmm1, xmm1
	LONG $0xc96b0f66               // packssdw    xmm1, xmm1
	LONG $0xc9630f66               // packsswb    xmm1, xmm1
	LONG $0x047e0f66; BYTE $0x39   // movd    dword [rcx + rdi], xmm0
	LONG $0x4c7e0f66; WORD $0x0439 // movd    dword [rcx + rdi + 4], xmm1

LBB0_1521:
	WORD $0x394c; BYTE $0xce // cmp    rsi, r9
	JE   LBB0_1526
	JMP  LBB0_1522