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

Disassembly:
sub esp, 0xd8
mov eax, dword [esp + 0xe8]
shr dword [esp + 0xe4], 1
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0xe8]
mov edx, esi
mov dword [esp + 0xd8], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [esp + 0xdc], ecx
lea ebp, [esi + 0x20]
mov ecx, dword [esi + 0x24]
lea ebx, [esi + 0x40]
cmp dword [esi + 4], ecx
mov ecx, dword [esi + 0x44]
cmovle edx, ebp
mov dword [esp + 0xe0], eax
cmovle ebp, esi
push edi
mov edi, ebx
cmp dword [edx + 4], ecx
mov ecx, ebp
mov eax, dword [ebp + 4]
cmovle ebx, edx
mov dword [esp + 0x10], ecx
cmovg edi, edx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x44], edi
cmp eax, dword [ebx + 4]
jle 0x44c0e6
mov ecx, ebx
mov dword [esp + 0x10], ebx
mov ebx, ebp
mov dword [esp + 0x9c], ebp
mov esi, dword [esp + 0xfc]
mov eax, dword [ecx + 8]
imul eax, dword [esi]
shr eax, 8
mov dword [ecx + 8], eax
mov eax, dword [esi + 4]
imul eax, dword [ecx + 0xc]
shr eax, 8
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 8]
imul eax, dword [ecx + 0x10]
shr eax, 8
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
imul eax, dword [ecx + 0x14]
shr eax, 8
mov dword [ecx + 0x14], eax
mov eax, dword [esi]
imul eax, dword [ebx + 8]
shr eax, 8
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0xc]
imul eax, dword [esi + 4]
shr eax, 8
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x10]
imul eax, dword [esi + 8]
shr eax, 8
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
imul eax, dword [esi + 0xc]
shr eax, 8
mov dword [ebx + 0x14], eax
mov eax, dword [esi]
imul eax, dword [edi + 8]
shr eax, 8
mov dword [edi + 8], eax
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0xc]
imul eax, dword [esi + 4]
shr eax, 8
mov dword [edi + 0xc], eax
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x10]
imul eax, dword [esi + 8]
shr eax, 8
mov dword [edi + 0x10], eax
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x14]
imul eax, dword [esi + 0xc]
shr eax, 8
mov dword [edi + 0x14], eax
mov dword [esp + 0xac], eax
mov eax, dword [ecx + 4]
mov ecx, dword [edi + 4]
mov dword [esp + 0x3c], eax
lea edx, [eax + 0xffff]
lea eax, [ecx + 0xffff]
sar edx, 0x10
sar eax, 0x10
mov dword [esp + 0x70], edx
mov dword [esp + 0xa8], eax
cmp edx, eax
je 0x44d573
mov ebp, dword [ebx + 4]
sub ecx, dword [esp + 0x3c]
lea eax, [ebp + 0xffff]
sar eax, 0x10
mov dword [esp + 0x6c], eax
mov eax, ecx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x10]
push edi
push ebx
mov ecx, dword [eax]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x10]
push edi
mov dword [esp + 0xc8], edx
push ebx
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0x28], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x10]
push edi
mov dword [esp + 0xdc], edx
push ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x6c]
sub eax, ecx
mov dword [esp + 0x2c], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x10]
push edi
mov dword [esp + 0xd8], edx
push ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x80]
sub eax, ecx
mov dword [esp + 0x50], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x10]
push edi
mov dword [esp + 0xd4], edx
push ebx
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0xb4]
sub eax, ecx
mov dword [esp + 0x70], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc8], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x78], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
push edi
cdq
push ebx
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x10]
push edi
mov dword [esp + 0xd0], edx
push ebx
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0x1c]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov edi, dword [esp + 0x3c]
sub ebp, edi
mov dword [esp + 0xac], edx
mov eax, ebp
cdq
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0xc4]
cdq
push ebx
mov ebp, eax
mov dword [esp + 0x34], ecx
mov eax, edx
mov dword [esp + 0x30], ebx
push ecx
push eax
push ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x38], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x9c]
mov ecx, eax
mov ebx, dword [esp + 0x18]
shrd ecx, edx, 0x10
mov eax, dword [ebp]
add ecx, ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], eax
cmp eax, ecx
je 0x44d573
mov eax, dword [esp + 0x70]
shl eax, 0x10
sub eax, edi
cdq
mov ecx, edx
mov dword [esp + 0x38], eax
push ecx
push eax
push dword [esp + 0x30]
mov dword [esp + 0x40], ecx
push dword [esp + 0x6c]
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x3c]
add eax, ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xe0]
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x3c]
add eax, dword [esp + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xdc]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x70], eax
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x3c]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xd8]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], eax
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x3c]
add eax, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xd0]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x94], eax
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x3c]
add eax, dword [esp + 0x70]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xd4]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x78]
push dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xb0]
push dword [esp + 0x3c]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
sub eax, dword [esp + 0x3c]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push dword [esp + 0x2c]
mov dword [esp + 0x18], eax
push dword [esp + 0x34]
mov dword [esp + 0x30], edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x28]
mov ecx, eax
mov edi, edx
mov eax, dword [ebp + 8]
push dword [esp + 0x18]
cdq
shrd ecx, edi, 0x10
mov ebp, eax
mov ebx, edx
mov eax, dword [esp + 0x28]
sar edi, 0x10
sub ebp, ecx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x2c]
mov dword [esp + 0xa4], edx
push dword [esp + 0x34]
push dword [esp + 0x68]
push dword [esp + 0x80]
call fcn.0059bca0
push dword [esp + 0x28]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa0]
push dword [esp + 0x18]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0xc]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x2c]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x2c]
mov dword [esp + 0xa8], edx
push dword [esp + 0x34]
push dword [esp + 0x84]
push dword [esp + 0x8c]
call fcn.0059bca0
push dword [esp + 0x28]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa0]
push dword [esp + 0x18]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0x10]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x50]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x2c]
mov dword [esp + 0x78], edx
push dword [esp + 0x34]
push dword [esp + 0x8c]
push dword [esp + 0x94]
call fcn.0059bca0
push dword [esp + 0x28]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa0]
push dword [esp + 0x18]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0x14]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x70]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x2c]
mov dword [esp + 0x64], edx
push dword [esp + 0x34]
push dword [esp + 0x94]
push dword [esp + 0x9c]
call fcn.0059bca0
push dword [esp + 0x28]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa0]
push dword [esp + 0x18]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0x18]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x80]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x2c]
mov dword [esp + 0x6c], edx
push dword [esp + 0x34]
push dword [esp + 0x9c]
push dword [esp + 0xa4]
call fcn.0059bca0
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0x9c]
push dword [esp + 0x28]
shrd ecx, edi, 0x10
push dword [esp + 0x18]
mov eax, dword [eax + 0x1c]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x6c]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
mov ecx, dword [esp + 0x70]
mov ebp, edx
imul ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x28], ebp
lea eax, [eax + ecx*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x70]
mov dword [esp + 0x48], eax
je 0x44ce1d
push dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
push dword [esp + 0x34]
sub eax, dword [esp + 0x20]
cdq
push 0x10000
push 0
mov ebx, eax
mov edi, edx
call fcn.0059bbf0
push edx
push eax
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x34]
mov eax, edx
push dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
cdq
push edx
push eax
call fcn.0059bca0
mov edi, eax
mov eax, dword [esp + 0x1c]
shrd edi, edx, 0x10
add edi, dword [esp + 0x18]
cmp dword [esp + 0x3c], eax
jge 0x44cab0
mov ebx, dword [esp + 0x48]
test ebx, ebx
jle 0x44ce1d
mov eax, dword [esp + 0xa0]
cdq
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x98], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, ebp
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0xb8], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0xb4], edx
lea edx, [ecx + 0xffff]
mov dword [esp + 0x20], eax
mov dword [esp + 0x70], edx
mov ebp, edx
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x48], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xa0]
push dword [esp + 0xa0]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x98]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x64]
mov dword [esp + 0x40], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0xbc]
add eax, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xbc]
shrd eax, edx, 0x10
push dword [esp + 0xc4]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x34], eax
call fcn.0059bca0
mov ecx, eax
mov eax, ebp
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x14]
add ecx, dword [esp + 0x10]
sar eax, 0x10
mov dword [esp + 0x1c], ecx
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x20]
sub eax, ebp
mov dword [esp + 0x18], edx
mov ebp, dword [esp + 0x28]
sar eax, 0x10
test eax, eax
jle 0x44ca29
nop word [eax + eax]
dec eax
shr ecx, 0x10
imul ecx, dword [esp + 0xdc]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x24]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xe0]
jae 0x44c9db
mov eax, dword [esp + 0xe4]
mov ebx, dword [eax + ecx*4]
mov eax, ebx
shr eax, 0x18
mov dword [esp + 0xbc], ebx
cmp eax, 8
jbe 0x44c9db
mov edi, dword [esi]
imul edi, dword [esp + 0x38]
mov edx, dword [esi + 0xc]
imul edx, dword [esp + 0x2c]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x34]
shr edi, 0x18
imul edi, eax
shr edx, 0x18
mov ebp, dword [esp + 0x18]
movzx eax, bl
imul edx, eax
mov eax, ebx
and eax, 0xff0000
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x30]
and edx, 0xff00
shr edi, 8
or edx, ecx
mov ecx, dword [esp + 0xbc]
and ecx, 0xff00
shr edx, 8
shr eax, 0x18
mov ebx, edx
imul eax, ecx
and ebx, 0xff0000
movzx ecx, dl
imul ebx, edi
imul ecx, edi
and eax, 0xff0000
bswap eax
imul eax, edi
movzx edi, word [ebp]
mov edx, edi
shr ebx, 0x10
and edx, 0x7e0
shr ecx, 0xb
and ebx, 0xf800
shr eax, 0xd
and eax, 0x7e0
add edx, eax
mov eax, edi
and eax, 0x1f
shr edx, 5
and edi, 0xf800
add eax, ecx
shr eax, 5
add edi, ebx
or edx, eax
shr edi, 5
or edx, edi
mov word [ebp], dx
mov edx, ebp
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
add edx, 2
add dword [esp + 0x38], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x74]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x24], eax
add ecx, ebp
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
test eax, eax
jg 0x44c8d0
mov ebx, dword [esp + 0xf4]
mov eax, dword [esp + 0x64]
add dword [esp + 0x20], eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
lea eax, [ebx + ebx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0xd8]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xd4]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xd0]
add dword [esp + 0x54], eax
mov eax, dword [esp + 0xc8]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xcc]
add dword [esp + 0x5c], eax
add ecx, dword [esp + 0xc4]
add edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xac]
add dword [esp + 0x10], eax
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x70], edx
test ebx, ebx
jg 0x44c7c7
jmp 0x44ce1d
jle 0x44ce1d
mov ebx, dword [esp + 0x48]
test ebx, ebx
jle 0x44ce1d
mov eax, dword [esp + 0xa0]
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb0], edx
cdq
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x94], edx
cdq
mov dword [esp + 0x88], eax
mov eax, ebp
mov dword [esp + 0x8c], edx
cdq
mov dword [esp + 0x80], eax
lea eax, [ecx + 0xffff]
mov dword [esp + 0x2c], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x84], edx
mov dword [esp + 0x70], eax
mov ebp, eax
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x48], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xc8]
push dword [esp + 0xc8]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc0]
shrd eax, edx, 0x10
push dword [esp + 0xc0]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0xa4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x9c]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x64]
mov dword [esp + 0x48], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x94]
add eax, dword [esp + 0x68]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x8c]
shrd eax, edx, 0x10
push dword [esp + 0x8c]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
call fcn.0059bca0
mov ecx, eax
mov eax, ebp
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x14]
add ecx, dword [esp + 0x10]
sar eax, 0x10
mov dword [esp + 0x1c], ecx
lea edx, [edx + eax*2]
mov eax, dword [esp + 0x2c]
sub eax, ebp
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x28]
sar eax, 0x10
test eax, eax
jle 0x44cda0
dec eax
shr ecx, 0x10
imul ecx, dword [esp + 0xdc]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x30]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xe0]
jae 0x44cd55
mov eax, dword [esp + 0xe4]
mov ebx, dword [eax + ecx*4]
mov eax, ebx
shr eax, 0x18
mov dword [esp + 0x7c], ebx
cmp eax, 8
jbe 0x44cd55
mov edi, dword [esi]
imul edi, dword [esp + 0x24]
mov edx, dword [esi + 0xc]
imul edx, dword [esp + 0x34]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x18]
shr edi, 0x18
imul edi, eax
shr edx, 0x18
mov ebp, dword [esp + 0x20]
movzx eax, bl
imul edx, eax
mov eax, ebx
and eax, 0xff0000
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x38]
and edx, 0xff00
shr edi, 8
or edx, ecx
mov ecx, dword [esp + 0x7c]
and ecx, 0xff00
shr edx, 8
shr eax, 0x18
mov ebx, edx
imul eax, ecx
and ebx, 0xff0000
movzx ecx, dl
imul ebx, edi
imul ecx, edi
and eax, 0xff0000
bswap eax
imul eax, edi
movzx edi, word [ebp]
mov edx, edi
shr ebx, 0x10
and edx, 0x7e0
shr ecx, 0xb
and ebx, 0xf800
shr eax, 0xd
and eax, 0x7e0
add edx, eax
mov eax, edi
and eax, 0x1f
shr edx, 5
and edi, 0xf800
add eax, ecx
shr eax, 5
add edi, ebx
or edx, eax
shr edi, 5
or edx, edi
mov word [ebp], dx
mov edx, ebp
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
add edx, 2
add dword [esp + 0x24], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x74]
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x30], eax
add ecx, ebp
mov eax, dword [esp + 0x78]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
test eax, eax
jg 0x44cc53
mov ebx, dword [esp + 0xf4]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0xc4]
add ecx, eax
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
lea edx, [ebx + ebx]
add dword [esp + 0x14], edx
mov edx, dword [esp + 0xd8]
add dword [esp + 0x4c], edx
mov edx, dword [esp + 0xd4]
add dword [esp + 0x50], edx
mov edx, dword [esp + 0xd0]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0xc8]
add dword [esp + 0x58], edx
mov edx, dword [esp + 0xcc]
add dword [esp + 0x5c], edx
add eax, dword [esp + 0x64]
mov edx, dword [esp + 0xac]
add dword [esp + 0x10], edx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x70], eax
test ebx, ebx
jg 0x44cb50
mov eax, dword [esp + 0x6c]
sub dword [esp + 0xa8], eax
je 0x44d573
mov eax, dword [esp + 0x9c]
mov ebx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 4]
sub eax, ebx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
sub eax, dword [esp + 0x1c]
cdq
push edx
push eax
push ecx
push edi
call fcn.0059bca0
mov eax, dword [esp + 0x6c]
mov ecx, edx
shl eax, 0x10
sub eax, ebx
mov dword [esp + 0x70], ecx
imul ecx
mov edi, eax
mov eax, dword [esp + 0x1c]
shrd edi, edx, 0x10
add edi, eax
cmp dword [esp + 0x3c], eax
jge 0x44d204
mov ebx, dword [esp + 0xa8]
test ebx, ebx
jle 0x44d573
mov eax, dword [esp + 0xa0]
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb0], edx
cdq
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x94], edx
cdq
mov dword [esp + 0x88], eax
mov eax, ebp
mov dword [esp + 0x8c], edx
cdq
mov dword [esp + 0x80], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x84], edx
mov dword [esp + 0x48], eax
nop dword [eax + eax]
lea ebp, [ecx + 0xffff]
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0xa8], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xc8]
push dword [esp + 0xc8]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc0]
shrd eax, edx, 0x10
push dword [esp + 0xc0]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0xa4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x9c]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x64]
mov dword [esp + 0x34], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x94]
add eax, dword [esp + 0x68]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x8c]
shrd eax, edx, 0x10
push dword [esp + 0x8c]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
call fcn.0059bca0
mov edi, eax
mov ecx, ebp
mov eax, dword [esp + 0x48]
shrd edi, edx, 0x10
mov edx, dword [esp + 0x14]
sub eax, ebp
add edi, dword [esp + 0x10]
sar ecx, 0x10
sar eax, 0x10
mov dword [esp + 0x1c], edi
lea edx, [edx + ecx*2]
mov dword [esp + 0x3c], edx
test eax, eax
jle 0x44d183
dec eax
mov ecx, edi
shr ecx, 0x10
imul ecx, dword [esp + 0xdc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x44]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xe0]
jae 0x44d13a
mov eax, dword [esp + 0xe4]
mov ebx, dword [eax + ecx*4]
mov eax, ebx
shr eax, 0x18
mov dword [esp + 0x7c], ebx
cmp eax, 8
jbe 0x44d13a
mov edi, dword [esi]
imul edi, dword [esp + 0x6c]
mov edx, dword [esi + 0xc]
imul edx, dword [esp + 0x18]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x20]
shr edi, 0x18
imul edi, eax
shr edx, 0x18
mov ebp, dword [esp + 0x3c]
movzx eax, bl
imul edx, eax
mov eax, ebx
and eax, 0xff0000
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x24]
and edx, 0xff00
shr edi, 8
or edx, ecx
mov ecx, dword [esp + 0x7c]
and ecx, 0xff00
shr edx, 8
shr eax, 0x18
mov ebx, edx
imul eax, ecx
and ebx, 0xff0000
movzx ecx, dl
imul ebx, edi
imul ecx, edi
and eax, 0xff0000
bswap eax
imul eax, edi
movzx edi, word [ebp]
mov edx, edi
shr ebx, 0x10
and edx, 0x7e0
shr ecx, 0xb
and ebx, 0xf800
shr eax, 0xd
and eax, 0x7e0
add edx, eax
mov eax, edi
and eax, 0x1f
shr edx, 5
and edi, 0xf800
add eax, ecx
add edi, ebx
shr eax, 5
or edx, eax
shr edi, 5
or edx, edi
mov edi, dword [esp + 0x1c]
mov word [ebp], dx
mov edx, ebp
mov eax, dword [esp + 0xa0]
add edx, 2
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
add dword [esp + 0x44], eax
add edi, dword [esp + 0x28]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edi
test eax, eax
jg 0x44d036
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x70]
add dword [esp + 0x48], eax
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0xc4]
lea eax, [edx + edx]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0xd8]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xd4]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xd0]
add dword [esp + 0x54], eax
mov eax, dword [esp + 0xc8]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xcc]
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0xac]
add dword [esp + 0x10], eax
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x40], ecx
test ebx, ebx
jg 0x44cf30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd8
ret
jle 0x44d573
mov ecx, dword [esp + 0xa8]
test ecx, ecx
jle 0x44d573
mov eax, dword [esp + 0xa0]
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb0], edx
cdq
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x94], edx
cdq
mov dword [esp + 0x88], eax
mov eax, ebp
mov dword [esp + 0x8c], edx
cdq
mov dword [esp + 0x80], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x84], edx
mov dword [esp + 0x64], eax
nop dword [eax]
mov ebp, eax
dec ecx
and ebp, 0xffff0000
mov dword [esp + 0xa8], ecx
mov eax, ebp
sub eax, dword [esp + 0x40]
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xc8]
push dword [esp + 0xc8]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc0]
shrd eax, edx, 0x10
push dword [esp + 0xc0]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x7c], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0xa4]
add eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x9c]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x64]
mov dword [esp + 0x34], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x94]
add eax, dword [esp + 0x68]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x8c]
shrd eax, edx, 0x10
push dword [esp + 0x8c]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
call fcn.0059bca0
mov edi, eax
mov ecx, ebp
mov eax, dword [esp + 0x40]
shrd edi, edx, 0x10
mov edx, dword [esp + 0x14]
sub eax, ebp
add edi, dword [esp + 0x10]
add eax, 0xffff
sar ecx, 0x10
sar eax, 0x10
mov dword [esp + 0x1c], edi
lea edx, [edx + ecx*2]
mov dword [esp + 0x3c], edx
test eax, eax
jle 0x44d4fd
nop dword [eax]
dec eax
mov ecx, edi
shr ecx, 0x10
imul ecx, dword [esp + 0xdc]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x44]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xe0]
jae 0x44d4b4
mov eax, dword [esp + 0xe4]
mov ebx, dword [eax + ecx*4]
mov eax, ebx
shr eax, 0x18
mov dword [esp + 0x7c], ebx
cmp eax, 8
jbe 0x44d4b4
mov edi, dword [esi]
imul edi, dword [esp + 0x6c]
mov edx, dword [esi + 0xc]
imul edx, dword [esp + 0x18]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x20]
shr edi, 0x18
imul edi, eax
shr edx, 0x18
mov ebp, dword [esp + 0x3c]
movzx eax, bl
imul edx, eax
mov eax, ebx
and eax, 0xff0000
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x24]
and edx, 0xff00
shr edi, 8
or edx, ecx
mov ecx, dword [esp + 0x7c]
and ecx, 0xff00
shr edx, 8
shr eax, 0x18
mov ebx, edx
imul eax, ecx
and ebx, 0xff0000
movzx ecx, dl
imul ebx, edi
imul ecx, edi
and eax, 0xff0000
bswap eax
imul eax, edi
movzx edi, word [ebp]
mov edx, edi
shr ebx, 0x10
and edx, 0x7e0
shr ecx, 0xb
and ebx, 0xf800
shr eax, 0xd
and eax, 0x7e0
add edx, eax
mov eax, edi
and eax, 0x1f
shr edx, 5
and edi, 0xf800
add eax, ecx
add edi, ebx
shr eax, 5
or edx, eax
shr edi, 5
or edx, edi
mov edi, dword [esp + 0x1c]
mov word [ebp], dx
mov edx, ebp
mov eax, dword [esp + 0xa0]
add edx, 2
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
add dword [esp + 0x44], eax
add edi, dword [esp + 0x28]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x1c], edi
test eax, eax
jg 0x44d3b0
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0xc4]
add dword [esp + 0x40], eax
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x70]
lea ecx, [edx + edx]
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xd8]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xd4]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xac]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x64], eax
test ecx, ecx
jg 0x44d2a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd8
ret