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

Disassembly:
sub esp, 0xf0
mov eax, dword [esp + 0x100]
shr dword [esp + 0xfc], 1
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0x100]
mov edx, esi
mov dword [esp + 0xac], ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
mov dword [esp + 0xf8], ecx
lea ebx, [esi + 0x40]
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0x24]
push edi
lea edi, [esi + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x44]
cmovle edx, edi
cmovle edi, esi
mov esi, ebx
mov ebp, edi
cmp dword [edx + 4], eax
mov eax, dword [edi + 4]
cmovle ebx, edx
cmovg esi, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x58], ebx
cmp eax, dword [ebx + 4]
jle 0x448df8
mov ebp, ebx
mov dword [esp + 0x58], edi
mov ebx, edi
mov edx, dword [esp + 0x8c]
mov esi, dword [ebp + 4]
mov edx, dword [edx + 4]
lea ecx, [esi + 0xffff]
sar ecx, 0x10
mov dword [esp + 0x1c], ecx
lea eax, [edx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x9c], eax
cmp ecx, eax
je 0x44a9f2
mov ebx, dword [ebx + 4]
sub edx, esi
lea eax, [ebx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x80], eax
mov eax, edx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov ecx, dword [ebp]
mov edi, eax
mov eax, dword [esp + 0x8c]
mov esi, edx
push esi
push edi
mov dword [esp + 0x58], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 8]
push esi
mov dword [esp + 0xec], edx
mov eax, dword [eax + 8]
sub eax, ecx
mov dword [esp + 0x2c], ecx
cdq
push edi
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0xc]
push esi
mov dword [esp + 0xe4], edx
mov eax, dword [eax + 0xc]
sub eax, ecx
mov dword [esp + 0x30], ecx
cdq
push edi
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x10]
push esi
mov dword [esp + 0xe0], edx
mov eax, dword [eax + 0x10]
sub eax, ecx
mov dword [esp + 0x44], ecx
cdq
push edi
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x14]
push esi
mov dword [esp + 0xf8], edx
mov eax, dword [eax + 0x14]
sub eax, ecx
mov dword [esp + 0x50], ecx
cdq
push edi
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0xf0], edx
mov dword [esp + 0x90], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
cdq
push esi
push edi
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp + 0x1c]
push esi
mov dword [esp + 0xf0], edx
mov eax, dword [eax + 0x1c]
sub eax, ecx
mov dword [esp + 0x98], ecx
cdq
push edi
push edx
push eax
call fcn.0059bca0
mov esi, dword [ebp + 4]
sub ebx, esi
mov dword [esp + 0xe4], edx
mov eax, ebx
cdq
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0xe8]
cdq
mov edi, edx
mov dword [esp + 0x3c], ecx
push edi
push eax
push ebx
push ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x44], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x50]
mov ecx, eax
mov eax, dword [esp + 0x58]
shrd ecx, edx, 0x10
add ecx, ebp
mov ebx, dword [eax]
mov dword [esp + 0x84], ecx
cmp ebx, ecx
je 0x44a9f2
mov eax, dword [esp + 0x1c]
shl eax, 0x10
push edi
push dword [esp + 0x38]
sub eax, esi
cdq
mov ecx, edx
mov dword [esp + 0x1c], eax
push ecx
push eax
mov dword [esp + 0x28], ecx
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, ebp
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xe0]
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x20]
push dword [esp + 0x20]
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xdc]
cdq
mov ebp, edx
mov dword [esp + 0x34], eax
push ebp
push eax
push dword [esp + 0x20]
push dword [esp + 0x20]
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xf4]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
push dword [esp + 0x20]
mov dword [esp + 0x84], ecx
push dword [esp + 0x20]
mov dword [esp + 0x64], eax
call fcn.0059bca0
push dword [esp + 0x18]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x48]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xf8]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x54], eax
call fcn.0059bca0
push dword [esp + 0x18]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x54]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xf4]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x80], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x90]
mov dword [esp + 0x6c], eax
push dword [esp + 0x18]
mov eax, dword [esp + 0xe8]
push dword [esp + 0x18]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x48], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x94]
mov dword [esp + 0x7c], eax
mov eax, ebx
sub eax, dword [esp + 0x84]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push esi
push edi
push dword [esp + 0x18]
mov dword [esp + 0x2c], eax
push dword [esp + 0x48]
mov dword [esp + 0x34], edx
call fcn.0059bca0
push dword [esp + 0x24]
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x5c]
push dword [esp + 0x24]
shrd ecx, esi, 0x10
mov eax, dword [eax + 8]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x30]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push ebp
push dword [esp + 0x38]
mov dword [esp + 0xb4], edx
push dword [esp + 0x18]
push dword [esp + 0x48]
call fcn.0059bca0
mov ebp, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x58]
mov esi, edx
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x24]
mov eax, dword [eax + 0xc]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x34]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x54]
mov dword [esp + 0xac], edx
push dword [esp + 0x7c]
push dword [esp + 0x18]
push dword [esp + 0x48]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x58]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x24]
mov eax, dword [eax + 0x10]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x48]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x10]
mov dword [esp + 0xa8], edx
push dword [esp + 0x40]
push dword [esp + 0x4c]
push dword [esp + 0x80]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x58]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x24]
mov eax, dword [eax + 0x14]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x54]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x10]
mov dword [esp + 0xa4], edx
push dword [esp + 0x40]
push dword [esp + 0x78]
push dword [esp + 0x94]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x58]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x24]
mov eax, dword [eax + 0x18]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x98]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x10]
mov dword [esp + 0x8c], edx
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0xa4]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x58]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x24]
mov eax, dword [eax + 0x1c]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x9c]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
mov ecx, dword [esp + 0x1c]
mov ebx, edx
imul ecx, dword [esp + 0x10c]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x94], ebx
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
je 0x449e83
mov eax, dword [esp + 0x58]
push dword [esp + 0x10]
push dword [esp + 0x40]
mov ebp, dword [eax]
mov eax, ebp
sub eax, dword [esp + 0x58]
cdq
push 0x10000
push 0
mov edi, eax
mov esi, edx
call fcn.0059bbf0
push edx
push eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x18]
mov eax, edx
push dword [esp + 0x18]
mov dword [esp + 0x5c], eax
cdq
push edx
push eax
call fcn.0059bca0
mov esi, eax
shrd esi, edx, 0x10
add esi, dword [esp + 0x50]
cmp dword [esp + 0x84], ebp
mov ebp, dword [esp + 0x48]
jge 0x4498f7
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x449e87
mov eax, dword [esp + 0xac]
cdq
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x98], edx
cdq
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x34], edx
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xbc], edx
cdq
mov dword [esp + 0xc8], eax
mov eax, ebx
mov dword [esp + 0xc4], edx
cdq
mov dword [esp + 0xd0], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x28], eax
lea eax, [ebp + 0xffff]
mov dword [esp + 0xcc], edx
mov dword [esp + 0x44], eax
mov ebx, eax
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x1c], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xa0]
push dword [esp + 0x44]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x3c]
mov ebp, eax
push dword [esp + 0x84]
shrd ebp, edx, 0x10
add ebp, dword [esp + 0x6c]
mov dword [esp + 0x5c], ebp
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xbc]
mov ebp, eax
push dword [esp + 0xc4]
shrd ebp, edx, 0x10
add ebp, dword [esp + 0x70]
mov dword [esp + 0x50], ebp
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xc4]
mov ebp, eax
push dword [esp + 0xcc]
shrd ebp, edx, 0x10
add ebp, dword [esp + 0x74]
mov dword [esp + 0x34], ebp
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xcc]
mov ebp, eax
push dword [esp + 0xd4]
shrd ebp, edx, 0x10
add ebp, dword [esp + 0x78]
mov dword [esp + 0x3c], ebp
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xd4]
mov ebp, eax
push dword [esp + 0xdc]
shrd ebp, edx, 0x10
add ebp, dword [esp + 0x7c]
call fcn.0059bca0
mov esi, eax
mov eax, ebx
shrd esi, edx, 0x10
mov edx, dword [esp + 0x20]
sar eax, 0x10
add esi, 0xffff8000
lea eax, [edx + eax*2]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x28]
sub eax, ebx
sar eax, 0x10
test eax, eax
jle 0x449869
add esi, dword [esp + 0x7c]
lea ebx, [ebp - 0x8000]
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebx
nop dword [eax]
mov edx, dword [esp + 0xb0]
dec eax
mov dword [esp + 0xd8], eax
test ebx, ebx
jle 0x449550
mov ecx, ebx
mov dword [esp + 0x50], ebx
lea eax, [edx - 1]
sar ecx, 0x10
xor edi, edi
cmp ecx, eax
mov eax, edi
setl al
mov dword [esp + 0x14], eax
mov edi, eax
jmp 0x449558
xor eax, eax
xor edi, edi
mov dword [esp + 0x50], eax
test esi, esi
jle 0x449578
mov eax, dword [esp + 0xfc]
mov ecx, esi
sar ecx, 0x10
dec eax
xor ebp, ebp
cmp ecx, eax
mov ecx, esi
cmovl ebp, edx
mov dword [esp + 0x14], ebp
jmp 0x44957e
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x50]
sar eax, 0x10
mov ebp, dword [esp + 0x30]
sar ecx, 0x10
imul ecx, edx
add ecx, eax
mov dword [esp + 0x3c], ecx
lea eax, [ecx + edi]
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov ecx, ebx
and ecx, 0xfffe
mov ebx, 0x10000
inc ecx
mov edx, dword [ebp + eax*4]
add eax, edi
mov edi, 0x10000
sub edi, ecx
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x18], eax
mov eax, esi
and eax, 0xfffe
mov esi, edi
inc eax
sub ebx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
imul edi, dword [esp + 0x10]
imul esi, ebx
imul ebx, ecx
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x50]
shr eax, 0x18
shr esi, 0x10
imul esi, eax
mov eax, ebp
shr eax, 0x18
and ebp, 0xff0000
shr ebx, 0x10
imul ebx, eax
mov eax, edx
shr eax, 0x18
shr edi, 0x10
imul edi, eax
mov eax, dword [esp + 0x10]
imul eax, ecx
shr ebx, 0x10
imul ebp, ebx
shr edi, 0x10
shr esi, 0x10
mov dword [esp + 0x10], eax
mov ecx, eax
mov eax, dword [esp + 0x18]
shr eax, 0x18
shr ecx, 0x10
imul ecx, eax
mov eax, dword [esp + 0x18]
and eax, 0xff0000
mov dword [esp + 0xd4], ebx
shr ecx, 0x10
imul eax, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, edx
mov ecx, dword [esp + 0x14]
and eax, 0xff0000
imul eax, edi
add ecx, eax
mov eax, dword [esp + 0x30]
add ecx, ebp
mov ebp, dword [esp + 0x3c]
mov eax, dword [eax + ebp*4]
and eax, 0xff0000
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x18]
and ecx, 0xff0000ff
mov dword [esp + 0x14], ecx
movzx ecx, al
imul ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x30]
movzx eax, dl
and edx, 0xff00
imul eax, edi
imul edx, edi
add ecx, eax
mov eax, dword [esp + 0x50]
movzx eax, al
imul eax, ebx
mov ebx, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [ebp + ebx*4]
movzx eax, al
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x50]
and ecx, 0xff00
and eax, 0xff00
or dword [esp + 0x14], ecx
imul eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x18]
and ecx, 0xff00
imul ecx, dword [esp + 0x10]
add ecx, edx
mov edx, ebp
add ecx, eax
mov ebp, ebx
mov eax, dword [edx + ebp*4]
and eax, 0xff00
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 0xff0000
or eax, ecx
shr eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
add eax, edi
add eax, dword [esp + 0xd4]
add eax, esi
shl eax, 0x18
bswap eax
cmp eax, 8
jbe 0x4497ff
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov eax, dword [esp + 0x2c]
and ecx, 0xff00
mov edi, dword [esp + 0x24]
shr eax, 0x10
mov esi, dword [esp + 0x4c]
movzx edx, bl
and ebx, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x40]
shr eax, 0x10
imul ebx, eax
shr edi, 0x10
imul edi, ecx
and edx, 0xff00
mov ebp, dword [esp + 0x90]
shr esi, 0x10
or edx, ebx
shr edx, 8
and edi, 0xff0000
mov eax, edx
and eax, 0xff0000
imul eax, esi
bswap edi
imul edi, esi
and eax, 0xff0000ff
and edi, 0xff0000
or edi, eax
movzx eax, dl
movzx edx, word [ebp]
imul eax, esi
mov ecx, edx
and ecx, 0x7e0
and eax, 0xff00
or edi, eax
shr edi, 8
mov eax, edi
mov esi, edi
shr eax, 5
and eax, 0x7e0
shr edi, 3
add ecx, eax
shr esi, 8
mov eax, edx
shr ecx, 5
and eax, 0x1f
and edi, 0x1f
and edx, 0xf800
and esi, 0xf800
add eax, edi
add edx, esi
shr eax, 5
or ecx, eax
shr edx, 5
or ecx, edx
mov word [ebp], cx
jmp 0x449806
mov ebp, dword [esp + 0x90]
mov eax, dword [esp + 0xac]
add ebp, 2
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa8]
add dword [esp + 0x40], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
add dword [esp + 0x2c], eax
add ebx, dword [esp + 0x88]
add esi, dword [esp + 0x94]
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x90], ebp
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], esi
test eax, eax
jg 0x449520
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x54]
add dword [esp + 0x28], ecx
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
lea ecx, [edx + edx]
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xe0]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xdc]
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xf4]
add dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xf0]
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xec]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xe4]
add dword [esp + 0x7c], ecx
add ebp, dword [esp + 0xe8]
add eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x44], eax
test ecx, ecx
jg 0x449407
mov ebx, dword [esp + 0x94]
jmp 0x449e87
jle 0x449e87
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x449e87
mov eax, dword [esp + 0xac]
cdq
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xd8], edx
cdq
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xd0], edx
cdq
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xc8], edx
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0xb4], eax
mov eax, ebx
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0x38], eax
lea eax, [ebp + 0xffff]
mov dword [esp + 0x50], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x98], edx
mov dword [esp + 0x34], eax
nop dword [eax]
push dword [esp + 0xd8]
mov ebx, eax
dec ecx
push dword [esp + 0xd8]
and ebx, 0xffff0000
mov dword [esp + 0x24], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0xd0]
mov ebp, eax
push dword [esp + 0xd0]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x68]
push edi
mov dword [esp + 0x34], ebp
call fcn.0059bca0
push dword [esp + 0xc8]
mov ebp, eax
push dword [esp + 0xc8]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x6c]
push edi
mov dword [esp + 0x50], ebp
call fcn.0059bca0
push dword [esp + 0xc0]
mov ebp, eax
push dword [esp + 0xc0]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x70]
push edi
mov dword [esp + 0x5c], ebp
call fcn.0059bca0
push dword [esp + 0xb8]
mov ebp, eax
push dword [esp + 0xb8]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x74]
push edi
mov dword [esp + 0xa0], ebp
call fcn.0059bca0
push dword [esp + 0x98]
mov ebp, eax
push dword [esp + 0x3c]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x78]
push edi
call fcn.0059bca0
mov esi, eax
mov eax, ebx
shrd esi, edx, 0x10
mov edx, dword [esp + 0x20]
sar eax, 0x10
add esi, 0xffff8000
lea eax, [edx + eax*2]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
sub eax, ebx
sar eax, 0x10
test eax, eax
jle 0x449dfd
add esi, dword [esp + 0x7c]
lea ebx, [ebp - 0x8000]
mov dword [esp + 0x78], esi
mov dword [esp + 0x70], ebx
nop word [eax + eax]
mov edx, dword [esp + 0xb0]
dec eax
mov dword [esp + 0xf8], eax
test ebx, ebx
jle 0x449af0
mov ecx, ebx
mov dword [esp + 0x44], ebx
lea eax, [edx - 1]
sar ecx, 0x10
xor edi, edi
cmp ecx, eax
mov eax, edi
setl al
mov dword [esp + 0x74], eax
mov edi, eax
jmp 0x449af8
xor eax, eax
xor edi, edi
mov dword [esp + 0x44], eax
test esi, esi
jle 0x449b18
mov eax, dword [esp + 0xfc]
mov ecx, esi
sar ecx, 0x10
dec eax
xor ebp, ebp
cmp ecx, eax
mov ecx, esi
cmovl ebp, edx
mov dword [esp + 0x74], ebp
jmp 0x449b1e
xor ecx, ecx
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x44]
sar eax, 0x10
mov ebp, dword [esp + 0x30]
sar ecx, 0x10
imul ecx, edx
add ecx, eax
mov dword [esp + 0x3c], ecx
lea eax, [ecx + edi]
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
add eax, ecx
mov ecx, ebx
and ecx, 0xfffe
mov ebx, 0x10000
inc ecx
mov edx, dword [ebp + eax*4]
add eax, edi
mov edi, 0x10000
sub edi, ecx
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x18], eax
mov eax, esi
and eax, 0xfffe
mov esi, edi
inc eax
sub ebx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
imul edi, dword [esp + 0x10]
imul esi, ebx
imul ebx, ecx
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x28]
shr eax, 0x18
shr esi, 0x10
imul esi, eax
mov eax, ebp
shr eax, 0x18
and ebp, 0xff0000
shr ebx, 0x10
imul ebx, eax
mov eax, edx
shr eax, 0x18
shr edi, 0x10
imul edi, eax
mov eax, dword [esp + 0x10]
imul eax, ecx
shr ebx, 0x10
imul ebp, ebx
shr edi, 0x10
shr esi, 0x10
mov dword [esp + 0x10], eax
mov ecx, eax
mov eax, dword [esp + 0x18]
shr eax, 0x18
shr ecx, 0x10
imul ecx, eax
mov eax, dword [esp + 0x18]
and eax, 0xff0000
mov dword [esp + 0x44], ebx
shr ecx, 0x10
imul eax, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, edx
mov ecx, dword [esp + 0x14]
and eax, 0xff0000
imul eax, edi
add ecx, eax
mov eax, dword [esp + 0x30]
add ecx, ebp
mov ebp, dword [esp + 0x3c]
mov eax, dword [eax + ebp*4]
and eax, 0xff0000
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x18]
and ecx, 0xff0000ff
mov dword [esp + 0x14], ecx
movzx ecx, al
imul ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x30]
movzx eax, dl
and edx, 0xff00
imul eax, edi
imul edx, edi
add ecx, eax
mov eax, dword [esp + 0x28]
movzx eax, al
imul eax, ebx
mov ebx, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [ebp + ebx*4]
movzx eax, al
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x28]
and ecx, 0xff00
and eax, 0xff00
or dword [esp + 0x14], ecx
imul eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
and ecx, 0xff00
imul ecx, dword [esp + 0x10]
add ecx, edx
mov edx, ebp
add ecx, eax
mov ebp, ebx
mov eax, dword [edx + ebp*4]
and eax, 0xff00
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 0xff0000
or eax, ecx
shr eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
add eax, edi
add eax, dword [esp + 0x44]
add eax, esi
shl eax, 0x18
bswap eax
cmp eax, 8
jbe 0x449d96
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov eax, dword [esp + 0x90]
and ecx, 0xff00
mov edi, dword [esp + 0x4c]
shr eax, 0x10
mov esi, dword [esp + 0x24]
movzx edx, bl
and ebx, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x40]
shr eax, 0x10
imul ebx, eax
shr edi, 0x10
imul edi, ecx
and edx, 0xff00
mov ebp, dword [esp + 0x2c]
shr esi, 0x10
or edx, ebx
shr edx, 8
and edi, 0xff0000
mov eax, edx
and eax, 0xff0000
imul eax, esi
bswap edi
imul edi, esi
and eax, 0xff0000ff
and edi, 0xff0000
or edi, eax
movzx eax, dl
movzx edx, word [ebp]
imul eax, esi
mov ecx, edx
and ecx, 0x7e0
and eax, 0xff00
or edi, eax
shr edi, 8
mov eax, edi
mov esi, edi
shr eax, 5
and eax, 0x7e0
shr edi, 3
add ecx, eax
shr esi, 8
mov eax, edx
shr ecx, 5
and eax, 0x1f
and edi, 0x1f
and edx, 0xf800
and esi, 0xf800
add eax, edi
add edx, esi
shr eax, 5
or ecx, eax
shr edx, 5
or ecx, edx
mov word [ebp], cx
jmp 0x449d9a
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0xac]
add ebp, 2
add dword [esp + 0x24], eax
mov eax, dword [esp + 0xa8]
add dword [esp + 0x40], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x78]
add dword [esp + 0x90], eax
add ebx, dword [esp + 0x88]
add esi, dword [esp + 0x94]
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], esi
test eax, eax
jg 0x449ac0
mov edx, dword [esp + 0x10c]
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0xe8]
add ebp, eax
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
lea ecx, [edx + edx]
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xe0]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xdc]
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xf4]
add dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xf0]
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xec]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xe4]
add dword [esp + 0x7c], ecx
add eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], ebp
mov dword [esp + 0x34], eax
test ecx, ecx
jg 0x4499a0
mov ebx, dword [esp + 0x94]
jmp 0x449e87
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x80]
sub dword [esp + 0x9c], eax
je 0x44a9f2
mov eax, dword [esp + 0x58]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + 4]
sub eax, edi
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x58]
mov eax, dword [eax]
sub eax, dword [edx]
cdq
push edx
push eax
push ecx
push esi
call fcn.0059bca0
mov eax, dword [esp + 0x80]
mov ecx, edx
shl eax, 0x10
sub eax, edi
mov dword [esp + 0x74], ecx
imul ecx
mov ecx, eax
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x58]
mov eax, dword [edx]
add ecx, eax
cmp dword [esp + 0x84], eax
jge 0x44a487
mov esi, dword [esp + 0x9c]
test esi, esi
jle 0x44a9f2
mov eax, dword [esp + 0xac]
cdq
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xf8], edx
cdq
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xd4], edx
cdq
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xcc], edx
cdq
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc4], edx
cdq
mov dword [esp + 0xb8], eax
mov eax, ebx
mov dword [esp + 0xbc], edx
cdq
mov dword [esp + 0x98], eax
lea eax, [ecx + 0xffff]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x4c], eax
push dword [esp + 0xf8]
lea ebx, [ebp + 0xffff]
dec esi
push dword [esp + 0xdc]
and ebx, 0xffff0000
mov dword [esp + 0xa4], esi
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0xd4]
mov ebp, eax
push dword [esp + 0xd4]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x68]
push edi
mov dword [esp + 0x38], ebp
call fcn.0059bca0
push dword [esp + 0xcc]
mov ebp, eax
push dword [esp + 0xcc]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x6c]
push edi
mov dword [esp + 0x3c], ebp
call fcn.0059bca0
push dword [esp + 0xc4]
mov ebp, eax
push dword [esp + 0xc4]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x70]
push edi
mov dword [esp + 0x34], ebp
call fcn.0059bca0
push dword [esp + 0xbc]
mov ebp, eax
push dword [esp + 0xbc]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x74]
push edi
mov dword [esp + 0x50], ebp
call fcn.0059bca0
push dword [esp + 0xb4]
mov ebp, eax
push dword [esp + 0x9c]
shrd ebp, edx, 0x10
push esi
add ebp, dword [esp + 0x78]
push edi
call fcn.0059bca0
mov esi, eax
mov ecx, ebx
mov eax, dword [esp + 0x4c]
shrd esi, edx, 0x10
mov edx, dword [esp + 0x20]
sub eax, ebx
sar ecx, 0x10
add esi, 0xffff8000
sar eax, 0x10
lea ecx, [edx + ecx*2]
mov dword [esp + 0x80], ecx
test eax, eax
jle 0x44a406
add esi, dword [esp + 0x7c]
lea ebx, [ebp - 0x8000]
mov dword [esp + 0x44], esi
mov dword [esp + 0x78], ebx
mov edx, dword [esp + 0xb0]
dec eax
mov dword [esp + 0x70], eax
test ebx, ebx
jle 0x44a0ed
mov ecx, ebx
mov dword [esp + 0x34], ebx
lea eax, [edx - 1]
sar ecx, 0x10
xor edi, edi
cmp ecx, eax
mov eax, edi
setl al
mov dword [esp + 0x38], eax
mov edi, eax
jmp 0x44a0f5
xor eax, eax
xor edi, edi
mov dword [esp + 0x34], eax
test esi, esi
jle 0x44a115
mov eax, dword [esp + 0xfc]
mov ecx, esi
sar ecx, 0x10
dec eax
xor ebp, ebp
cmp ecx, eax
mov ecx, esi
cmovl ebp, edx
mov dword [esp + 0x54], ebp
jmp 0x44a11b
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x34]
sar eax, 0x10
mov ebp, dword [esp + 0x30]
sar ecx, 0x10
imul ecx, edx
add ecx, eax
mov dword [esp + 0x18], ecx
lea eax, [ecx + edi]
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
add eax, ecx
mov ecx, ebx
and ecx, 0xfffe
mov ebx, 0x10000
inc ecx
mov edx, dword [ebp + eax*4]
add eax, edi
mov edi, 0x10000
sub edi, ecx
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x1c], eax
mov eax, esi
and eax, 0xfffe
mov esi, edi
inc eax
sub ebx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
imul edi, dword [esp + 0x10]
imul esi, ebx
imul ebx, ecx
mov eax, dword [ebp + eax*4]
mov ebp, dword [esp + 0x84]
shr eax, 0x18
shr esi, 0x10
imul esi, eax
mov eax, ebp
shr eax, 0x18
and ebp, 0xff0000
shr ebx, 0x10
imul ebx, eax
mov eax, edx
shr eax, 0x18
shr edi, 0x10
imul edi, eax
mov eax, dword [esp + 0x10]
imul eax, ecx
shr ebx, 0x10
imul ebp, ebx
shr edi, 0x10
shr esi, 0x10
mov dword [esp + 0x10], eax
mov ecx, eax
mov eax, dword [esp + 0x1c]
shr eax, 0x18
shr ecx, 0x10
imul ecx, eax
mov eax, dword [esp + 0x1c]
and eax, 0xff0000
mov dword [esp + 0x38], ebx
shr ecx, 0x10
imul eax, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
mov eax, edx
mov ecx, dword [esp + 0x14]
and eax, 0xff0000
imul eax, edi
add ecx, eax
mov eax, dword [esp + 0x30]
add ecx, ebp
mov ebp, dword [esp + 0x18]
mov eax, dword [eax + ebp*4]
and eax, 0xff0000
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x1c]
and ecx, 0xff0000ff
mov dword [esp + 0x14], ecx
movzx ecx, al
imul ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x30]
movzx eax, dl
and edx, 0xff00
imul eax, edi
imul edx, edi
add ecx, eax
mov eax, dword [esp + 0x84]
movzx eax, al
imul eax, ebx
mov ebx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [ebp + ebx*4]
movzx eax, al
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x84]
and ecx, 0xff00
and eax, 0xff00
or dword [esp + 0x14], ecx
imul eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
and ecx, 0xff00
imul ecx, dword [esp + 0x10]
add ecx, edx
mov edx, ebp
add ecx, eax
mov ebp, ebx
mov eax, dword [edx + ebp*4]
and eax, 0xff00
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x14]
and ecx, 0xff0000
or eax, ecx
shr eax, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
add eax, edi
add eax, dword [esp + 0x38]
add eax, esi
shl eax, 0x18
bswap eax
cmp eax, 8
jbe 0x44a39f
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov eax, dword [esp + 0x40]
and ecx, 0xff00
mov edi, dword [esp + 0x24]
shr eax, 0x10
mov esi, dword [esp + 0x28]
movzx edx, bl
and ebx, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x2c]
shr eax, 0x10
imul ebx, eax
shr edi, 0x10
imul edi, ecx
and edx, 0xff00
mov ebp, dword [esp + 0x80]
shr esi, 0x10
or edx, ebx
shr edx, 8
and edi, 0xff0000
mov eax, edx
and eax, 0xff0000
imul eax, esi
bswap edi
imul edi, esi
and eax, 0xff0000ff
and edi, 0xff0000
or edi, eax
movzx eax, dl
movzx edx, word [ebp]
imul eax, esi
mov ecx, edx
and ecx, 0x7e0
and eax, 0xff00
or edi, eax
shr edi, 8
mov eax, edi
mov esi, edi
shr eax, 5
and eax, 0x7e0
shr edi, 3
add ecx, eax
shr esi, 8
mov eax, edx
shr ecx, 5
and eax, 0x1f
and edi, 0x1f
and edx, 0xf800
and esi, 0xf800
add eax, edi
add edx, esi
shr eax, 5
or ecx, eax
shr edx, 5
or ecx, edx
mov word [ebp], cx
jmp 0x44a3a6
mov ebp, dword [esp + 0x80]
mov eax, dword [esp + 0xac]
add ebp, 2
add dword [esp + 0x28], eax
mov eax, dword [esp + 0xa8]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x44]
add dword [esp + 0x40], eax
add ebx, dword [esp + 0x88]
add esi, dword [esp + 0x94]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x80], ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x44], esi
test eax, eax
jg 0x44a0c0
mov ecx, dword [esp + 0x10c]
mov eax, dword [esp + 0x74]
add dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x48]
add ebp, dword [esp + 0xe8]
lea eax, [ecx + ecx]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0xe0]
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0xdc]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0xf4]
add dword [esp + 0x64], eax
mov eax, dword [esp + 0xf0]
add dword [esp + 0x68], eax
mov eax, dword [esp + 0xec]
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0xe4]
add dword [esp + 0x7c], eax
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x48], ebp
test esi, esi
jg 0x449fa1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
jle 0x44a9f2
mov esi, dword [esp + 0x9c]
test esi, esi
jle 0x44a9f2
mov eax, dword [esp + 0xac]
cdq
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xf8], edx
cdq
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xd4], edx
cdq
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xcc], edx
cdq
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc4], edx
cdq
mov dword [esp + 0xb8], eax
mov eax, ebx
mov dword [esp + 0xbc], edx
cdq
mov dword [esp + 0x98], eax
lea eax, [ecx + 0xffff]
mov dword [esp + 0xb4], edx
mov dword [esp + 0x70], eax
push dword [esp + 0xf8]
mov ebx, eax
dec esi
push dword [esp + 0xdc]
and ebx, 0xffff0000
mov dword [esp + 0xa4], esi
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0xd4]
shrd eax, edx, 0x10
push dword [esp + 0xd4]
add eax, dword [esp + 0x64]
push esi
push edi
mov dword [esp + 0x90], eax
call fcn.0059bca0
push dword [esp + 0xcc]
shrd eax, edx, 0x10
push dword [esp + 0xcc]
add eax, dword [esp + 0x68]
push esi
push edi
mov dword [esp + 0x38], eax
call fcn.0059bca0
push dword [esp + 0xc4]
shrd eax, edx, 0x10
push dword [esp + 0xc4]
add eax, dword [esp + 0x6c]
push esi
push edi
mov dword [esp + 0x3c], eax
call fcn.0059bca0
push dword [esp + 0xbc]
shrd eax, edx, 0x10
push dword [esp + 0xbc]
add eax, dword [esp + 0x70]
push esi
push edi
mov dword [esp + 0x34], eax
call fcn.0059bca0
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x74]
push esi
push edi
mov dword [esp + 0x48], eax
call fcn.0059bca0
mov esi, eax
mov ecx, ebx
shrd esi, edx, 0x10
mov edx, dword [esp + 0x20]
mov eax, ebp
sub eax, ebx
sar ecx, 0x10
add eax, 0xffff
add esi, 0xffff8000
sar eax, 0x10
lea ecx, [edx + ecx*2]
mov dword [esp + 0x84], ecx
test eax, eax
jle 0x44a97c
add esi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x38]
add ebp, 0xffff8000
mov dword [esp + 0x44], esi
mov dword [esp + 0x78], ebp
mov edx, dword [esp + 0xb0]
dec eax
mov dword [esp + 0x40], eax
test ebp, ebp
jle 0x44a66f
mov ecx, ebp
mov dword [esp + 0x34], ebp
xor ebx, ebx
sar ecx, 0x10
lea eax, [edx - 1]
cmp ecx, eax
setl bl
mov dword [esp + 0x38], ebx
mov edi, ebx
jmp 0x44a677
xor eax, eax
xor edi, edi
mov dword [esp + 0x34], eax
xor ebx, ebx
test esi, esi
jle 0x44a697
mov eax, dword [esp + 0xfc]
mov ecx, esi
sar ecx, 0x10
dec eax
cmp ecx, eax
cmovl ebx, edx
mov dword [esp + 0x54], ebx
mov ebx, esi
jmp 0x44a69b
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
sar eax, 0x10
sar ebx, 0x10
imul ebx, edx
add ebx, eax
mov dword [esp + 0x14], ebx
lea eax, [ebx + edi]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x54]
add eax, ebx
mov dword [esp + 0x34], edx
mov ebx, dword [ecx + eax*4]
add eax, edi
mov edi, 0x10000
mov eax, dword [ecx + eax*4]
mov ecx, ebp
mov dword [esp + 0x1c], eax
and ecx, 0xfffe
inc ecx
mov eax, esi
and eax, 0xfffe
mov dword [esp + 0x38], ecx
inc eax
sub edi, ecx
mov ecx, dword [esp + 0x14]
mov esi, edi
mov dword [esp + 0x10], eax
mov ebp, 0x10000
imul edi, dword [esp + 0x10]
sub ebp, eax
mov eax, dword [esp + 0x30]
imul esi, ebp
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
imul ebp, ecx
shr eax, 0x18
shr esi, 0x10
imul esi, eax
mov eax, edx
shr eax, 0x18
and edx, 0xff0000
shr ebp, 0x10
imul ebp, eax
mov eax, ebx
shr eax, 0x18
shr edi, 0x10
imul edi, eax
mov eax, dword [esp + 0x10]
imul eax, ecx
shr ebp, 0x10
imul edx, ebp
shr edi, 0x10
shr esi, 0x10
mov dword [esp + 0x10], eax
mov ecx, eax
mov eax, dword [esp + 0x1c]
shr ecx, 0x10
shr eax, 0x18
imul ecx, eax
mov eax, dword [esp + 0x1c]
and eax, 0xff0000
mov dword [esp + 0x38], ebp
mov dword [esp + 0x54], edi
shr ecx, 0x10
imul eax, ecx
mov dword [esp + 0x10], ecx
mov ecx, ebx
and ecx, 0xff0000
imul ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x30]
add eax, edx
mov edx, dword [esp + 0x14]
mov ecx, dword [ecx + edx*4]
and ecx, 0xff0000
imul ecx, esi
add eax, ecx
mov ecx, dword [esp + 0x1c]
and eax, 0xff0000ff
movzx edx, cl
imul edx, dword [esp + 0x10]
movzx ecx, bl
and ebx, 0xff00
imul ecx, edi
mov edi, dword [esp + 0x14]
imul ebx, dword [esp + 0x54]
add edx, ecx
mov ecx, dword [esp + 0x34]
movzx ecx, cl
imul ecx, ebp
mov ebp, dword [esp + 0x30]
add edx, ecx
mov ecx, dword [ebp + edi*4]
movzx ecx, cl
imul ecx, esi
add edx, ecx
mov ecx, dword [esp + 0x1c]
and ecx, 0xff00
and edx, 0xff00
imul ecx, dword [esp + 0x10]
or eax, edx
mov edx, ebp
add ecx, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x1c]
and ecx, 0xff00
imul ecx, dword [esp + 0x38]
add ebx, ecx
mov ecx, dword [edx + edi*4]
and ecx, 0xff00
imul ecx, esi
add ebx, ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x54]
and ebx, 0xff0000
add ecx, dword [esp + 0x38]
or eax, ebx
add ecx, esi
shr eax, 8
shl ecx, 0x18
bswap ecx
cmp ecx, 8
jbe 0x44a90e
mov ecx, dword [esp + 0x24]
mov edx, eax
mov edi, dword [esp + 0x2c]
and edx, 0xff00
movzx ebx, al
and eax, 0xff0000
mov esi, dword [esp + 0x80]
shr ecx, 0x10
imul ebx, ecx
mov ecx, dword [esp + 0x28]
shr ecx, 0x10
imul eax, ecx
shr edi, 0x10
imul edi, edx
and ebx, 0xff00
shr esi, 0x10
or ebx, eax
shr ebx, 8
and edi, 0xff0000
mov eax, ebx
and eax, 0xff0000
imul eax, esi
bswap edi
imul edi, esi
and eax, 0xff0000ff
and edi, 0xff0000
or edi, eax
movzx eax, bl
mov ebx, dword [esp + 0x84]
imul eax, esi
movzx edx, word [ebx]
mov ecx, edx
and eax, 0xff00
and ecx, 0x7e0
or edi, eax
shr edi, 8
mov eax, edi
mov esi, edi
shr eax, 5
and eax, 0x7e0
shr edi, 3
add ecx, eax
shr esi, 8
mov eax, edx
shr ecx, 5
and eax, 0x1f
and edi, 0x1f
and edx, 0xf800
and esi, 0xf800
add eax, edi
add edx, esi
shr eax, 5
or ecx, eax
shr edx, 5
or ecx, edx
mov word [ebx], cx
jmp 0x44a915
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0xac]
add ebx, 2
add dword [esp + 0x80], eax
mov eax, dword [esp + 0xa8]
add dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa0]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x44]
add dword [esp + 0x24], eax
add ebp, dword [esp + 0x88]
add esi, dword [esp + 0x94]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x44], esi
test eax, eax
jg 0x44a644
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x10c]
mov eax, dword [esp + 0x70]
add ebp, dword [esp + 0xe8]
add eax, dword [esp + 0x74]
mov esi, dword [esp + 0x9c]
lea ecx, [edx + edx]
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xe0]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xdc]
add dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xf4]
add dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xf0]
add dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xec]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xe4]
add dword [esp + 0x7c], ecx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x70], eax
test esi, esi
jg 0x44a525
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret