Function at 0x5108a6
Capabilities:
Check http status code
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x400
cmp dword [ebp + 0x14], 0xc8
je 0x512416
mov eax, 0x64
sub eax, dword [ebp + 0x14]
add eax, eax
lea ecx, [eax + 7]
test eax, eax
lea esi, [eax - 1]
mov dword [esp + 0x1c], eax
cmovns ecx, eax
mov dword [esp + 0x10], esi
sar ecx, 3
mov dword [esp + 0x20], ecx
xor eax, eax
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [ebp + 0xc]
lea edi, [esp + 0x330]
mov ecx, 0x32
rep stosd dword es:[edi], eax
jg 0x5121b3
mov edx, dword [esp + 0x20]
mov dword [esp + 0x268], 0
mov dword [esp + 0x210], 0
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1c8], 0
mov esi, edx
and edx, 0xfffffffe
mov dword [esp + 0x1cc], 0
shr esi, 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x230], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x234], 0
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x248], 0
mov dword [esp + 0x24c], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0
mov dword [esp + 0x250], 0
mov dword [esp + 0x254], 0
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x240], 0
mov dword [esp + 0x244], 0
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x511046
cmp dword [esp + 0x20], 1
je 0x512406
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x14]
movdqa xmm0, xmmword [esp + 0x330]
movdqu xmm1, xmmword [edi]
cmp ebx, 1
pxor xmm0, xmm1
movaps xmmword [esp + 0x290], xmm1
movaps xmmword [esp + 0x330], xmm0
jbe 0x510d66
cmp ebx, 2
mov edx, dword [ebp + 8]
movdqa xmm3, xmmword [esp + 0x340]
movdqu xmm2, xmmword [edx + 0x10]
pxor xmm3, xmm2
movaps xmmword [esp + 0x290], xmm2
movaps xmmword [esp + 0x340], xmm3
je 0x510d66
cmp ebx, 3
movdqu xmm4, xmmword [edx + 0x20]
movdqa xmm5, xmmword [esp + 0x350]
pxor xmm5, xmm4
movaps xmmword [esp + 0x290], xmm4
movaps xmmword [esp + 0x350], xmm5
je 0x510d66
cmp ebx, 4
movdqu xmm6, xmmword [edx + 0x30]
movdqa xmm7, xmmword [esp + 0x360]
pxor xmm7, xmm6
movaps xmmword [esp + 0x290], xmm6
movaps xmmword [esp + 0x360], xmm7
je 0x510d66
cmp ebx, 5
movdqu xmm1, xmmword [edx + 0x40]
movdqa xmm0, xmmword [esp + 0x370]
pxor xmm0, xmm1
movaps xmmword [esp + 0x290], xmm1
movaps xmmword [esp + 0x370], xmm0
je 0x510d66
cmp ebx, 6
movdqu xmm2, xmmword [edx + 0x50]
movdqa xmm3, xmmword [esp + 0x380]
pxor xmm3, xmm2
movaps xmmword [esp + 0x290], xmm2
movaps xmmword [esp + 0x380], xmm3
je 0x510d66
cmp ebx, 7
movdqu xmm4, xmmword [edx + 0x60]
movdqa xmm5, xmmword [esp + 0x390]
pxor xmm5, xmm4
movaps xmmword [esp + 0x290], xmm4
movaps xmmword [esp + 0x390], xmm5
je 0x510d66
cmp ebx, 8
movdqu xmm6, xmmword [edx + 0x70]
movdqa xmm7, xmmword [esp + 0x3a0]
pxor xmm7, xmm6
movaps xmmword [esp + 0x290], xmm6
movaps xmmword [esp + 0x3a0], xmm7
je 0x510d66
cmp ebx, 9
movdqu xmm1, xmmword [edx + 0x80]
movdqa xmm0, xmmword [esp + 0x3b0]
pxor xmm0, xmm1
movaps xmmword [esp + 0x290], xmm1
movaps xmmword [esp + 0x3b0], xmm0
je 0x510d66
cmp ebx, 0xa
movdqu xmm2, xmmword [edx + 0x90]
movdqa xmm3, xmmword [esp + 0x3c0]
pxor xmm3, xmm2
movaps xmmword [esp + 0x290], xmm2
movaps xmmword [esp + 0x3c0], xmm3
je 0x510d66
cmp ebx, 0xb
movdqu xmm4, xmmword [edx + 0xa0]
movdqa xmm5, xmmword [esp + 0x3d0]
pxor xmm5, xmm4
movaps xmmword [esp + 0x290], xmm4
movaps xmmword [esp + 0x3d0], xmm5
je 0x510d66
movdqu xmm6, xmmword [edx + 0xb0]
movdqa xmm7, xmmword [esp + 0x3e0]
pxor xmm7, xmm6
movaps xmmword [esp + 0x290], xmm6
movaps xmmword [esp + 0x3e0], xmm7
nop
lea esi, [esi]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
je 0x510d8a
mov edi, dword [ebp + 8]
mov ebx, dword [edi + eax*8]
mov edx, dword [edi + eax*8 + 4]
xor dword [esp + eax*8 + 0x330], ebx
xor dword [esp + eax*8 + 0x334], edx
mov eax, dword [esp + 0x358]
mov esi, dword [esp + 0x35c]
mov ecx, dword [esp + 0x378]
mov edi, dword [esp + 0x37c]
mov ebx, dword [esp + 0x370]
mov edx, dword [esp + 0x374]
mov dword [esp + 0x258], eax
mov dword [esp + 0x25c], esi
mov eax, dword [esp + 0x388]
mov esi, dword [esp + 0x38c]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], edi
mov ecx, dword [esp + 0x350]
mov edi, dword [esp + 0x354]
mov dword [esp + 0x1c0], ebx
mov dword [esp + 0x1c4], edx
mov dword [esp + 0x240], eax
mov edx, dword [esp + 0x384]
mov eax, dword [esp + 0x368]
mov dword [esp + 0x244], esi
mov dword [esp + 0x148], ecx
mov esi, dword [esp + 0x36c]
mov ecx, dword [esp + 0x348]
mov dword [esp + 0x14c], edi
mov ebx, dword [esp + 0x380]
mov edi, dword [esp + 0x34c]
mov dword [esp + 0x1f4], edx
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], esi
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], edi
mov dword [esp + 0x1f0], ebx
mov ebx, dword [esp + 0x360]
mov edx, dword [esp + 0x364]
mov eax, dword [esp + 0x398]
mov esi, dword [esp + 0x39c]
mov ecx, dword [esp + 0x340]
mov edi, dword [esp + 0x344]
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x1ec], edx
mov ebx, dword [esp + 0x338]
mov edx, dword [esp + 0x33c]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], esi
mov eax, dword [esp + 0x3b0]
mov esi, dword [esp + 0x3b4]
mov dword [esp + 0x158], ecx
mov dword [esp + 0x15c], edi
mov dword [esp + 0x160], ebx
mov edi, dword [esp + 0x3c4]
mov ebx, dword [esp + 0x3a8]
mov dword [esp + 0x164], edx
mov dword [esp + 0x238], eax
mov edx, dword [esp + 0x3ac]
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x23c], esi
mov ecx, dword [esp + 0x3c0]
mov esi, dword [esp + 0x3cc]
mov dword [esp + 0x1b4], edi
mov dword [esp + 0x250], ebx
mov dword [esp + 0x254], edx
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], esi
mov dword [esp + 0x1b0], ecx
mov ecx, dword [esp + 0x3d0]
mov edi, dword [esp + 0x3d4]
mov ebx, dword [esp + 0x3b8]
mov edx, dword [esp + 0x3bc]
mov eax, dword [esp + 0x3a0]
mov esi, dword [esp + 0x3a4]
mov dword [esp + 0x248], ecx
mov dword [esp + 0x24c], edi
mov ecx, dword [esp + 0x390]
mov edi, dword [esp + 0x394]
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1d4], edx
mov ebx, dword [esp + 0x3d8]
mov edx, dword [esp + 0x3dc]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], esi
mov dword [esp + 0x1d8], ecx
mov esi, dword [esp + 0x3e4]
mov dword [esp + 0x1dc], edi
mov dword [esp + 0x230], ebx
mov dword [esp + 0x234], edx
mov eax, dword [esp + 0x3e0]
mov ecx, dword [esp + 0x3e8]
mov edi, dword [esp + 0x3ec]
mov ebx, dword [esp + 0x3f0]
mov edx, dword [esp + 0x3f4]
mov dword [esp + 0x1cc], esi
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], edi
mov dword [esp + 0x268], ebx
mov dword [esp + 0x210], edx
mov eax, dword [esp + 0x330]
mov esi, dword [esp + 0x334]
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], esi
mov dword [esp + 0x144], 0x4c0340
nop
lea esi, [esi]
mov ecx, dword [esp + 0x16c]
mov eax, dword [esp + 0x25c]
mov edx, dword [esp + 0x168]
mov ebx, dword [esp + 0x258]
mov esi, dword [esp + 0x1f0]
xor eax, ecx
xor eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x248]
xor eax, dword [esp + 0x254]
mov edi, edx
mov edx, dword [esp + 0x250]
xor eax, dword [esp + 0x24c]
xor edi, ebx
mov ebx, dword [esp + 0x1e8]
xor edi, esi
xor edi, edx
mov edx, dword [esp + 0x160]
xor edi, ecx
mov ecx, dword [esp + 0x240]
mov dword [esp + 0x188], edi
mov dword [esp + 0x18c], eax
mov edi, dword [esp + 0x164]
mov eax, dword [esp + 0x1ec]
mov esi, edx
mov edx, dword [esp + 0x238]
xor esi, ebx
mov ebx, dword [esp + 0x1e0]
xor esi, ecx
mov ecx, dword [esp + 0x1d8]
xor eax, edi
xor eax, dword [esp + 0x244]
xor esi, edx
xor eax, dword [esp + 0x23c]
mov edx, dword [esp + 0x158]
xor eax, dword [esp + 0x234]
mov edi, esi
mov esi, dword [esp + 0x230]
xor edx, ebx
xor edi, esi
mov esi, dword [esp + 0x1d0]
mov dword [esp + 0x128], edi
mov dword [esp + 0x12c], eax
mov edi, edx
mov eax, dword [esp + 0x15c]
xor eax, dword [esp + 0x1e4]
xor edi, ecx
xor eax, dword [esp + 0x1dc]
xor edi, esi
xor eax, dword [esp + 0x1d4]
mov ebx, edi
mov edx, dword [esp + 0x1c8]
mov edi, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x154]
mov esi, dword [esp + 0x1c0]
xor ebx, edx
xor edi, eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x120], ebx
mov ebx, dword [esp + 0x1c4]
mov dword [esp + 0x124], edi
mov edx, eax
mov eax, dword [esp + 0x1b8]
xor edx, esi
xor ebx, ecx
mov ecx, dword [esp + 0x1b0]
mov edi, edx
xor ebx, dword [esp + 0x1bc]
mov edx, dword [esp + 0x1a8]
xor edi, eax
xor ebx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x148]
xor edi, ecx
mov ecx, dword [esp + 0x1a0]
mov esi, edi
mov edi, dword [esp + 0x1ac]
xor esi, edx
mov edx, eax
mov eax, dword [esp + 0x198]
mov dword [esp + 0x118], esi
xor edi, ebx
mov ebx, dword [esp + 0x14c]
xor edx, ecx
mov dword [esp + 0x11c], edi
mov edi, dword [esp + 0x1a4]
mov esi, edx
mov edx, dword [esp + 0x210]
xor esi, eax
mov eax, dword [esp + 0x128]
xor edi, ebx
xor edi, dword [esp + 0x19c]
mov ebx, dword [esp + 0x190]
xor edi, dword [esp + 0x194]
mov ecx, eax
xor esi, ebx
xor esi, dword [esp + 0x268]
xor edx, edi
mov dword [esp + 0x184], edx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x180], esi
shld eax, edx, 1
shld edx, ecx, 1
mov ecx, dword [esp + 0x180]
xor edx, dword [esp + 0x184]
mov esi, ecx
xor esi, eax
mov dword [esp + 0x140], esi
mov ebx, dword [esp + 0x16c]
mov edi, esi
mov eax, dword [esp + 0x168]
mov dword [esp + 0x288], edx
xor edx, ebx
mov ebx, dword [esp + 0x188]
xor edi, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
mov dword [esp + 0x40], edi
mov esi, ebx
mov ebx, dword [esp + 0x11c]
mov edi, dword [esp + 0x128]
mov ecx, eax
shld eax, edx, 1
shld edx, ecx, 1
xor esi, eax
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x1f8], esi
mov esi, dword [esp + 0x18c]
mov eax, ecx
xor esi, edx
mov edx, dword [esp + 0x12c]
shld ecx, ebx, 1
shld ebx, eax, 1
mov eax, edi
xor eax, ecx
xor ebx, edx
mov ecx, dword [esp + 0x180]
mov dword [esp + 0x200], ebx
mov ebx, dword [esp + 0x184]
mov dword [esp + 0x260], eax
mov edx, dword [esp + 0x124]
mov edi, ecx
shld ecx, ebx, 1
shld ebx, edi, 1
mov edi, dword [esp + 0x120]
xor ebx, edx
mov dword [esp + 0x270], ebx
mov eax, edi
mov edi, dword [esp + 0x18c]
xor eax, ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 0x218], eax
mov eax, dword [esp + 0x118]
mov edx, ecx
shld ecx, edi, 1
shld edi, edx, 1
mov edx, dword [esp + 0x11c]
xor ecx, eax
mov eax, dword [esp + 0x1e8]
mov ebx, edi
mov dword [esp + 0x280], ecx
mov ecx, esi
xor ebx, edx
mov edx, dword [esp + 0x1ec]
mov edi, ebx
mov ebx, dword [esp + 0x1f8]
xor ecx, edx
xor ebx, eax
mov dword [esp + 0x104], ecx
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 0x278], edi
mov eax, ebx
shrd ebx, edx, 0x14
shrd edx, eax, 0x14
mov dword [esp + 0x290], ebx
mov ebx, dword [esp + 0x280]
mov dword [esp + 0x294], edx
mov edx, dword [esp + 0x1a4]
xor ebx, ecx
xor edx, edi
mov dword [esp + 0xf8], ebx
mov edi, dword [esp + 0x260]
mov dword [esp + 0xfc], edx
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov ebx, dword [esp + 0x1c8]
mov eax, edx
shld edx, ecx, 0x14
xor edi, ebx
mov dword [esp + 0x228], edx
mov edx, dword [esp + 0x1cc]
shld ecx, eax, 0x14
mov dword [esp + 0xf0], edi
mov edi, dword [esp + 0x200]
mov dword [esp + 0x22c], ecx
mov ecx, edx
mov ebx, dword [esp + 0xf0]
mov eax, dword [esp + 0x198]
xor ecx, edi
mov dword [esp + 0xf4], ecx
mov edx, dword [esp + 0xf4]
mov ecx, ebx
shrd ebx, edx, 3
shrd edx, ecx, 3
mov dword [esp + 0x110], ebx
mov ebx, dword [esp + 0x280]
mov dword [esp + 0x114], edx
mov edx, dword [esp + 0x19c]
xor edx, dword [esp + 0x278]
xor ebx, eax
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov eax, edx
shrd edx, ecx, 0x19
shrd ecx, eax, 0x19
mov dword [esp + 0x38], edx
mov ebx, dword [esp + 0x248]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x288]
xor edx, dword [esp + 0x24c]
xor ebx, ecx
mov dword [esp + 0xe0], ebx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0xe4]
mov ebx, eax
shld eax, edx, 0x12
shld edx, ebx, 0x12
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x260]
mov eax, dword [esp + 0x158]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x15c]
xor ebx, eax
mov eax, edx
mov dword [esp + 0xd8], ebx
xor eax, edi
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov ebx, eax
shrd eax, edx, 2
shrd edx, ebx, 2
mov dword [esp + 0x108], eax
mov ebx, dword [esp + 0x260]
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x1dc]
xor ebx, eax
mov eax, edx
mov dword [esp + 0xd0], ebx
xor eax, edi
mov edi, dword [esp + 0x218]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
mov ebx, eax
shrd eax, edx, 0x15
shrd edx, ebx, 0x15
mov ebx, dword [esp + 0x1b8]
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], edx
mov edx, dword [esp + 0x1bc]
mov eax, ebx
xor eax, edi
mov dword [esp + 0xc8], eax
mov ebx, dword [esp + 0x270]
mov eax, dword [esp + 0xc8]
xor ebx, edx
mov dword [esp + 0xcc], ebx
mov edx, dword [esp + 0xcc]
mov ebx, eax
shld eax, edx, 0x19
shld edx, ebx, 0x19
mov dword [esp + 0x138], eax
mov ebx, dword [esp + 0x280]
mov eax, dword [esp + 0x190]
mov dword [esp + 0x13c], edx
mov edx, dword [esp + 0x194]
xor ebx, eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0xc0], ebx
xor eax, edx
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov ebx, eax
shld eax, edx, 8
shld edx, ebx, 8
mov ebx, dword [esp + 0x1a8]
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], edx
mov eax, dword [esp + 0x1ac]
mov edx, ebx
mov ebx, dword [esp + 0x270]
xor edx, edi
mov dword [esp + 0xb8], edx
xor ebx, eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xbc], ebx
mov edx, dword [esp + 0xbc]
mov ebx, eax
shrd eax, edx, 8
shrd edx, ebx, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x250]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x288]
xor eax, ecx
mov ecx, dword [esp + 0x254]
mov dword [esp + 0xb0], eax
xor ecx, edx
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xb4]
mov eax, ecx
shrd ecx, ebx, 0x17
shrd ebx, eax, 0x17
mov dword [esp + 0x218], ecx
mov ecx, dword [esp + 0x148]
mov eax, dword [esp + 0x280]
mov dword [esp + 0x21c], ebx
mov ebx, dword [esp + 0x14c]
xor ebx, dword [esp + 0x278]
xor eax, ecx
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xac]
mov eax, ecx
shld ecx, ebx, 0x1b
shld ebx, eax, 0x1b
mov dword [esp + 0x288], ecx
mov ecx, dword [esp + 0x280]
mov dword [esp + 0x28c], ebx
xor ecx, dword [esp + 0x268]
mov ebx, dword [esp + 0x278]
xor ebx, dword [esp + 0x210]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xa4], ebx
mov ebx, dword [esp + 0xa4]
mov eax, ecx
shld ecx, ebx, 0xe
shld ebx, eax, 0xe
mov dword [esp + 0x210], ecx
mov ecx, dword [esp + 0x1f8]
xor ecx, dword [esp + 0x230]
mov dword [esp + 0x214], ebx
mov dword [esp + 0x98], ecx
mov ecx, esi
xor esi, dword [esp + 0x234]
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x9c]
mov eax, ebx
shld ebx, esi, 2
shld esi, eax, 2
mov eax, dword [esp + 0x1c0]
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], esi
mov ebx, dword [esp + 0x1c4]
mov esi, eax
xor esi, edi
mov dword [esp + 0x90], esi
mov eax, dword [esp + 0x270]
mov dword [esp + 0x44], ecx
xor eax, ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x94], eax
mov esi, dword [esp + 0x94]
mov eax, ebx
shrd ebx, esi, 9
shrd esi, eax, 9
mov dword [esp + 0x170], ebx
mov ebx, dword [esp + 0x1f8]
mov dword [esp + 0x174], esi
xor ebx, dword [esp + 0x238]
mov esi, dword [esp + 0x23c]
xor esi, ecx
mov dword [esp + 0x88], ebx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x8c], esi
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x140]
xor esi, dword [esp + 0x258]
mov eax, ecx
shrd ecx, ebx, 0x13
shrd ebx, eax, 0x13
mov dword [esp + 0x208], ecx
mov ecx, dword [esp + 0x25c]
mov dword [esp + 0x80], esi
mov dword [esp + 0x20c], ebx
mov ebx, dword [esp + 0x80]
xor ecx, edx
mov dword [esp + 0x84], ecx
mov esi, dword [esp + 0x84]
mov eax, ebx
mov ecx, dword [esp + 0x150]
shrd ebx, esi, 0x1c
shrd esi, eax, 0x1c
mov dword [esp + 0x280], ebx
mov ebx, dword [esp + 0x154]
xor ebx, dword [esp + 0x270]
mov dword [esp + 0x284], esi
mov esi, ecx
xor esi, edi
mov dword [esp + 0x78], esi
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x7c]
mov eax, ecx
shld ecx, ebx, 0x1c
shld ebx, eax, 0x1c
mov dword [esp + 0x278], ecx
mov ecx, dword [esp + 0x1b0]
mov esi, dword [esp + 0x1b4]
mov dword [esp + 0x27c], ebx
mov ebx, dword [esp + 0x270]
xor edi, ecx
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x70]
xor ebx, esi
mov esi, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1d4]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x74]
mov eax, ecx
xor edi, dword [esp + 0x200]
shld ecx, ebx, 0x15
shld ebx, eax, 0x15
mov eax, dword [esp + 0x260]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x6c]
xor eax, esi
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x68]
mov eax, esi
shld esi, edi, 0xf
shld edi, eax, 0xf
mov dword [esp + 0x270], esi
mov esi, dword [esp + 0x1f8]
mov dword [esp + 0x274], edi
xor esi, dword [esp + 0x240]
mov edi, dword [esp + 0x44]
xor edi, dword [esp + 0x244]
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x60]
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x64]
mov eax, esi
shld esi, edi, 0xa
shld edi, eax, 0xa
mov dword [esp + 0x268], esi
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x1e0]
mov dword [esp + 0x26c], edi
mov edi, dword [esp + 0x1e4]
xor eax, esi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x200]
mov esi, dword [esp + 0x58]
xor eax, edi
mov dword [esp + 0x5c], eax
mov edi, dword [esp + 0x5c]
mov eax, esi
shld esi, edi, 6
shld edi, eax, 6
mov dword [esp + 0x200], esi
mov eax, dword [esp + 0x140]
mov esi, dword [esp + 0x1f0]
mov dword [esp + 0x204], edi
mov edi, dword [esp + 0x1f4]
xor eax, esi
xor edx, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], edx
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x1f8]
mov edx, eax
shld eax, esi, 3
shld esi, edx, 3
mov dword [esp + 0x260], eax
mov eax, dword [esp + 0x160]
mov dword [esp + 0x264], esi
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x164]
xor edi, eax
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x48]
xor edx, esi
mov dword [esp + 0x4c], edx
mov edi, dword [esp + 0x4c]
mov esi, eax
shld eax, edi, 1
shld edi, esi, 1
mov esi, dword [esp + 0x224]
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], edi
mov edi, dword [esp + 0x220]
mov eax, dword [esp + 0x290]
not esi
mov edx, edi
mov edi, dword [esp + 0x294]
and esi, ebx
not edx
and edx, ecx
xor edx, eax
xor edi, esi
mov eax, dword [esp + 0x210]
mov esi, ebx
mov dword [esp + 0x160], edx
mov dword [esp + 0x164], edi
mov edx, ecx
not esi
and esi, dword [esp + 0x214]
mov edi, dword [esp + 0x220]
not edx
and edx, eax
mov eax, dword [esp + 0x40]
xor edx, edi
mov edi, dword [esp + 0x210]
mov dword [esp + 0x158], edx
mov edx, dword [esp + 0x224]
not edi
xor edx, esi
mov esi, dword [esp + 0x214]
and edi, eax
mov dword [esp + 0x15c], edx
mov edx, dword [esp + 0x24]
xor edi, ecx
mov dword [esp + 0x150], edi
not esi
and esi, edx
mov ecx, edx
mov edi, edx
xor esi, ebx
mov ebx, eax
not ecx
mov dword [esp + 0x154], esi
mov esi, eax
mov eax, dword [esp + 0x290]
not ebx
and ecx, dword [esp + 0x294]
mov edx, dword [esp + 0x214]
and ebx, eax
mov eax, dword [esp + 0x210]
xor ecx, edx
mov edx, dword [esp + 0x22c]
xor ebx, eax
mov eax, dword [esp + 0x260]
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x148], ebx
mov ebx, dword [esp + 0x228]
not edx
and edx, dword [esp + 0x264]
mov ecx, ebx
mov ebx, dword [esp + 0x278]
not ecx
and ecx, eax
mov eax, dword [esp + 0x208]
xor ecx, ebx
mov ebx, dword [esp + 0x260]
mov dword [esp + 0x258], ecx
mov ecx, dword [esp + 0x27c]
xor ecx, edx
mov edx, ebx
mov ebx, dword [esp + 0x228]
mov dword [esp + 0x25c], ecx
mov ecx, dword [esp + 0x264]
not edx
and edx, eax
xor edx, ebx
not ecx
and ecx, dword [esp + 0x20c]
mov dword [esp + 0x1e8], edx
mov edx, dword [esp + 0x22c]
xor edx, ecx
mov dword [esp + 0x1ec], edx
mov ebx, dword [esp + 0x208]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x20c]
mov edx, dword [esp + 0x114]
not ebx
and ebx, eax
xor ebx, dword [esp + 0x260]
not ecx
and ecx, edx
mov dword [esp + 0x1e0], ebx
mov ebx, dword [esp + 0x264]
xor ebx, ecx
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x278]
mov dword [esp + 0x1e4], ebx
mov ebx, ecx
not ebx
not eax
and eax, dword [esp + 0x27c]
mov ecx, dword [esp + 0x20c]
and ebx, edx
mov edx, dword [esp + 0x208]
xor eax, ecx
mov ecx, dword [esp + 0x228]
xor ebx, edx
mov edx, dword [esp + 0x27c]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c0], ebx
mov ebx, dword [esp + 0x278]
not edx
mov eax, ebx
mov ebx, dword [esp + 0x22c]
not eax
and eax, ecx
mov ecx, dword [esp + 0x110]
and edx, ebx
mov ebx, dword [esp + 0x114]
xor eax, ecx
mov ecx, dword [esp + 0x138]
xor edx, ebx
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x204]
mov dword [esp + 0x1a4], edx
mov edx, dword [esp + 0x200]
mov ebx, dword [esp + 0x13c]
not eax
not edx
and edx, ecx
xor edx, dword [esp + 0x1f8]
and eax, ebx
not ebx
mov dword [esp + 0x1f0], edx
mov edx, dword [esp + 0x1fc]
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x134]
mov dword [esp + 0x1f4], edx
mov edx, ecx
mov ecx, dword [esp + 0x130]
not edx
and eax, ebx
and edx, ecx
xor edx, dword [esp + 0x200]
mov dword [esp + 0x240], edx
mov edx, dword [esp + 0x204]
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x34]
not eax
mov dword [esp + 0x244], edx
mov edx, ecx
mov ecx, dword [esp + 0x30]
not edx
and eax, ebx
xor eax, dword [esp + 0x13c]
and edx, ecx
xor edx, dword [esp + 0x138]
mov dword [esp + 0x1dc], eax
mov eax, ebx
not eax
and eax, dword [esp + 0x1fc]
xor eax, dword [esp + 0x134]
mov dword [esp + 0x1d8], edx
mov edx, ecx
not edx
and edx, dword [esp + 0x1f8]
xor edx, dword [esp + 0x130]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x1f8]
mov dword [esp + 0x1b8], edx
mov edx, dword [esp + 0x1fc]
not eax
and eax, dword [esp + 0x200]
not edx
and edx, dword [esp + 0x204]
xor eax, ecx
mov ecx, dword [esp + 0x268]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x284]
xor edx, ebx
mov dword [esp + 0x19c], edx
mov edx, dword [esp + 0x280]
not eax
and eax, dword [esp + 0x26c]
xor eax, dword [esp + 0x28c]
mov ebx, edx
mov edx, dword [esp + 0x288]
not ebx
and ebx, ecx
mov ecx, dword [esp + 0x26c]
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x268]
xor ebx, edx
mov dword [esp + 0x250], ebx
mov edx, eax
mov eax, ecx
mov ecx, dword [esp + 0x270]
not eax
and eax, dword [esp + 0x274]
not edx
xor eax, dword [esp + 0x284]
mov ebx, edx
mov edx, dword [esp + 0x280]
and ebx, ecx
mov ecx, dword [esp + 0x274]
xor ebx, edx
mov dword [esp + 0x23c], eax
mov eax, dword [esp + 0x270]
mov dword [esp + 0x238], ebx
mov ebx, dword [esp + 0x2c]
mov edx, eax
mov eax, ecx
mov ecx, dword [esp + 0x28]
not edx
not eax
and eax, ebx
and edx, ecx
xor edx, dword [esp + 0x268]
xor eax, dword [esp + 0x26c]
mov dword [esp + 0x1d0], edx
mov edx, ecx
mov dword [esp + 0x1d4], eax
not edx
and edx, dword [esp + 0x288]
mov eax, ebx
xor edx, dword [esp + 0x270]
not eax
and eax, dword [esp + 0x28c]
xor eax, dword [esp + 0x274]
mov dword [esp + 0x1b0], edx
mov edx, dword [esp + 0x288]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x28c]
not edx
and edx, dword [esp + 0x280]
not eax
and eax, dword [esp + 0x284]
xor edx, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x190], edx
mov edx, dword [esp + 0x170]
xor eax, ebx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x174]
mov ebx, dword [esp + 0x3c]
not edx
and edx, ecx
xor edx, dword [esp + 0x108]
not eax
and eax, ebx
mov dword [esp + 0x248], edx
mov edx, ecx
xor eax, dword [esp + 0x10c]
not edx
and edx, dword [esp + 0x218]
xor edx, dword [esp + 0x170]
mov dword [esp + 0x24c], eax
mov eax, ebx
not eax
and eax, dword [esp + 0x21c]
mov dword [esp + 0x230], edx
mov edx, dword [esp + 0x218]
xor eax, dword [esp + 0x174]
not edx
and edx, dword [esp + 0x178]
mov dword [esp + 0x234], eax
mov eax, dword [esp + 0x21c]
xor edx, ecx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x1c8], edx
mov edx, dword [esp + 0x178]
not eax
and eax, dword [esp + 0x17c]
not edx
and edx, ecx
xor edx, dword [esp + 0x218]
xor eax, ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x17c]
mov dword [esp + 0x1a8], edx
mov edx, ecx
mov ecx, dword [esp + 0x170]
not eax
not edx
and eax, ebx
xor eax, dword [esp + 0x21c]
and edx, ecx
mov ecx, dword [esp + 0x178]
xor edx, ecx
mov dword [esp + 0x1ac], eax
mov eax, ebx
mov dword [esp + 0x268], edx
mov ebx, dword [esp + 0x174]
not eax
mov edx, dword [esp + 0x144]
and eax, ebx
mov ebx, dword [esp + 0x17c]
xor esi, dword [edx]
xor edi, dword [edx + 4]
mov edx, dword [esp + 0x290]
xor eax, ebx
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x294]
mov ecx, esi
mov esi, dword [esp + 0x220]
not edx
mov ebx, edi
mov edi, dword [esp + 0x224]
not eax
and edx, esi
add dword [esp + 0x144], 8
xor ecx, edx
and eax, edi
mov edx, 0x4c0400
mov dword [esp + 0x168], ecx
mov ecx, dword [esp + 0x144]
xor ebx, eax
mov dword [esp + 0x16c], ebx
cmp edx, ecx
jne 0x511056
movq xmm1, qword [esp + 0x168]
movq xmm0, qword [esp + 0x158]
movhps xmm1, qword [esp + 0x160]
movq xmm2, qword [esp + 0x148]
movhps xmm0, qword [esp + 0x150]
movhps xmm2, qword [esp + 0x258]
movq xmm3, qword [esp + 0x1e8]
movaps xmmword [esp + 0x330], xmm1
movhps xmm3, qword [esp + 0x1e0]
movaps xmmword [esp + 0x340], xmm0
movaps xmmword [esp + 0x350], xmm2
movaps xmmword [esp + 0x360], xmm3
movq xmm4, qword [esp + 0x1c0]
movq xmm5, qword [esp + 0x1f0]
movhps xmm4, qword [esp + 0x1a0]
movq xmm6, qword [esp + 0x1d8]
movhps xmm5, qword [esp + 0x240]
movq xmm7, qword [esp + 0x198]
movhps xmm6, qword [esp + 0x1b8]
movq xmm1, qword [esp + 0x238]
movhps xmm7, qword [esp + 0x250]
movq xmm0, qword [esp + 0x1b0]
movhps xmm1, qword [esp + 0x1d0]
movq xmm2, qword [esp + 0x248]
movhps xmm0, qword [esp + 0x190]
movhps xmm2, qword [esp + 0x230]
movaps xmmword [esp + 0x370], xmm4
movaps xmmword [esp + 0x380], xmm5
movaps xmmword [esp + 0x390], xmm6
movaps xmmword [esp + 0x3a0], xmm7
movaps xmmword [esp + 0x3b0], xmm1
movaps xmmword [esp + 0x3c0], xmm0
movaps xmmword [esp + 0x3d0], xmm2
mov edi, dword [esp + 0x1c]
sub dword [ebp + 0xc], edi
add dword [ebp + 8], edi
cmp edi, dword [ebp + 0xc]
movq xmm3, qword [esp + 0x1c8]
mov eax, dword [esp + 0x268]
mov esi, dword [esp + 0x210]
movhps xmm3, qword [esp + 0x1a8]
mov dword [esp + 0x3f0], eax
movaps xmmword [esp + 0x3e0], xmm3
mov dword [esp + 0x3f4], esi
jle 0x510b46
lea ebx, [esp + 0x2a0]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [esp], ebx
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
call fcn.00587fb6
mov eax, dword [ebp + 0xc]
mov edi, dword [esp + 0x1c]
lea esi, [eax + 1]
mov byte [esp + eax + 0x2a0], 1
mov dword [esp + 4], 0
add ebx, esi
sub edi, esi
mov dword [esp], ebx
mov dword [esp + 8], edi
call fcn.00587fa6
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
or byte [esp + ebx + 0x2a0], 0x80
test ecx, ecx
jle 0x5123d1
cmp ecx, 1
je 0x512433
shr ecx, 1
movdqa xmm4, xmmword [esp + 0x330]
cmp ecx, 1
pxor xmm4, xmmword [esp + 0x2a0]
movaps xmmword [esp + 0x330], xmm4
je 0x5123a8
cmp ecx, 2
movdqa xmm5, xmmword [esp + 0x340]
pxor xmm5, xmmword [esp + 0x2b0]
movaps xmmword [esp + 0x340], xmm5
je 0x5123a8
cmp ecx, 3
movdqa xmm6, xmmword [esp + 0x350]
pxor xmm6, xmmword [esp + 0x2c0]
movaps xmmword [esp + 0x350], xmm6
je 0x5123a8
cmp ecx, 4
movdqa xmm7, xmmword [esp + 0x360]
pxor xmm7, xmmword [esp + 0x2d0]
movaps xmmword [esp + 0x360], xmm7
je 0x5123a8
cmp ecx, 5
movdqa xmm1, xmmword [esp + 0x370]
pxor xmm1, xmmword [esp + 0x2e0]
movaps xmmword [esp + 0x370], xmm1
je 0x5123a8
cmp ecx, 6
movdqa xmm0, xmmword [esp + 0x380]
pxor xmm0, xmmword [esp + 0x2f0]
movaps xmmword [esp + 0x380], xmm0
je 0x5123a8
cmp ecx, 7
movdqa xmm2, xmmword [esp + 0x390]
pxor xmm2, xmmword [esp + 0x300]
movaps xmmword [esp + 0x390], xmm2
je 0x5123a8
cmp ecx, 8
movdqa xmm3, xmmword [esp + 0x3a0]
pxor xmm3, xmmword [esp + 0x310]
movaps xmmword [esp + 0x3a0], xmm3
je 0x5123a8
cmp ecx, 9
movdqa xmm4, xmmword [esp + 0x3b0]
pxor xmm4, xmmword [esp + 0x320]
movaps xmmword [esp + 0x3b0], xmm4
je 0x5123a8
cmp ecx, 0xa
movdqa xmm5, xmmword [esp + 0x3c0]
pxor xmm5, xmmword [esp + 0x330]
movaps xmmword [esp + 0x3c0], xmm5
je 0x5123a8
cmp ecx, 0xb
movdqa xmm6, xmmword [esp + 0x3d0]
pxor xmm6, xmmword [esp + 0x340]
movaps xmmword [esp + 0x3d0], xmm6
je 0x5123a8
movdqa xmm7, xmmword [esp + 0x3e0]
pxor xmm7, xmmword [esp + 0x350]
movaps xmmword [esp + 0x3e0], xmm7
mov edx, dword [esp + 0x20]
mov eax, edx
and eax, 0xfffffffe
cmp eax, edx
je 0x5123d1
mov esi, dword [esp + eax*8 + 0x2a0]
mov edi, dword [esp + eax*8 + 0x2a4]
xor dword [esp + eax*8 + 0x330], esi
xor dword [esp + eax*8 + 0x334], edi
lea eax, [esp + 0x330]
call fcn.0050cd56
lea ecx, [esp + 0x330]
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp], eax
call fcn.00587fb6
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor eax, eax
jmp 0x510d72
mov dword [esp + 0x20], 0x11
mov dword [esp + 0x10], 0x87
mov dword [esp + 0x1c], 0x88
jmp 0x5108e6
xor eax, eax
jmp 0x5123b5