Function at 0x55dfc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov ebx, ecx
mov eax, dword [ecx + 0xb8]
mov ecx, eax
sub ecx, 3
sete byte [esp + 0x114]
cmp eax, 6
mov esi, 3
cmovb esi, ecx
xor ecx, ecx
cmp eax, 3
cmovae ecx, esi
mov dword [esp + 0x110], ecx
mov eax, dword [ebx + 4]
add eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xdc], edx
mov eax, dword [ebx + 0xbc]
cmp eax, 0xfff
mov ecx, 0xfff
cmovb ecx, eax
mov dword [esp + 0x118], ecx
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x11c], eax
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebx + 0xc4]
test eax, eax
je 0x55e05c
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x150], ecx
movdqu xmm0, xmmword [eax]
movdqu xmmword [esp + 0x140], xmm0
jmp 0x55e074
pxor xmm0, xmm0
movdqa xmmword [esp + 0x140], xmm0
mov dword [esp + 0x150], 0
lea eax, [edx + edi]
mov dword [esp + 0xd8], eax
mov eax, dword [ebx + 0x70]
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0x74]
mov dword [esp + 8], eax
mov dword [esp + 0x15c], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
lea ecx, [esp + 0x140]
xor edx, edx
push edi
call fcn.005855a0
add esp, 4
mov eax, dword [ebx + 0xa0]
mov dword [ebx + 0x98], 0
cmp dword [ebx + 0x7c], 0
mov dword [esp + 0xc], ebx
je 0x55f16a
cmp eax, 2
je 0x55e496
mov eax, dword [ebx + 0x60]
movdqu xmm0, xmmword [eax]
movdqu xmm1, xmmword [eax + 0x10]
movdqu xmm2, xmmword [eax + 0x20]
paddd xmm2, xmm0
movdqu xmm4, xmmword [eax + 0x30]
paddd xmm4, xmm1
movdqu xmm1, xmmword [eax + 0x40]
movdqu xmm5, xmmword [eax + 0x50]
movdqu xmm0, xmmword [eax + 0x60]
paddd xmm0, xmm1
paddd xmm0, xmm2
movdqu xmm3, xmmword [eax + 0x70]
paddd xmm3, xmm5
paddd xmm3, xmm4
movdqu xmm1, xmmword [eax + 0x80]
movdqu xmm2, xmmword [eax + 0x90]
movdqu xmm4, xmmword [eax + 0xa0]
paddd xmm4, xmm1
movdqu xmm5, xmmword [eax + 0xb0]
paddd xmm5, xmm2
movdqu xmm1, xmmword [eax + 0xc0]
paddd xmm1, xmm4
paddd xmm1, xmm0
movdqu xmm2, xmmword [eax + 0xd0]
paddd xmm2, xmm5
paddd xmm2, xmm3
movdqu xmm0, xmmword [eax + 0xe0]
movdqu xmm3, xmmword [eax + 0xf0]
movdqu xmm4, xmmword [eax + 0x100]
paddd xmm4, xmm0
movdqu xmm0, xmmword [eax + 0x110]
paddd xmm0, xmm3
movdqu xmm3, xmmword [eax + 0x120]
paddd xmm3, xmm4
movdqu xmm4, xmmword [eax + 0x130]
paddd xmm4, xmm0
movdqu xmm0, xmmword [eax + 0x140]
paddd xmm0, xmm3
paddd xmm0, xmm1
movdqu xmm3, xmmword [eax + 0x150]
paddd xmm3, xmm4
paddd xmm3, xmm2
movdqu xmm1, xmmword [eax + 0x160]
movdqu xmm2, xmmword [eax + 0x170]
movdqu xmm4, xmmword [eax + 0x180]
paddd xmm4, xmm1
movdqu xmm1, xmmword [eax + 0x190]
paddd xmm1, xmm2
movdqu xmm2, xmmword [eax + 0x1a0]
paddd xmm2, xmm4
movdqu xmm4, xmmword [eax + 0x1b0]
paddd xmm4, xmm1
movdqu xmm5, xmmword [eax + 0x1c0]
paddd xmm5, xmm2
movdqu xmm6, xmmword [eax + 0x1d0]
paddd xmm6, xmm4
movdqu xmm1, xmmword [eax + 0x1e0]
paddd xmm1, xmm5
paddd xmm1, xmm0
movdqu xmm2, xmmword [eax + 0x1f0]
paddd xmm2, xmm6
paddd xmm2, xmm3
movdqu xmm0, xmmword [eax + 0x200]
movdqu xmm3, xmmword [eax + 0x210]
movdqu xmm4, xmmword [eax + 0x220]
paddd xmm4, xmm0
movdqu xmm0, xmmword [eax + 0x230]
paddd xmm0, xmm3
movdqu xmm3, xmmword [eax + 0x240]
paddd xmm3, xmm4
movdqu xmm4, xmmword [eax + 0x250]
paddd xmm4, xmm0
movdqu xmm0, xmmword [eax + 0x260]
paddd xmm0, xmm3
movdqu xmm3, xmmword [eax + 0x270]
paddd xmm3, xmm4
movdqu xmm4, xmmword [eax + 0x280]
paddd xmm4, xmm0
movdqu xmm5, xmmword [eax + 0x290]
paddd xmm5, xmm3
movdqu xmm0, xmmword [eax + 0x2a0]
paddd xmm0, xmm4
paddd xmm0, xmm1
movdqu xmm1, xmmword [eax + 0x2b0]
paddd xmm1, xmm5
paddd xmm1, xmm2
movdqu xmm2, xmmword [eax + 0x2c0]
movdqu xmm3, xmmword [eax + 0x2d0]
movdqu xmm4, xmmword [eax + 0x2e0]
paddd xmm4, xmm2
movdqu xmm2, xmmword [eax + 0x2f0]
paddd xmm2, xmm3
movdqu xmm3, xmmword [eax + 0x300]
paddd xmm3, xmm4
movdqu xmm4, xmmword [eax + 0x310]
paddd xmm4, xmm2
movdqu xmm2, xmmword [eax + 0x320]
paddd xmm2, xmm3
movdqu xmm3, xmmword [eax + 0x330]
paddd xmm3, xmm4
movdqu xmm4, xmmword [eax + 0x340]
paddd xmm4, xmm2
movdqu xmm2, xmmword [eax + 0x350]
paddd xmm2, xmm3
movdqu xmm3, xmmword [eax + 0x360]
paddd xmm3, xmm4
movdqu xmm4, xmmword [eax + 0x370]
paddd xmm4, xmm2
movdqu xmm2, xmmword [eax + 0x380]
paddd xmm2, xmm3
paddd xmm2, xmm0
movdqu xmm0, xmmword [eax + 0x390]
paddd xmm0, xmm4
paddd xmm0, xmm1
movdqu xmm1, xmmword [eax + 0x3a0]
movdqu xmm3, xmmword [eax + 0x3b0]
movdqu xmm4, xmmword [eax + 0x3c0]
paddd xmm4, xmm1
movdqu xmm1, xmmword [eax + 0x3d0]
paddd xmm1, xmm3
movdqu xmm3, xmmword [eax + 0x3e0]
paddd xmm3, xmm4
paddd xmm3, xmm2
movdqu xmm2, xmmword [eax + 0x3f0]
paddd xmm2, xmm1
paddd xmm2, xmm0
paddd xmm2, xmm3
pshufd xmm0, xmm2, 0xee
paddd xmm0, xmm2
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd ecx, xmm1
cmp ecx, 0x2000
jb 0x55e493
shr ecx, 0xc
bsr ecx, ecx
movd xmm2, ecx
pxor xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
movss xmm1, xmm2
pcmpeqd xmm3, xmm3
pxor xmm2, xmm2
nop
movdqu xmm5, xmmword [eax + ecx*4]
movdqu xmm4, xmmword [eax + ecx*4 + 0x10]
psrld xmm5, xmm1
psrld xmm4, xmm1
psubd xmm5, xmm3
psubd xmm4, xmm3
movdqu xmmword [eax + ecx*4], xmm5
movdqu xmmword [eax + ecx*4 + 0x10], xmm4
paddd xmm5, xmm0
paddd xmm4, xmm2
movdqu xmm0, xmmword [eax + ecx*4 + 0x20]
movdqu xmm2, xmmword [eax + ecx*4 + 0x30]
psrld xmm0, xmm1
psrld xmm2, xmm1
psubd xmm0, xmm3
psubd xmm2, xmm3
movdqu xmmword [eax + ecx*4 + 0x20], xmm0
movdqu xmmword [eax + ecx*4 + 0x30], xmm2
paddd xmm0, xmm5
paddd xmm2, xmm4
add ecx, 0x10
cmp ecx, 0x100
jne 0x55e410
paddd xmm2, xmm0
pshufd xmm0, xmm2, 0xee
paddd xmm0, xmm2
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd ecx, xmm1
mov dword [ebx + 0x78], ecx
mov eax, dword [ebx + 0x64]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [esp + 0x30], ecx
add ecx, edx
mov esi, dword [eax + 8]
mov dword [esp + 0x70], esi
add ecx, esi
mov esi, dword [eax + 0xc]
mov dword [esp + 0xb0], esi
add ecx, esi
mov esi, dword [eax + 0x10]
mov dword [esp + 0xe0], esi
add ecx, esi
mov esi, dword [eax + 0x14]
mov dword [esp + 0xc0], esi
add ecx, esi
mov esi, dword [eax + 0x18]
mov dword [esp + 0xf0], esi
add ecx, esi
mov esi, dword [eax + 0x1c]
mov dword [esp + 0x10], esi
add ecx, esi
mov esi, dword [eax + 0x20]
mov dword [esp + 0x18], esi
add ecx, esi
mov esi, dword [eax + 0x24]
mov dword [esp + 0x2c], esi
add ecx, esi
mov esi, dword [eax + 0x28]
mov dword [esp + 0x28], esi
add ecx, esi
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x24], esi
add ecx, esi
mov esi, dword [eax + 0x30]
mov dword [esp + 0x20], esi
add ecx, esi
mov esi, dword [eax + 0x34]
mov dword [esp + 0x6c], esi
add ecx, esi
mov esi, dword [eax + 0x38]
mov dword [esp + 0x9c], esi
add ecx, esi
mov esi, dword [eax + 0x3c]
mov dword [esp + 0x68], esi
add ecx, esi
mov esi, dword [eax + 0x40]
mov dword [esp + 0xa0], esi
add ecx, esi
mov edi, dword [eax + 0x44]
mov dword [esp + 0x88], edi
add ecx, edi
mov esi, dword [eax + 0x48]
mov dword [esp + 0xa8], esi
add ecx, esi
mov esi, dword [eax + 0x4c]
mov dword [esp + 0x98], esi
add ecx, esi
mov esi, dword [eax + 0x50]
mov dword [esp + 0x94], esi
add ecx, esi
mov esi, dword [eax + 0x54]
mov dword [esp + 0x14], esi
add ecx, esi
mov esi, dword [eax + 0x58]
mov dword [esp + 0x44], esi
add ecx, esi
mov esi, dword [eax + 0x5c]
mov dword [esp + 4], esi
add ecx, esi
mov esi, dword [eax + 0x60]
mov dword [esp + 0x60], esi
add ecx, esi
mov esi, dword [eax + 0x64]
mov dword [esp + 0x90], esi
add ecx, esi
mov esi, dword [eax + 0x68]
mov dword [esp + 0x8c], esi
add ecx, esi
mov esi, dword [eax + 0x6c]
mov dword [esp + 0x5c], esi
add ecx, esi
mov esi, dword [eax + 0x70]
mov dword [esp + 0x58], esi
add ecx, esi
mov esi, dword [eax + 0x74]
mov dword [esp + 0x84], esi
add ecx, esi
mov esi, dword [eax + 0x78]
mov dword [esp + 0xac], esi
add ecx, esi
mov esi, dword [eax + 0x7c]
mov dword [esp + 0xa4], esi
add ecx, esi
mov esi, dword [eax + 0x80]
mov dword [esp + 0x12c], esi
add ecx, esi
mov esi, dword [eax + 0x84]
mov dword [esp + 0x10c], esi
add ecx, esi
mov esi, dword [eax + 0x88]
mov dword [esp + 0x124], esi
add ecx, esi
mov esi, dword [eax + 0x8c]
mov dword [esp + 0x128], esi
add ecx, esi
cmp ecx, 0x1000
jb 0x55ea0e
shr ecx, 0xb
bsr ecx, ecx
shr edx, cl
mov esi, dword [esp + 0x30]
shr esi, cl
mov dword [esp + 0x30], esi
mov dword [esp + 0x120], edx
add edx, 1
mov dword [eax], edx
mov ebx, dword [esp + 0x70]
shr ebx, cl
mov dword [esp + 0x70], ebx
lea edx, [esi + 1]
mov dword [eax + 4], edx
lea edx, [ebx + 1]
mov dword [eax + 8], edx
mov edx, dword [esp + 0xb0]
shr edx, cl
mov dword [esp + 0xb0], edx
add edx, 1
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xe0]
shr edx, cl
mov dword [esp + 0xe0], edx
mov ebx, dword [esp + 0xc0]
shr ebx, cl
mov dword [esp + 0xc0], ebx
add edx, 1
mov dword [eax + 0x10], edx
mov esi, dword [esp + 0xf0]
shr esi, cl
mov dword [esp + 0xf0], esi
lea edx, [ebx + 1]
mov dword [eax + 0x14], edx
lea edx, [esi + 1]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x10]
shr edx, cl
mov dword [esp + 0x10], edx
add edx, 1
mov dword [eax + 0x1c], edx
mov edx, dword [esp + 0x18]
shr edx, cl
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x2c]
shr ebx, cl
mov dword [esp + 0x2c], ebx
add edx, 1
mov dword [eax + 0x20], edx
mov esi, dword [esp + 0x28]
shr esi, cl
mov dword [esp + 0x28], esi
lea edx, [ebx + 1]
mov dword [eax + 0x24], edx
lea edx, [esi + 1]
mov dword [eax + 0x28], edx
mov edx, dword [esp + 0x24]
shr edx, cl
mov dword [esp + 0x24], edx
add edx, 1
mov dword [eax + 0x2c], edx
mov esi, dword [esp + 0x20]
shr esi, cl
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0x9c]
mov edi, dword [esp + 0x6c]
shr edi, cl
mov dword [esp + 0x6c], edi
lea edx, [esi + 1]
mov dword [eax + 0x30], edx
shr ebx, cl
mov dword [esp + 0x9c], ebx
lea edx, [edi + 1]
mov dword [eax + 0x34], edx
lea edx, [ebx + 1]
mov dword [eax + 0x38], edx
mov edx, dword [esp + 0x68]
shr edx, cl
mov dword [esp + 0x68], edx
add edx, 1
mov dword [eax + 0x3c], edx
mov edx, dword [esp + 0xa0]
shr edx, cl
mov dword [esp + 0xa0], edx
mov esi, dword [esp + 0x88]
shr esi, cl
mov dword [esp + 0x88], esi
add edx, 1
mov dword [eax + 0x40], edx
mov edi, dword [esp + 0xa8]
shr edi, cl
mov dword [esp + 0xa8], edi
lea edx, [esi + 1]
mov dword [eax + 0x44], edx
lea edx, [edi + 1]
mov dword [eax + 0x48], edx
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
shr edx, cl
mov dword [esp + 0x98], edx
add edx, 1
mov dword [eax + 0x4c], edx
shr esi, cl
mov dword [esp + 0x94], esi
mov edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x14]
shr ebx, cl
mov dword [esp + 0x14], ebx
lea edx, [esi + 1]
mov dword [eax + 0x50], edx
shr edi, cl
mov dword [esp + 0x44], edi
lea edx, [ebx + 1]
mov dword [eax + 0x54], edx
lea edx, [edi + 1]
mov dword [eax + 0x58], edx
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 4]
shr edx, cl
mov dword [esp + 4], edx
add edx, 1
mov dword [eax + 0x5c], edx
shr esi, cl
mov dword [esp + 0x60], esi
mov edi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
shr ebx, cl
mov dword [esp + 0x90], ebx
lea edx, [esi + 1]
mov dword [eax + 0x60], edx
shr edi, cl
mov dword [esp + 0x8c], edi
lea edx, [ebx + 1]
mov dword [eax + 0x64], edx
lea edx, [edi + 1]
mov dword [eax + 0x68], edx
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
shr edx, cl
mov dword [esp + 0x5c], edx
add edx, 1
mov dword [eax + 0x6c], edx
shr esi, cl
mov dword [esp + 0x58], esi
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0x84]
shr ebx, cl
mov dword [esp + 0x84], ebx
lea edx, [esi + 1]
mov dword [eax + 0x70], edx
shr edi, cl
mov dword [esp + 0xac], edi
lea edx, [ebx + 1]
mov dword [eax + 0x74], edx
lea edx, [edi + 1]
mov dword [eax + 0x78], edx
mov esi, dword [esp + 0x12c]
mov edx, dword [esp + 0xa4]
shr edx, cl
mov dword [esp + 0xa4], edx
add edx, 1
mov dword [eax + 0x7c], edx
shr esi, cl
mov ebx, dword [esp + 0x124]
mov edi, dword [esp + 0x10c]
shr edi, cl
lea edx, [esi + 1]
mov dword [eax + 0x80], edx
shr ebx, cl
lea edx, [edi + 1]
mov dword [eax + 0x84], edx
lea edx, [ebx + 1]
mov dword [eax + 0x88], edx
mov edx, dword [esp + 0x128]
shr edx, cl
lea ecx, [edx + 1]
mov dword [eax + 0x8c], ecx
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax + 2]
mov ecx, dword [esp + 0x70]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xb0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xe0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xc0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xf0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x6c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x9c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x68]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xa0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x88]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xa8]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x98]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x94]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 4]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x60]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x90]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x8c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x58]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x84]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xac]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xa4]
lea eax, [ecx + eax + 1]
add eax, esi
add eax, 1
add eax, edi
add eax, 1
add eax, ebx
add eax, 1
lea ecx, [edx + eax]
add ecx, 1
mov edi, dword [esp + 0xc]
mov dword [edi + 0x7c], ecx
mov eax, dword [edi + 0x68]
movdqu xmm0, xmmword [eax + 0x50]
movdqu xmm1, xmmword [eax + 0x70]
movdqu xmm2, xmmword [eax + 0x30]
paddd xmm2, xmm1
movdqu xmm1, xmmword [eax + 0x40]
movdqu xmm3, xmmword [eax]
paddd xmm3, xmm1
movdqu xmm1, xmmword [eax + 0x10]
paddd xmm1, xmm0
paddd xmm1, xmm2
movdqu xmm0, xmmword [eax + 0x60]
movdqu xmm2, xmmword [eax + 0x20]
paddd xmm2, xmm0
paddd xmm2, xmm3
paddd xmm2, xmm1
movdqu xmm0, xmmword [eax + 0xa0]
movdqu xmm1, xmmword [eax + 0x80]
paddd xmm1, xmm0
movdqu xmm0, xmmword [eax + 0xb0]
movdqu xmm3, xmmword [eax + 0x90]
paddd xmm3, xmm0
paddd xmm3, xmm1
movdqu xmm0, xmmword [eax + 0xc0]
pshufd xmm1, xmm2, 0xee
paddd xmm1, xmm2
pshufd xmm2, xmm1, 0x55
paddd xmm2, xmm1
movd ecx, xmm2
pshufd xmm1, xmm3, 0xee
paddd xmm1, xmm3
pshufd xmm2, xmm1, 0x55
paddd xmm2, xmm1
movd edx, xmm2
add edx, ecx
pshufd xmm1, xmm0, 0xee
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x55
paddd xmm0, xmm1
movd ecx, xmm0
add ecx, edx
add ecx, dword [eax + 0xd0]
cmp ecx, 0x1000
jb 0x55ecab
shr ecx, 0xb
bsr ecx, ecx
movd xmm2, ecx
movdqu xmm1, xmmword [eax]
movdqu xmm0, xmmword [eax + 0x10]
psrld xmm1, xmm2
pcmpeqd xmm3, xmm3
psubd xmm1, xmm3
movdqa xmmword [esp + 0x30], xmm1
movdqu xmmword [eax], xmm1
psrld xmm0, xmm2
psubd xmm0, xmm3
movdqa xmmword [esp + 0x70], xmm0
movdqu xmmword [eax + 0x10], xmm0
movdqu xmm0, xmmword [eax + 0x20]
psrld xmm0, xmm2
psubd xmm0, xmm3
movdqa xmmword [esp + 0xb0], xmm0
movdqu xmmword [eax + 0x20], xmm0
movdqu xmm5, xmmword [eax + 0x30]
psrld xmm5, xmm2
psubd xmm5, xmm3
movdqu xmmword [eax + 0x30], xmm5
movdqu xmm0, xmmword [eax + 0x40]
psrld xmm0, xmm2
psubd xmm0, xmm3
movdqa xmmword [esp + 0xe0], xmm0
movdqu xmmword [eax + 0x40], xmm0
movdqu xmm6, xmmword [eax + 0x50]
psrld xmm6, xmm2
psubd xmm6, xmm3
movdqu xmmword [eax + 0x50], xmm6
movdqu xmm0, xmmword [eax + 0x60]
psrld xmm0, xmm2
psubd xmm0, xmm3
movdqa xmmword [esp + 0xc0], xmm0
movdqu xmmword [eax + 0x60], xmm0
movdqu xmm0, xmmword [eax + 0x70]
psrld xmm0, xmm2
psubd xmm0, xmm3
movdqa xmmword [esp + 0xf0], xmm0
movdqu xmmword [eax + 0x70], xmm0
movdqu xmm1, xmmword [eax + 0x80]
psrld xmm1, xmm2
psubd xmm1, xmm3
pcmpeqd xmm0, xmm0
movdqu xmmword [eax + 0x80], xmm1
movdqu xmm7, xmmword [eax + 0x90]
psrld xmm7, xmm2
psubd xmm7, xmm0
movdqu xmmword [eax + 0x90], xmm7
movdqu xmm4, xmmword [eax + 0xa0]
psrld xmm4, xmm2
psubd xmm4, xmm0
movdqu xmmword [eax + 0xa0], xmm4
movdqu xmm3, xmmword [eax + 0xb0]
psrld xmm3, xmm2
psubd xmm3, xmm0
movdqu xmmword [eax + 0xb0], xmm3
movdqu xmm0, xmmword [eax + 0xc0]
psrld xmm0, xmm2
psubd xmm0, xmmword [0x6883a0]
movdqa xmm2, xmmword [esp + 0x70]
paddd xmm2, xmmword [esp + 0x30]
paddd xmm5, xmmword [esp + 0xb0]
paddd xmm5, xmm2
paddd xmm6, xmmword [esp + 0xe0]
paddd xmm6, xmmword [esp + 0xc0]
paddd xmm6, xmm5
paddd xmm1, xmmword [esp + 0xf0]
paddd xmm1, xmm7
paddd xmm1, xmm4
paddd xmm1, xmm6
movdqu xmmword [eax + 0xc0], xmm0
paddd xmm0, xmm3
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0x55
paddd xmm0, xmm1
mov edx, dword [eax + 0xd0]
shr edx, cl
movd ecx, xmm0
lea esi, [edx + 1]
mov dword [eax + 0xd0], esi
add ecx, edx
add ecx, 1
mov dword [edi + 0x80], ecx
mov eax, dword [edi + 0x6c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x30], edx
add edx, ecx
mov esi, dword [eax + 8]
mov dword [esp + 0x70], esi
add edx, esi
mov esi, dword [eax + 0xc]
mov dword [esp + 0xb0], esi
add edx, esi
mov esi, dword [eax + 0x10]
mov dword [esp + 0xe0], esi
add edx, esi
mov esi, dword [eax + 0x14]
mov dword [esp + 0xc0], esi
add edx, esi
mov esi, dword [eax + 0x18]
mov dword [esp + 0xf0], esi
add edx, esi
mov esi, dword [eax + 0x1c]
mov dword [esp + 0x10], esi
add edx, esi
mov esi, dword [eax + 0x20]
mov dword [esp + 0x18], esi
add edx, esi
mov esi, dword [eax + 0x24]
mov dword [esp + 0x2c], esi
add edx, esi
mov esi, dword [eax + 0x28]
mov dword [esp + 0x28], esi
add edx, esi
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x24], esi
add edx, esi
mov esi, dword [eax + 0x30]
mov dword [esp + 0x84], esi
add edx, esi
mov edi, dword [eax + 0x34]
mov dword [esp + 0x20], edi
add edx, edi
mov edi, dword [eax + 0x38]
mov dword [esp + 0x6c], edi
add edx, edi
mov edi, dword [eax + 0x3c]
mov dword [esp + 0x9c], edi
add edx, edi
mov edi, dword [eax + 0x40]
mov dword [esp + 0x68], edi
add edx, edi
mov edi, dword [eax + 0x44]
mov dword [esp + 0x88], edi
add edx, edi
mov edi, dword [eax + 0x48]
mov dword [esp + 0x94], edi
add edx, edi
mov ebx, dword [eax + 0x4c]
mov dword [esp + 0x98], ebx
add edx, ebx
mov esi, dword [eax + 0x50]
mov dword [esp + 0x58], esi
add edx, esi
mov edi, dword [eax + 0x54]
mov dword [esp + 0x14], edi
add edx, edi
mov edi, dword [eax + 0x58]
mov dword [esp + 0x44], edi
add edx, edi
mov edi, dword [eax + 0x5c]
mov dword [esp + 4], edi
add edx, edi
mov edi, dword [eax + 0x60]
mov dword [esp + 0x60], edi
add edx, edi
mov edi, dword [eax + 0x64]
mov dword [esp + 0x90], edi
add edx, edi
mov edi, dword [eax + 0x68]
mov dword [esp + 0x5c], edi
add edx, edi
mov edi, dword [eax + 0x6c]
mov dword [esp + 0xa4], edi
add edx, edi
mov edi, dword [eax + 0x70]
mov dword [esp + 0x8c], edi
add edx, edi
mov edi, dword [eax + 0x74]
mov dword [esp + 0xac], edi
add edx, edi
mov edi, dword [eax + 0x78]
mov dword [esp + 0xa8], edi
add edx, edi
mov edi, dword [eax + 0x7c]
mov dword [esp + 0xa0], edi
add edx, edi
cmp edx, 0x1000
jb 0x55f15e
shr edx, 0xb
mov edi, ecx
bsr ecx, edx
shr edi, cl
mov dword [esp + 0x10c], edi
mov esi, dword [esp + 0x30]
shr esi, cl
mov dword [esp + 0x30], esi
lea edx, [edi + 1]
mov dword [eax], edx
mov edi, dword [esp + 0x70]
shr edi, cl
mov dword [esp + 0x70], edi
lea edx, [esi + 1]
mov dword [eax + 4], edx
lea edx, [edi + 1]
mov dword [eax + 8], edx
mov edx, dword [esp + 0xb0]
shr edx, cl
mov dword [esp + 0xb0], edx
add edx, 1
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xe0]
shr edx, cl
mov dword [esp + 0xe0], edx
mov edi, dword [esp + 0xc0]
shr edi, cl
mov dword [esp + 0xc0], edi
add edx, 1
mov dword [eax + 0x10], edx
mov esi, dword [esp + 0xf0]
shr esi, cl
mov dword [esp + 0xf0], esi
lea edx, [edi + 1]
mov dword [eax + 0x14], edx
lea edx, [esi + 1]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x10]
shr edx, cl
mov dword [esp + 0x10], edx
add edx, 1
mov dword [eax + 0x1c], edx
mov edx, dword [esp + 0x18]
shr edx, cl
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x2c]
shr edi, cl
mov dword [esp + 0x2c], edi
add edx, 1
mov dword [eax + 0x20], edx
mov esi, dword [esp + 0x28]
shr esi, cl
mov dword [esp + 0x28], esi
lea edx, [edi + 1]
mov dword [eax + 0x24], edx
lea edx, [esi + 1]
mov dword [eax + 0x28], edx
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x24]
shr edx, cl
mov dword [esp + 0x24], edx
add edx, 1
mov dword [eax + 0x2c], edx
shr esi, cl
mov dword [esp + 0x84], esi
mov edi, dword [esp + 0x20]
shr edi, cl
mov dword [esp + 0x20], edi
lea edx, [esi + 1]
mov dword [eax + 0x30], edx
mov ebx, dword [esp + 0x9c]
mov esi, dword [esp + 0x6c]
shr esi, cl
mov dword [esp + 0x6c], esi
lea edx, [edi + 1]
mov dword [eax + 0x34], edx
lea edx, [esi + 1]
mov dword [eax + 0x38], edx
shr ebx, cl
mov dword [esp + 0x9c], ebx
lea edx, [ebx + 1]
mov dword [eax + 0x3c], edx
mov edx, dword [esp + 0x68]
shr edx, cl
mov dword [esp + 0x68], edx
mov edi, dword [esp + 0x88]
shr edi, cl
mov dword [esp + 0x88], edi
add edx, 1
mov dword [eax + 0x40], edx
mov esi, dword [esp + 0x94]
shr esi, cl
mov dword [esp + 0x94], esi
lea edx, [edi + 1]
mov dword [eax + 0x44], edx
lea edx, [esi + 1]
mov dword [eax + 0x48], edx
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x98]
shr edx, cl
mov dword [esp + 0x98], edx
add edx, 1
mov dword [eax + 0x4c], edx
mov ebx, dword [esp + 0x58]
shr ebx, cl
mov dword [esp + 0x58], ebx
mov edi, dword [esp + 0x14]
shr edi, cl
mov dword [esp + 0x14], edi
lea edx, [ebx + 1]
mov dword [eax + 0x50], edx
shr esi, cl
mov dword [esp + 0x44], esi
lea edx, [edi + 1]
mov dword [eax + 0x54], edx
lea edx, [esi + 1]
mov dword [eax + 0x58], edx
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 4]
shr edx, cl
mov dword [esp + 4], edx
add edx, 1
mov dword [eax + 0x5c], edx
mov edx, dword [esp + 0x60]
shr edx, cl
mov dword [esp + 0x60], edx
mov edi, dword [esp + 0x90]
shr edi, cl
mov dword [esp + 0x90], edi
add edx, 1
mov dword [eax + 0x60], edx
shr esi, cl
mov dword [esp + 0x5c], esi
lea edx, [edi + 1]
mov dword [eax + 0x64], edx
lea edx, [esi + 1]
mov dword [eax + 0x68], edx
mov esi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
shr ebx, cl
lea edx, [ebx + 1]
mov dword [eax + 0x6c], edx
mov edx, dword [esp + 0x8c]
shr edx, cl
mov dword [esp + 0x8c], edx
mov edi, dword [esp + 0xac]
shr edi, cl
add edx, 1
mov dword [eax + 0x70], edx
shr esi, cl
lea edx, [edi + 1]
mov dword [eax + 0x74], edx
lea edx, [esi + 1]
mov dword [eax + 0x78], edx
mov edx, dword [esp + 0xa0]
shr edx, cl
lea ecx, [edx + 1]
mov dword [eax + 0x7c], ecx
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax + 2]
mov ecx, dword [esp + 0x70]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xb0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xe0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xc0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0xf0]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x24]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x84]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x6c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x9c]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x68]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x88]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x94]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x98]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x58]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x44]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 4]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x60]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x90]
lea eax, [ecx + eax + 1]
mov ecx, dword [esp + 0x5c]
lea eax, [ecx + eax + 1]
lea eax, [ebx + eax + 1]
mov ecx, dword [esp + 0x8c]
add eax, ecx
add eax, 1
add eax, edi
add eax, 1
add eax, esi
add eax, 1
add edx, eax
add edx, 1
mov ebx, dword [esp + 0xc]
mov edi, dword [ebp + 0x10]
jmp 0x55f555
cmp edi, 0x400
ja 0x55f17c
mov dword [ebx + 0x98], 1
mov esi, dword [ebx + 0x9c]
cmp dword [esi + 0x404], 2
jne 0x55f39d
mov dword [ebx + 0x98], 0
mov dword [esp + 0xe0], eax
cmp eax, 2
je 0x55f20e
mov dword [ebx + 0x78], 0
mov eax, dword [ebx + 0x60]
mov dword [esp + 0x30], eax
xor edx, edx
nop word cs:[eax + eax]
nop
mov ch, byte [esi + edx*4 + 4]
mov cl, 0xb
sub cl, ch
mov edi, 1
shl edi, cl
test ch, ch
mov eax, 1
cmove edi, eax
mov eax, dword [esp + 0x30]
mov dword [eax + edx*4], edi
add dword [ebx + 0x78], edi
mov ch, byte [esi + edx*4 + 8]
mov cl, 0xb
sub cl, ch
mov edi, 1
shl edi, cl
test ch, ch
mov ecx, 1
cmove edi, ecx
mov dword [eax + edx*4 + 4], edi
add dword [ebx + 0x78], edi
add edx, 2
cmp edx, 0x100
jne 0x55f1c0
movzx eax, word [esi + 0xcb8]
mov ecx, eax
add cl, 0xff
mov edi, 1
mov edx, 1
shl edx, cl
test ax, ax
cmove edx, edi
mov dword [ebx + 0x7c], 0
mov eax, dword [ebx + 0x64]
mov dword [esp + 0x30], eax
mov dword [esp + 0xb0], esi
lea eax, [esi + edx*4]
add eax, 0xcc8
mov dword [esp + 0x70], eax
xor eax, eax
mov edi, dword [esp + 0x30]
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, dword [esp + 0x70]
mov esi, dword [ebx + eax*8 - 8]
mov ecx, 0xffff
add esi, ecx
mov edx, esi
shr edx, 0x10
mov cl, 0xa
sub cl, dl
mov edx, 1
shl edx, cl
cmp esi, 0x10000
mov ecx, 1
cmovb edx, ecx
mov dword [edi + eax*4], edx
mov ecx, dword [esp + 0xc]
add dword [ecx + 0x7c], edx
mov edx, dword [ebx + eax*8]
mov ecx, 0xffff
add edx, ecx
mov ebx, edx
shr ebx, 0x10
mov cl, 0xa
sub cl, bl
mov ebx, dword [esp + 0xc]
mov esi, 1
shl esi, cl
cmp edx, 0x10000
mov ecx, 1
cmovb esi, ecx
mov dword [edi + eax*4 + 4], esi
add dword [ebx + 0x7c], esi
add eax, 2
cmp eax, 0x24
jne 0x55f260
mov esi, dword [esp + 0xb0]
movzx eax, word [esi + 0x70c]
mov ecx, eax
add cl, 0xff
mov edi, 1
mov edx, 1
shl edx, cl
test ax, ax
cmove edx, edi
mov dword [ebx + 0x80], 0
mov eax, dword [ebx + 0x68]
mov dword [esp + 0x30], eax
lea edi, [esi + edx*4]
add edi, 0x714
mov edx, 1
nop word cs:[eax + eax]
mov esi, dword [edi + edx*8 - 8]
mov eax, 0xffff
add esi, eax
mov eax, esi
shr eax, 0x10
mov cl, 0xa
sub cl, al
mov eax, 1
shl eax, cl
cmp esi, 0x10000
mov ecx, 1
cmovb eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx + edx*4 - 4], eax
add dword [ebx + 0x80], eax
cmp edx, 0x35
je 0x560bfe
mov eax, dword [edi + edx*8]
mov ecx, 0xffff
add eax, ecx
mov ebx, eax
shr ebx, 0x10
mov cl, 0xa
sub cl, bl
mov ebx, dword [esp + 0xc]
mov esi, 1
shl esi, cl
cmp eax, 0x10000
mov eax, 1
cmovb esi, eax
mov eax, dword [esp + 0x30]
mov dword [eax + edx*4], esi
add dword [ebx + 0x80], esi
add edx, 2
jmp 0x55f320
cmp eax, 2
je 0x55f478
mov esi, dword [ebx + 0x60]
push 0x400
push 0
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
test edi, edi
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0xd8]
jle 0x55f3de
nop word [eax + eax]
movzx ecx, byte [eax]
add eax, 1
add dword [esi + ecx*4], 1
cmp eax, edx
jb 0x55f3d0
mov eax, dword [ebx + 0x60]
pxor xmm0, xmm0
xor ecx, ecx
pcmpeqd xmm2, xmm2
pxor xmm1, xmm1
nop
movdqu xmm4, xmmword [eax + ecx*4]
movdqu xmm3, xmmword [eax + ecx*4 + 0x10]
psrld xmm4, 8
psrld xmm3, 8
psubd xmm4, xmm2
psubd xmm3, xmm2
movdqu xmmword [eax + ecx*4], xmm4
movdqu xmmword [eax + ecx*4 + 0x10], xmm3
paddd xmm4, xmm0
paddd xmm3, xmm1
movdqu xmm0, xmmword [eax + ecx*4 + 0x20]
movdqu xmm1, xmmword [eax + ecx*4 + 0x30]
psrld xmm0, 8
psrld xmm1, 8
psubd xmm0, xmm2
psubd xmm1, xmm2
movdqu xmmword [eax + ecx*4 + 0x20], xmm0
movdqu xmmword [eax + ecx*4 + 0x30], xmm1
paddd xmm0, xmm4
paddd xmm1, xmm3
add ecx, 0x10
cmp ecx, 0x100
jne 0x55f3f0
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd dword [ebx + 0x78], xmm1
push 0x90
push 0x68ae18
push dword [ebx + 0x64]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [ebx + 0x7c], 0x28
mov eax, dword [ebx + 0x68]
movaps xmm0, xmmword [0x688390]
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm0
movups xmmword [eax + 0x40], xmm0
movups xmmword [eax + 0x50], xmm0
movups xmmword [eax + 0x60], xmm0
movups xmmword [eax + 0x70], xmm0
movups xmmword [eax + 0x80], xmm0
movups xmmword [eax + 0x90], xmm0
movups xmmword [eax + 0xa0], xmm0
movups xmmword [eax + 0xb0], xmm0
movups xmmword [eax + 0xc0], xmm0
mov dword [eax + 0xd0], 1
mov dword [ebx + 0x80], 0x35
mov eax, dword [ebx + 0x6c]
movups xmm0, xmmword [0x68af18]
movups xmmword [eax + 0x70], xmm0
movups xmm0, xmmword [0x68af08]
movups xmmword [eax + 0x60], xmm0
movups xmm0, xmmword [0x68aef8]
movups xmmword [eax + 0x50], xmm0
movups xmm0, xmmword [0x68aee8]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [0x68aed8]
movups xmmword [eax + 0x30], xmm0
movups xmm0, xmmword [0x68aec8]
movups xmmword [eax + 0x20], xmm0
movups xmm0, xmmword [0x68aeb8]
movups xmmword [eax + 0x10], xmm0
movdqu xmm0, xmmword [0x68aea8]
movdqu xmmword [eax], xmm0
mov edx, 0x35
mov dword [ebx + 0x84], edx
mov ecx, dword [ebx + 0xa0]
mov eax, dword [ebp + 0xc]
add eax, edi
add eax, 0xfffffff8
mov dword [esp + 0x58], eax
cmp ecx, 2
je 0x55f58b
mov eax, dword [ebx + 0x78]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
mov dword [ebx + 0x88], eax
mov eax, dword [ebx + 0x7c]
add eax, 1
bsr ecx, eax
mov edi, ecx
shl edi, 8
shl eax, 8
mov esi, dword [ebx + 0x80]
shr eax, cl
add eax, edi
add esi, 1
bsr ecx, esi
mov edi, ecx
shl edi, 8
shl esi, 8
shr esi, cl
add esi, edi
add edx, 1
bsr ecx, edx
mov edi, ecx
shl edi, 8
shl edx, 8
shr edx, cl
add edx, edi
mov dword [ebx + 0x8c], eax
mov dword [ebx + 0x90], esi
mov dword [ebx + 0x94], edx
xor eax, eax
mov ecx, dword [ebp + 0xc]
cmp dword [esp + 0x1c], ecx
sete al
add eax, ecx
cmp eax, dword [esp + 0x58]
jae 0x560bed
mov dword [esp + 4], eax
mov esi, dword [ebp + 0x14]
shl esi, 4
xor eax, eax
mov dl, byte [esp + 0x114]
mov al, dl
mov edx, 4
sub edx, eax
mov eax, dword [esp + 0x110]
mov eax, dword [esi + eax*4 + 0x68ade8]
mov dword [esp + 0xa4], eax
lea eax, [edx - 1]
mov esi, eax
and esi, 3
and eax, 0xfffffffc
neg eax
mov dword [esp + 0xa0], eax
lea eax, [esi + esi*8]
lea eax, [eax + eax*2]
mov dword [esp + 0xa8], esi
add eax, esi
mov dword [esp + 0x114], eax
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0xd8]
lea eax, [esi - 0x20]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x44], edx
lea eax, [edx - 2]
mov dword [esp + 0x110], eax
mov eax, dword [esp + 8]
lea edx, [eax + 0x70]
mov dword [esp + 0x68], edx
lea edx, [eax + 0xc]
mov dword [esp + 0x84], edx
add eax, 0x1c
mov dword [esp + 0x88], eax
mov dword [esp + 0x14], ecx
mov ecx, edi
mov edi, dword [esp + 0x64]
jmp 0x55f717
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebx + 0x80]
add eax, 1
bsr ecx, eax
mov esi, ecx
shl esi, 8
shl eax, 8
shr eax, cl
add eax, esi
add edx, 1
bsr ecx, edx
mov esi, ecx
shl esi, 8
shl edx, 8
shr edx, cl
add edx, esi
mov esi, dword [ebx + 0x84]
add esi, 1
bsr ecx, esi
mov edi, ecx
shl edi, 8
shl esi, 8
shr esi, cl
add esi, edi
mov dword [ebx + 0x8c], eax
mov dword [ebx + 0x90], edx
mov dword [ebx + 0x94], esi
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 4]
mov dword [esp + 4], eax
cmp eax, dword [esp + 0x58]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0x64]
jae 0x560be9
xor eax, eax
mov ebx, dword [esp + 4]
mov edx, ebx
sub edx, dword [esp + 0x14]
mov dword [esp + 0xb0], edx
sete al
push dword [esp + 0x44]
push eax
push ecx
push esi
push ebx
lea eax, [esp + 0x130]
push eax
push dword [esp + 0x24]
push edi
call dword [esp + 0xc4]
add esp, 0x20
mov dword [esp + 0x48], eax
mov eax, ebx
sub eax, dword [ebp + 0xc]
sub esi, ebx
lea ecx, [esp + 0x140]
mov edx, edi
push esi
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00585760
add esp, 0xc
mov esi, dword [esp + 0x48]
test esi, esi
je 0x55f810
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov edi, dword [esp + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x18], eax
mov dword [edi + 8], 0
mov ecx, dword [esp + 0xb0]
mov dword [edi + 0xc], ecx
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x98]
mov dword [esp + 0x20], eax
cmp eax, 1
mov eax, ecx
mov dword [esp + 0x24], esi
jne 0x55f820
lea edx, [eax + 1]
bsr ecx, edx
mov eax, ecx
shl eax, 8
shl edx, 8
shr edx, cl
add edx, eax
mov dword [edi], edx
mov eax, dword [esp + 0x64]
mov eax, dword [eax + esi*8 - 4]
mov dword [esp + 0x70], pe_nt_image_headers32
mov dword [esp + 0x30], eax
cmp eax, dword [esp + 0x118]
mov ebx, dword [esp + 0xa0]
jbe 0x55f8eb
add esi, 0xffffffff
jmp 0x55f8c1
mov eax, dword [esp + 4]
add eax, 1
mov ecx, dword [ebp + 8]
jmp 0x55f6fe
cmp eax, 0x20000
jne 0x55f854
mov esi, dword [edx + 0x64]
mov edi, dword [esi + 0x8c]
add edi, 1
bsr ecx, edi
shl edi, 8
shr edi, cl
mov edx, dword [edx + 0x8c]
mov dword [esp + 0x70], edx
sub edx, edi
shl ecx, 8
sub edx, ecx
add edx, 0x1100
jmp 0x55f896
cmp eax, 0x40
jb 0x55f864
bsr ecx, eax
xor ecx, 0xffffffe0
add ecx, 0x33
jmp 0x55f86b
movzx ecx, byte [eax + 0x689a02]
movzx edi, byte [ecx + 0x6893bc]
mov esi, dword [edx + 0x64]
mov edx, dword [edx + 0x8c]
mov ebx, dword [esi + ecx*4]
add ebx, 1
bsr ecx, ebx
shl ebx, 8
shr ebx, cl
sub edi, ecx
mov dword [esp + 0x70], edx
sub edx, ebx
shl edi, 8
add edx, edi
mov edi, dword [esp + 8]
mov dword [edi], edx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx + eax*8 - 4]
mov dword [esp + 0x30], ecx
cmp ecx, dword [esp + 0x118]
mov ebx, dword [esp + 0xa0]
jbe 0x55f8cf
add eax, 0xffffffff
mov esi, eax
mov eax, dword [esp + 0x64]
mov eax, dword [eax + esi*8]
xor ebx, ebx
jmp 0x5604b0
mov esi, dword [esi]
add esi, 1
bsr ecx, esi
shl esi, 8
shr esi, cl
shl ecx, 8
mov edi, dword [esp + 0x70]
sub edi, esi
sub edi, ecx
mov dword [esp + 0x70], edi
mov ecx, 1
cmp dword [esp + 0x110], 3
jb 0x55f93c
mov ecx, 1
mov esi, dword [esp + 0x68]
nop word cs:[eax + eax]
nop dword [eax]
mov dword [esi - 0x54], 0x40000000
mov dword [esi - 0x38], 0x40000000
mov dword [esi - 0x1c], 0x40000000
mov dword [esi], 0x40000000
add esi, 0x70
lea edi, [ebx + ecx]
add edi, 4
add ecx, 4
cmp edi, 1
jne 0x55f910
cmp dword [esp + 0xa8], 0
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x114]
je 0x55f96e
lea esi, [ecx + ecx*8]
lea esi, [esi + esi*2]
add esi, ecx
add esi, edi
xor ecx, ecx
nop dword [eax]
mov dword [esi + ecx], 0x40000000
add ecx, 0x1c
cmp ebx, ecx
jne 0x55f960
mov eax, dword [esp + 0x24]
cmp eax, 2
mov ecx, 1
cmovb eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x70]
lea eax, [ecx + edx + 0x33]
mov dword [esp + 0x6c], eax
lea eax, [ecx + edx]
add eax, 0x1000
mov dword [esp + 0x2c], eax
xor ecx, ecx
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0xb0]
jmp 0x55f9c5
mov ecx, dword [esp + 0x28]
add ecx, 1
cmp ecx, dword [esp + 0x24]
mov edi, dword [esp + 8]
je 0x55fb40
mov eax, dword [esp + 0x64]
mov edx, dword [eax + ecx*8 + 4]
cmp ebx, edx
mov dword [esp + 0x28], ecx
ja 0x55f9b0
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x1c], eax
bsr eax, eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x20], 1
mov dword [esp + 0x70], edx
jne 0x55fa50
lea eax, [ebx + ebx*8]
lea eax, [eax + eax*2]
add eax, ebx
add eax, dword [esp + 0x84]
mov edi, ebx
shl edi, 8
add edi, 0xfffffe00
nop dword [eax + eax]
lea ecx, [ebx - 2]
bsr ecx, ecx
mov edx, edi
shr edx, cl
add edx, dword [esp + 0x2c]
add ecx, dword [esp + 0x30]
shl ecx, 8
add ecx, edx
mov dword [eax - 4], ebx
mov edx, dword [esp + 0x1c]
mov dword [eax - 8], edx
mov dword [eax], esi
mov dword [eax - 0xc], ecx
add ebx, 1
add eax, 0x1c
add edi, 0x100
cmp ebx, dword [esp + 0x70]
jbe 0x55fa10
jmp 0x55f9b0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x68]
mov dword [esp + 0xf0], ecx
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x94]
add ecx, dword [esp + 0x6c]
add ecx, dword [eax + 0x90]
mov dword [esp + 0x18], ecx
lea eax, [ebx + ebx*8]
lea edi, [eax + eax*2]
add edi, ebx
add edi, dword [esp + 0x84]
mov edx, dword [esp + 0x30]
jmp 0x55fb05
movzx ecx, byte [ebx + 0x689a3f]
mov dword [esp + 0xc0], ecx
mov eax, dword [esp + 0xf0]
mov eax, dword [eax + ecx*4]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
add edx, eax
mov eax, dword [esp + 0x18]
sub eax, edx
mov esi, dword [esp + 0xe0]
add esi, ecx
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [ecx + 0x6892f4]
mov edx, dword [esp + 0x30]
add ecx, edx
sub ecx, esi
shl ecx, 8
add ecx, eax
mov dword [edi - 4], ebx
mov eax, dword [esp + 0x1c]
mov dword [edi - 8], eax
mov esi, dword [esp + 0xb0]
mov dword [edi], esi
mov dword [edi - 0xc], ecx
add ebx, 1
add edi, 0x1c
cmp ebx, dword [esp + 0x70]
ja 0x55f9b0
lea esi, [ebx - 3]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + edx*4]
add edx, 1
bsr ecx, edx
shl edx, 8
mov dword [esp + 0xe0], ecx
shr edx, cl
cmp esi, 0x80
jb 0x55fa90
bsr ecx, esi
xor ecx, 0xffffffe0
add ecx, 0x44
jmp 0x55fa97
add ebx, 0xffffffff
je 0x56043a
mov edx, 1
mov dword [esp + 0x60], 0
jmp 0x55fb74
mov edi, dword [esp + 8]
add edx, 1
add dword [esp + 0x60], 1
cmp edx, ebx
ja 0x560450
lea ecx, [edx - 1]
lea eax, [ecx + ecx*8]
lea esi, [eax + eax*2]
lea eax, [edx + esi]
add eax, 0xffffffff
cmp dword [edi + eax + 8], 0
mov dword [esp + 0x30], 1
jne 0x55fba0
lea eax, [esi + ecx]
mov eax, dword [edi + eax + 0xc]
add eax, 1
mov dword [esp + 0x30], eax
mov eax, dword [esp + 4]
add eax, edx
mov dword [esp + 0x1c], eax
add esi, ecx
mov dword [esp + 0xb0], esi
mov esi, dword [edi + esi]
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x98]
cmp dword [ecx + 0xa0], 2
mov dword [esp + 0xc0], edx
jne 0x55fc60
add esi, 0x800
cmp eax, 1
mov edi, dword [esp + 0x30]
je 0x55fc73
cmp edi, 0x20000
jne 0x55fdbe
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x64]
mov dword [esp + 0x70], eax
mov eax, dword [eax + 0x8c]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
mov edi, dword [edx + 0x8c]
add esi, edi
sub esi, eax
mov eax, dword [esp + 0x70]
shl ecx, 8
sub esi, ecx
add esi, 0x1100
mov ecx, 0x1ffff
bsr ecx, ecx
xor ecx, 0xffffffe0
add ecx, 0x33
movzx edx, byte [ecx + 0x6893bc]
mov eax, dword [eax + ecx*4]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
sub edi, eax
sub edx, ecx
shl edx, 8
add edx, edi
jmp 0x55fc98
cmp eax, 1
jne 0x55fd70
add esi, 0x600
mov edi, dword [esp + 0x30]
lea eax, [edi + 1]
bsr ecx, eax
mov edx, ecx
shl edx, 8
shl eax, 8
shr eax, cl
add eax, edx
add esi, eax
bsr ecx, edi
mov eax, ecx
shl eax, 8
mov edx, edi
shl edx, 8
shr edx, cl
add edx, eax
sub esi, edx
mov dword [esp + 0x70], esi
mov edx, dword [esp + 0xc0]
lea eax, [edx + edx*8]
lea edi, [eax + eax*2]
add edi, edx
mov ecx, dword [esp + 8]
mov esi, dword [ecx + edi]
lea eax, [ecx + edi]
add eax, 8
mov dword [esp + 0xe0], eax
mov dword [esp + 0xf0], esi
cmp dword [esp + 0x70], esi
mov esi, dword [esp + 0x70]
jle 0x55fd40
mov eax, dword [esp + 0xe0]
mov eax, dword [eax]
test eax, eax
je 0x55fdd2
mov ecx, edx
sub ecx, eax
lea eax, [ecx + ecx*8]
lea edx, [eax + eax*2]
add edx, ecx
mov ecx, dword [esp + 8]
mov eax, dword [ecx + edi + 4]
mov esi, dword [ecx + edi + 0xc]
mov dword [esp + 0x30], esi
mov esi, dword [ecx + edx + 0x18]
mov dword [esp + 0x50], esi
movsd xmm0, qword [ecx + edx + 0x10]
movsd qword [esp + 0x48], xmm0
cmp eax, 4
jb 0x55fe08
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
add eax, 0xfffffffd
mov ecx, eax
jmp 0x55fee0
mov eax, dword [esp + 0xe0]
mov dword [eax], 0
mov dword [ecx + edi + 4], 0
mov eax, dword [esp + 0x30]
mov dword [ecx + edi + 0xc], eax
lea eax, [ecx + edi]
mov dword [eax], esi
mov dword [esp + 0xf0], esi
jmp 0x55fdd6
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x60]
mov edx, dword [ecx + 0x88]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [ecx - 1]
mov eax, dword [eax + ecx*4]
add eax, 1
bsr ecx, eax
mov edi, ecx
shl edi, 8
shl eax, 8
shr eax, cl
add eax, edi
lea ecx, [edx - 0x100]
sub edx, eax
cmp eax, ecx
mov eax, pe_nt_image_headers32
cmova edx, eax
add esi, edx
mov edi, dword [esp + 0x30]
cmp edi, 0x20000
je 0x55fbf3
cmp edi, 0x40
mov dword [esp + 0x30], edi
jb 0x55fe35
bsr eax, edi
xor eax, 0xffffffe0
add eax, 0x33
jmp 0x55fe3c
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0xb0]
mov eax, dword [ecx + esi + 0x18]
mov dword [ecx + edi + 0x18], eax
movq xmm0, qword [ecx + esi + 0x10]
movq qword [ecx + edi + 0x10], xmm0
xor esi, esi
mov cl, 1
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x58]
ja 0x55fb60
jmp 0x55ff18
cmp dword [esp + 0x30], 1
adc eax, 0
add eax, 0xffffffff
mov edx, dword [esp + 0xc0]
je 0x55feeb
cmp eax, 3
jne 0x55fec0
mov edx, dword [esp + 0x48]
lea ecx, [edx - 1]
jmp 0x55fec8
movzx eax, byte [edi + 0x689a02]
movzx edx, byte [eax + 0x6893bc]
mov edi, dword [esp + 0xc]
mov ecx, dword [edi + 0x64]
mov dword [esp + 0x70], ecx
mov eax, dword [ecx + eax*4]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
sub edx, ecx
mov edi, dword [edi + 0x8c]
add esi, edi
sub esi, eax
shl edx, 8
add esi, edx
mov eax, dword [esp + 0x30]
lea ecx, [eax - 1]
cmp ecx, 0x20000
jne 0x55fea7
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x8c]
add eax, 1
bsr ecx, eax
mov edx, ecx
shl eax, 8
shr eax, cl
shl edx, 8
sub edi, eax
sub edi, edx
add edi, 0x1100
mov edx, edi
jmp 0x55fc98
mov eax, dword [esp + 0x70]
cmp ecx, 0x40
jae 0x55fc2d
movzx ecx, byte [ecx + 0x689a02]
jmp 0x55fc36
mov ecx, dword [esp + eax*4 + 0x48]
mov edx, dword [esp + 0x48]
cmp eax, 2
lea eax, [esp + 0x50]
lea esi, [esp + 0x4c]
cmovae eax, esi
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 8]
mov dword [ecx + edi + 0x18], eax
movq xmm0, qword [esp + 0x48]
movq qword [ecx + edi + 0x10], xmm0
mov esi, 1
xor ecx, ecx
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x58]
ja 0x55fb60
cmp edx, ebx
je 0x56043e
mov dword [esp + 0xb0], 0
test cl, cl
je 0x55ff3e
mov eax, dword [esp + 8]
mov eax, dword [eax + edi + 0xc]
mov dword [esp + 0xb0], eax
mov dword [esp + 0x20], pe_nt_image_headers32
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x98], 1
je 0x55ff7c
mov ecx, dword [eax + 0x64]
mov edx, dword [ecx]
add edx, 1
bsr ecx, edx
shl edx, 8
shr edx, cl
mov dword [esp + 0x30], esi
mov esi, dword [eax + 0x8c]
shl ecx, 8
sub esi, edx
sub esi, ecx
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 8]
mov dword [esp + 0x70], edi
add ecx, edi
add ecx, 0x10
push dword [esp + 0x44]
push esi
push ecx
push dword [esp + 0xe4]
mov esi, dword [esp + 0x2c]
push esi
lea ecx, [esp + 0x130]
push ecx
push eax
mov edi, dword [esp + 0x80]
push edi
call dword [esp + 0xc4]
add esp, 0x20
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xd8]
sub eax, esi
sub esi, dword [ebp + 0xc]
lea ecx, [esp + 0x140]
mov edx, edi
push eax
push esi
lea eax, [esp + 0x50]
push eax
call fcn.00585760
add esp, 0xc
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x56042a
mov eax, dword [esp + 0x64]
mov esi, dword [eax + ecx*8 - 4]
cmp esi, dword [esp + 0x118]
mov edx, dword [esp + 0xc0]
ja 0x560b59
lea eax, [esi + edx]
cmp eax, 0xfff
ja 0x560b59
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0xf0]
lea esi, [eax + 0x33]
mov dword [esp + 0x8c], esi
add eax, 0x1000
mov dword [esp + 0x20], eax
xor esi, esi
mov edi, dword [esp + 8]
mov dword [esp + 0x90], ecx
jmp 0x560067
mov esi, dword [esp + 0x94]
add esi, 1
cmp esi, dword [esp + 0x90]
je 0x55fb64
mov ecx, dword [esp + 0x44]
test esi, esi
mov eax, dword [esp + 0x64]
je 0x56007a
mov ecx, dword [eax + esi*8 - 4]
add ecx, 1
mov eax, dword [eax + esi*8 + 4]
mov dword [esp + 0x30], eax
cmp eax, ecx
mov dword [esp + 0x94], esi
jb 0x560050
mov eax, dword [esp + 0x64]
mov eax, dword [eax + esi*8]
mov dword [esp + 0xf0], eax
bsr eax, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x98], 1
mov dword [esp + 0xe0], ecx
jne 0x560220
mov ecx, dword [esp + 0x30]
lea eax, [edx + ecx]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x28], eax
mov eax, edx
add al, cl
mov byte [esp + 0x10], al
mov dword [esp + 0x1c], 0
jmp 0x56013e
lea eax, [esi + esi*8]
lea eax, [eax + eax*2]
add eax, esi
mov edx, dword [esp + 0x30]
mov dword [edi + eax + 8], edx
mov edx, dword [esp + 0xf0]
mov dword [edi + eax + 4], edx
mov edx, dword [esp + 0xb0]
mov dword [edi + eax + 0xc], edx
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0x30]
add ecx, 0xffffffff
add dword [esp + 0x1c], 1
add byte [esp + 0x10], 3
cmp ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xc0]
jb 0x560050
lea eax, [ecx - 2]
mov esi, ecx
bsr ecx, eax
shl eax, 8
shr eax, cl
add eax, dword [esp + 0x20]
add ecx, dword [esp + 0x70]
shl ecx, 8
add ecx, eax
mov dword [esp + 0x30], esi
add esi, edx
cmp esi, ebx
jbe 0x560200
mov eax, dword [esp + 0x1c]
add eax, ebx
mov edx, dword [esp + 0x2c]
sub edx, eax
mov edi, dword [esp + 0x28]
sub edi, eax
mov dword [esp + 0x18], edi
test dl, 3
je 0x5601b2
lea eax, [ebx + ebx*8]
lea edx, [eax + eax*2]
add edx, ebx
add edx, dword [esp + 0x88]
mov al, byte [esp + 0x10]
sub al, bl
movzx eax, al
and eax, 3
neg eax
xor edi, edi
mov dword [edx], 0x40000000
add edi, 0xffffffff
add edx, 0x1c
cmp eax, edi
jne 0x5601a0
sub ebx, edi
mov edi, dword [esp + 8]
cmp dword [esp + 0x18], 3
jb 0x5600f0
lea eax, [ebx + ebx*8]
lea edx, [eax + eax*2]
add edx, ebx
add edx, dword [esp + 0x68]
nop dword [eax]
mov dword [edx - 0x54], 0x40000000
mov dword [edx - 0x38], 0x40000000
mov dword [edx - 0x1c], 0x40000000
add ebx, 4
mov dword [edx], 0x40000000
add edx, 0x70
cmp ebx, esi
jb 0x5601d0
jmp 0x5600f0
lea eax, [esi + esi*8]
lea eax, [eax + eax*2]
add eax, esi
cmp ecx, dword [edi + eax]
jl 0x5600f0
jmp 0x560119
mov ecx, dword [eax + 0x68]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x6c]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0x94]
add ecx, dword [esp + 0x8c]
add ecx, dword [eax + 0x90]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x30]
lea eax, [edx + ecx]
mov dword [esp + 0x9c], eax
mov eax, edx
add al, cl
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x10], 0
jmp 0x5602c7
lea eax, [esi + esi*8]
lea eax, [eax + eax*2]
add eax, esi
mov esi, dword [esp + 0x30]
mov dword [edi + eax + 8], esi
mov esi, dword [esp + 0xf0]
mov dword [edi + eax + 4], esi
mov dword [edi + eax + 0xc], edx
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0x30]
add ecx, 0xffffffff
add dword [esp + 0x10], 1
add byte [esp + 0x18], 3
cmp ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xc0]
jb 0x560050
lea eax, [ecx + edx]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], ecx
lea edx, [ecx - 3]
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
mov esi, dword [ecx + eax*4]
add esi, 1
bsr eax, esi
shl esi, 8
mov ecx, eax
shr esi, cl
cmp edx, 0x80
jb 0x560300
bsr edx, edx
xor edx, 0xffffffe0
add edx, 0x44
jmp 0x560307
movzx edx, byte [edx + 0x689a42]
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + edx*4]
add edi, 1
bsr ecx, edi
shl edi, 8
shr edi, cl
add esi, edi
mov edi, dword [esp + 0x24]
sub edi, esi
add eax, ecx
movzx ecx, byte [edx + 0x6892f4]
add ecx, dword [esp + 0x70]
sub ecx, eax
shl ecx, 8
add ecx, edi
mov esi, dword [esp + 0x1c]
cmp esi, ebx
jbe 0x5603b0
mov eax, dword [esp + 0x10]
add eax, ebx
mov edx, dword [esp + 0x9c]
sub edx, eax
mov edi, dword [esp + 0x98]
sub edi, eax
mov dword [esp + 0x6c], edi
test dl, 3
je 0x5603d1
lea eax, [ebx + ebx*8]
lea edx, [eax + eax*2]
add edx, ebx
add edx, dword [esp + 0x88]
mov al, byte [esp + 0x18]
sub al, bl
movzx esi, al
and esi, 3
neg esi
xor eax, eax
nop dword [eax]
mov dword [edx], 0x40000000
add eax, 0xffffffff
add edx, 0x1c
cmp esi, eax
jne 0x560380
sub ebx, eax
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x6c], 3
mov edx, dword [esp + 0xb0]
jb 0x560280
jmp 0x5603e7
lea eax, [esi + esi*8]
lea eax, [eax + eax*2]
add eax, esi
mov edi, dword [esp + 8]
cmp ecx, dword [edi + eax]
mov edx, dword [esp + 0xb0]
jl 0x560280
jmp 0x5602a2
mov edi, dword [esp + 8]
cmp dword [esp + 0x6c], 3
mov edx, dword [esp + 0xb0]
jb 0x560280
lea eax, [ebx + ebx*8]
lea eax, [eax + eax*2]
add eax, ebx
add eax, dword [esp + 0x68]
nop word cs:[eax + eax]
nop dword [eax]
mov dword [eax - 0x54], 0x40000000
mov dword [eax - 0x38], 0x40000000
mov dword [eax - 0x1c], 0x40000000
add ebx, 4
mov dword [eax], 0x40000000
add eax, 0x70
cmp ebx, esi
jb 0x560400
jmp 0x560280
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc0]
jmp 0x55fb64
xor ebx, ebx
jmp 0x560450
mov ebx, edx
mov edi, dword [esp + 8]
nop word cs:[eax + eax]
nop
lea eax, [ebx + ebx*8]
lea edx, [eax + eax*2]
add edx, ebx
mov eax, dword [edi + edx]
mov dword [esp + 0xac], eax
mov eax, dword [edi + edx + 4]
mov dword [esp + 0x70], eax
mov ecx, dword [edi + edx + 8]
mov eax, dword [edi + edx + 0xc]
mov esi, dword [edi + edx + 0x18]
mov dword [esp + 0x138], esi
movq xmm0, qword [edi + edx + 0x10]
lea edx, [eax + ecx]
sub ebx, edx
movq qword [esp + 0x130], xmm0
mov edx, 0
cmovb ebx, edx
mov dword [esp + 0x30], ecx
test ecx, ecx
mov dword [esp + 0xb0], eax
je 0x560bbc
mov eax, dword [esp + 0x70]
lea edx, [ebx + ebx*8]
lea edx, [edx + edx*2]
add edx, ebx
mov esi, dword [edi + edx + 0x18]
mov dword [esp + 0x50], esi
movsd xmm0, qword [edi + edx + 0x10]
movsd qword [esp + 0x48], xmm0
cmp eax, 4
jb 0x5604f0
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x50], esi
mov dword [esp + 0x4c], edx
lea esi, [eax - 3]
jmp 0x560534
cmp dword [esp + 0xb0], 1
mov edx, eax
adc edx, 0
add edx, 0xffffffff
je 0x560538
cmp edx, 3
jne 0x560510
mov ecx, dword [esp + 0x48]
lea esi, [ecx - 1]
jmp 0x560518
mov esi, dword [esp + edx*4 + 0x48]
mov ecx, dword [esp + 0x48]
cmp edx, 2
lea edx, [esp + 0x50]
lea edi, [esp + 0x4c]
cmovae edx, edi
mov edx, dword [edx]
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 8]
mov dword [esp + 0x48], esi
mov edx, dword [esp + 0x50]
mov esi, dword [ebp + 8]
mov dword [esi + 8], edx
movsd xmm0, qword [esp + 0x48]
movsd qword [esi], xmm0
lea ecx, [ebx + 1]
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ebx
add edx, 1
mov esi, dword [esp + 0xac]
mov dword [edi + edx], esi
mov dword [edi + edx + 4], eax
mov eax, dword [esp + 0x30]
mov dword [edi + edx + 8], eax
mov eax, dword [esp + 0xb0]
mov dword [edi + edx + 0xc], eax
movq xmm0, qword [esp + 0x130]
movq qword [edi + edx + 0x10], xmm0
mov eax, dword [esp + 0x138]
mov dword [edi + edx + 0x18], eax
test ebx, ebx
mov dword [esp + 0xe0], ecx
je 0x560630
lea eax, [ebx + ebx*8]
lea eax, [eax + eax*2]
add eax, ebx
add eax, edi
mov edx, ecx
lea edx, [ebx + ebx*8]
lea edx, [edx + edx*2]
add edx, ebx
mov esi, dword [edi + edx + 0xc]
add esi, dword [edi + edx + 8]
movdqu xmm0, xmmword [edi + edx]
movdqu xmm1, xmmword [edi + edx + 0xc]
add ecx, 0xffffffff
movdqu xmmword [eax + 0xc], xmm1
movdqu xmmword [eax], xmm0
add eax, 0xffffffe4
sub ebx, esi
mov edx, 0
cmovb ebx, edx
ja 0x5605b0
mov edx, dword [esp + 0xe0]
cmp ecx, edx
jbe 0x560635
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 4]
mov dword [esp + 4], eax
cmp dword [ebx + 0xa0], 2
je 0x55f6a0
mov eax, dword [ebx + 0x78]
add eax, 1
bsr ecx, eax
shl eax, 8
shr eax, cl
shl ecx, 8
add eax, ecx
mov dword [ebx + 0x88], eax
jmp 0x55f6a0
mov ecx, 1
mov ebx, dword [esp + 0xc]
jmp 0x56066a
mov word [eax + 6], bx
add eax, 8
mov dword [edx + 4], eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0xe0]
add ecx, 1
cmp ecx, edx
ja 0x5605f9
lea eax, [ecx + ecx*8]
lea eax, [eax + eax*2]
add eax, ecx
mov edx, dword [edi + eax + 0xc]
mov esi, dword [edi + eax + 8]
mov dword [esp + 0x30], esi
test esi, esi
je 0x560750
mov dword [esp + 4], edx
mov esi, dword [edi + eax + 4]
cmp dword [ebx + 0xa0], 2
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x70], esi
je 0x560734
cmp dword [esp + 4], 0
je 0x56071f
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x60]
mov edx, dword [esp + 4]
lea edi, [edx - 1]
and edx, 3
xor esi, esi
cmp edi, 3
mov ecx, dword [esp + 0x14]
jb 0x5606fa
mov edi, dword [esp + 4]
and edi, 0xfffffffc
xor esi, esi
nop
movzx ebx, byte [ecx + esi]
add dword [eax + ebx*4], 2
movzx ebx, byte [ecx + esi + 1]
add dword [eax + ebx*4], 2
movzx ebx, byte [ecx + esi + 2]
add dword [eax + ebx*4], 2
movzx ebx, byte [ecx + esi + 3]
add dword [eax + ebx*4], 2
add esi, 4
cmp edi, esi
jne 0x5606d0
test edx, edx
je 0x56071f
add esi, dword [esp + 0x14]
xor edi, edi
nop word cs:[eax + eax]
nop
movzx ebx, byte [esi + edi]
add dword [eax + ebx*4], 2
add edi, 1
cmp edx, edi
jne 0x560710
mov eax, dword [esp + 4]
add eax, eax
mov ebx, dword [esp + 0xc]
add dword [ebx + 0x78], eax
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 4]
cmp eax, 0x40
jb 0x560770
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x33
jmp 0x560777
add edx, dword [esp + 0x14]
mov eax, edx
mov edx, dword [esp + 0xe0]
add ecx, 1
cmp ecx, edx
jbe 0x56066a
jmp 0x5605f9
movzx eax, byte [eax + 0x689a02]
mov edx, dword [ebx + 0x64]
add dword [edx + eax*4], 1
add dword [ebx + 0x7c], 1
bsr eax, esi
mov edx, dword [ebx + 0x6c]
add dword [edx + eax*4], 1
add dword [ebx + 0x84], 1
mov eax, dword [esp + 0x30]
add eax, 0xfffffffd
cmp eax, 0x80
mov dword [esp + 0xb0], eax
jb 0x5607c0
bsr eax, eax
xor eax, 0xffffffe0
add eax, 0x44
jmp 0x5607c7
movzx eax, byte [eax + 0x689a42]
mov edx, dword [ebx + 0x68]
add dword [edx + eax*4], 1
add dword [ebx + 0x80], 1
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax]
mov esi, dword [esp + 0x5c]
cmp edx, esi
jbe 0x560810
mov edi, edx
mov eax, dword [esp + 0xdc]
mov eax, dword [eax + 0xc]
sub esi, ecx
mov ebx, ecx
jae 0x56087b
mov edx, eax
mov ecx, edi
cmp ebx, ecx
jb 0x5608cd
jmp 0x560980
mov edx, dword [esp + 0xdc]
mov esi, eax
mov eax, dword [edx + 0xc]
movdqu xmm0, xmmword [ecx]
movdqu xmmword [eax], xmm0
mov eax, dword [edx + 0xc]
cmp esi, 0x10
jbe 0x5609b6
movdqu xmm0, xmmword [ecx + 0x10]
movdqu xmmword [eax + 0x10], xmm0
cmp esi, 0x21
jl 0x560980
mov edx, dword [esp + 4]
add edx, eax
add eax, 0x20
xor esi, esi
nop
mov ecx, dword [esp + 0x14]
movups xmm0, xmmword [ecx + esi + 0x20]
movups xmmword [eax + esi], xmm0
movdqu xmm0, xmmword [ecx + esi + 0x30]
movdqu xmmword [eax + esi + 0x10], xmm0
lea edi, [eax + esi]
add edi, 0x20
add esi, 0x20
cmp edi, edx
jb 0x560850
jmp 0x560980
lea edx, [eax + esi]
movdqu xmm0, xmmword [ebx]
movdqu xmmword [eax], xmm0
cmp esi, 0x11
mov ecx, edi
jl 0x5608c1
mov esi, 0x10
nop word cs:[eax + eax]
nop dword [eax]
movups xmm0, xmmword [ebx + esi]
movups xmmword [eax + esi], xmm0
movdqu xmm0, xmmword [ebx + esi + 0x10]
movdqu xmmword [eax + esi + 0x10], xmm0
lea edi, [eax + esi]
add edi, 0x20
add esi, 0x20
cmp edi, edx
jb 0x5608a0
mov ebx, dword [esp + 0x5c]
cmp ebx, ecx
jae 0x560980
mov eax, ecx
sub eax, ebx
cmp eax, 8
jb 0x5608ec
cmp edx, ecx
jae 0x560a0c
mov esi, eax
add eax, edx
cmp ebx, eax
mov eax, esi
jae 0x560a0c
mov eax, edx
mov esi, ebx
mov edi, ecx
sub edi, esi
lea edx, [edi - 1]
and edi, 7
je 0x560910
nop dword [eax]
movzx ebx, byte [esi]
add esi, 1
mov byte [eax], bl
add eax, 1
add edi, 0xffffffff
jne 0x560900
cmp edx, 7
jb 0x560980
xor edx, edx
nop word [eax + eax]
movzx ebx, byte [esi + edx]
mov byte [eax + edx], bl
movzx ebx, byte [esi + edx + 1]
mov byte [eax + edx + 1], bl
movzx ebx, byte [esi + edx + 2]
mov byte [eax + edx + 2], bl
movzx ebx, byte [esi + edx + 3]
mov byte [eax + edx + 3], bl
movzx ebx, byte [esi + edx + 4]
mov byte [eax + edx + 4], bl
movzx ebx, byte [esi + edx + 5]
mov byte [eax + edx + 5], bl
movzx ebx, byte [esi + edx + 6]
mov byte [eax + edx + 6], bl
movzx ebx, byte [esi + edx + 7]
mov byte [eax + edx + 7], bl
lea edi, [esi + edx]
add edi, 8
add edx, 8
cmp edi, ecx
jne 0x560920
nop word cs:[eax + eax]
nop dword [eax]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 4]
add dword [edx + 0xc], esi
cmp esi, 0x10000
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x30]
jb 0x5609bf
mov dword [edx + 0x24], 1
mov eax, dword [edx + 4]
sub eax, dword [edx]
sar eax, 3
mov dword [edx + 0x28], eax
mov esi, dword [esp + 4]
jmp 0x5609bf
add eax, esi
mov dword [edx + 0xc], eax
mov ecx, dword [esp + 0x30]
add ecx, esi
mov eax, dword [edx + 4]
mov word [eax + 4], si
mov esi, dword [esp + 0x70]
mov dword [eax], esi
mov ebx, dword [esp + 0xb0]
cmp ebx, 0x10000
jb 0x560640
mov dword [edx + 0x24], 2
mov edx, eax
mov esi, dword [esp + 0xdc]
sub edx, dword [esi]
sar edx, 3
mov esi, dword [esp + 0xdc]
mov dword [esi + 0x28], edx
mov edx, dword [esp + 0xdc]
jmp 0x560640
xor edi, edi
cmp eax, 0x20
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
jb 0x560b0d
mov edi, eax
and edi, 0xffffffe0
lea ecx, [edi - 0x20]
mov esi, ecx
shr esi, 5
add esi, 1
mov eax, esi
and eax, 3
mov dword [esp + 0xc0], eax
xor eax, eax
cmp ecx, 0x60
jb 0x560aaa
and esi, 0xfffffffc
xor eax, eax
nop word [eax + eax]
movups xmm0, xmmword [ebx + eax]
movups xmm1, xmmword [ebx + eax + 0x10]
movups xmmword [edx + eax], xmm0
movups xmmword [edx + eax + 0x10], xmm1
movups xmm0, xmmword [ebx + eax + 0x20]
movups xmm1, xmmword [ebx + eax + 0x30]
movups xmmword [edx + eax + 0x20], xmm0
movups xmmword [edx + eax + 0x30], xmm1
movups xmm0, xmmword [ebx + eax + 0x40]
movups xmm1, xmmword [ebx + eax + 0x50]
movups xmmword [edx + eax + 0x40], xmm0
movups xmmword [edx + eax + 0x50], xmm1
movdqu xmm0, xmmword [ebx + eax + 0x60]
movdqu xmm1, xmmword [ebx + eax + 0x70]
movdqu xmmword [edx + eax + 0x60], xmm0
movdqu xmmword [edx + eax + 0x70], xmm1
sub eax, 0xffffff80
add esi, 0xfffffffc
jne 0x560a50
cmp dword [esp + 0xc0], 0
je 0x560af9
lea esi, [ebx + eax]
add esi, 0x10
mov dword [esp + 0xf0], esi
add eax, edx
add eax, 0x10
shl dword [esp + 0xc0], 5
xor esi, esi
mov ecx, dword [esp + 0xf0]
movdqu xmm0, xmmword [ecx + esi - 0x10]
movdqu xmm1, xmmword [ecx + esi]
movdqu xmmword [eax + esi - 0x10], xmm0
movdqu xmmword [eax + esi], xmm1
add esi, 0x20
cmp dword [esp + 0xc0], esi
jne 0x560ad0
mov eax, dword [esp + 0x10]
cmp eax, edi
mov ecx, dword [esp + 0x18]
je 0x560980
test al, 0x18
je 0x560b50
mov esi, eax
and esi, 0xfffffff8
lea eax, [edx + esi]
mov dword [esp + 0xc0], esi
add esi, ebx
nop
movq xmm0, qword [ebx + edi]
movq qword [edx + edi], xmm0
add edi, 8
cmp dword [esp + 0xc0], edi
jne 0x560b20
mov ecx, dword [esp + 0xc0]
cmp dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x18]
jne 0x5608f0
jmp 0x560980
add ebx, edi
add edx, edi
jmp 0x5608ec
mov dword [esp + 0x30], esi
xor edx, edx
mov eax, dword [esp + 0xe0]
cmp dword [eax], 0
jne 0x560b77
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x70]
mov edx, dword [eax + edx + 0xc]
mov eax, dword [esp + 0x64]
mov eax, dword [eax + ecx*8 - 8]
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0xc0]
sub ebx, edx
cmp ebx, 0x1001
mov edx, 0
cmovae ebx, edx
mov edi, dword [esp + 8]
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
test ecx, ecx
mov dword [esp + 0xb0], eax
jne 0x5604ac
lea ecx, [ebx + ebx*8]
lea ecx, [ecx + ecx*2]
add ecx, ebx
mov edx, dword [edi + ecx + 0x18]
mov esi, dword [ebp + 8]
mov dword [esi + 8], edx
movsd xmm0, qword [edi + ecx + 0x10]
movsd qword [esi], xmm0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x70]
jmp 0x56054c
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xd8]
sub eax, ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0xb0]
movzx eax, word [esi + 0x408]
mov ecx, eax
add cl, 0xff
mov edi, 1
mov edx, 1
shl edx, cl
test ax, ax
cmove edx, edi
mov dword [ebx + 0x84], 0
mov eax, dword [ebx + 0x6c]
mov dword [esp + 0x30], eax
lea eax, [esi + edx*4]
add eax, 0x418
mov dword [esp + 0x70], eax
xor eax, eax
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x30]
nop word [eax + eax]
mov edx, dword [edi + eax*8 - 8]
mov ecx, 0xffff
add edx, ecx
mov ebx, edx
shr ebx, 0x10
mov cl, 0xa
sub cl, bl
mov ebx, 1
shl ebx, cl
cmp edx, 0x10000
mov ecx, 1
cmovb ebx, ecx
mov dword [esi + eax*4], ebx
mov ecx, dword [esp + 0xc]
add dword [ecx + 0x84], ebx
mov ebx, dword [edi + eax*8]
mov ecx, 0xffff
add ebx, ecx
mov edx, ebx
shr edx, 0x10
mov cl, 0xa
sub cl, dl
mov edx, 1
shl edx, cl
cmp ebx, 0x10000
mov ebx, dword [esp + 0xc]
mov ecx, 1
cmovb edx, ecx
mov dword [esi + eax*4 + 4], edx
add edx, dword [ebx + 0x84]
mov dword [ebx + 0x84], edx
add eax, 2
cmp eax, 0x20
jne 0x560c50
mov edi, dword [ebp + 0x10]
mov ecx, dword [esp + 0xe0]
jmp 0x55f561