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

Disassembly:
sub esp, 0xd0
mov eax, dword [esp + 0xe0]
shr dword [esp + 0xdc], 1
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0xe0]
mov edx, esi
mov dword [esp + 0x94], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [esp + 0xd0], ecx
lea ebx, [esi + 0x40]
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0x24]
push edi
lea edi, [esi + 0x20]
mov dword [esp + 0xd8], eax
mov eax, dword [esi + 0x44]
cmovle edx, edi
cmovle edi, esi
mov esi, ebx
mov ebp, edi
mov dword [esp + 0x24], ebp
cmp dword [edx + 4], eax
mov eax, dword [edi + 4]
cmovle ebx, edx
cmovg esi, edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x94], ebx
cmp eax, dword [ebx + 4]
jle 0x445b86
mov ebp, ebx
mov dword [esp + 0x24], ebx
mov ebx, edi
mov dword [esp + 0x94], edi
mov edi, dword [ebp + 4]
mov edx, dword [esi + 4]
mov dword [esp + 0x44], edi
lea ecx, [edi + 0xffff]
lea eax, [edx + 0xffff]
sar ecx, 0x10
sar eax, 0x10
mov dword [esp + 0x30], ecx
mov dword [esp + 0xa4], eax
cmp ecx, eax
je 0x446f36
mov ebx, dword [ebx + 4]
sub edx, edi
lea eax, [ebx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x60], 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 + 0x70]
mov esi, edx
push esi
push edi
mov dword [esp + 0x1c], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
mov ebp, edx
push esi
push edi
mov dword [esp + 0xe4], ebp
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 8]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push esi
mov dword [esp + 0xd4], edx
push edi
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0xc]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push esi
mov dword [esp + 0xd0], edx
push edi
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x34], ecx
mov eax, dword [eax + 0x10]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push esi
mov dword [esp + 0xcc], edx
push edi
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x48], ecx
mov eax, dword [eax + 0x14]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc4], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x70]
push esi
push edi
mov dword [esp + 0xb0], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push esi
mov dword [esp + 0xc0], edx
push edi
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0x1c]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov esi, dword [esp + 0x44]
sub ebx, esi
mov dword [esp + 0xc0], edx
mov eax, ebx
cdq
mov ecx, eax
mov ebx, edx
push ebx
mov eax, ebp
mov dword [esp + 0x3c], ecx
cdq
push ecx
mov edi, edx
mov dword [esp + 0x3c], ebx
push edi
push eax
mov dword [esp + 0x78], eax
call fcn.0059bca0
mov ebx, dword [esp + 0x94]
mov ecx, eax
mov ebp, dword [esp + 0x14]
shrd ecx, edx, 0x10
mov eax, dword [ebx]
add ecx, ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x90], eax
cmp eax, ecx
je 0x446f36
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, esi
cdq
mov ecx, edx
mov dword [esp + 0x1c], eax
push ecx
push eax
push edi
push dword [esp + 0x74]
mov dword [esp + 0x28], ecx
call fcn.0059bca0
push dword [esp + 0x18]
shrd eax, edx, 0x10
push dword [esp + 0x20]
add eax, ebp
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xd8]
cdq
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x18]
shrd eax, edx, 0x10
push dword [esp + 0x20]
add eax, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xd4]
cdq
mov ebp, edx
mov dword [esp + 0x2c], eax
push ebp
push eax
call fcn.0059bca0
push dword [esp + 0x18]
shrd eax, edx, 0x10
push dword [esp + 0x20]
add eax, dword [esp + 0x30]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xd0]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x7c], eax
call fcn.0059bca0
push dword [esp + 0x18]
shrd eax, edx, 0x10
push dword [esp + 0x20]
add eax, dword [esp + 0x34]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xcc]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], eax
call fcn.0059bca0
push dword [esp + 0x18]
shrd eax, edx, 0x10
push dword [esp + 0x20]
add eax, dword [esp + 0x48]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xc4]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0xa8]
mov dword [esp + 0x5c], eax
push dword [esp + 0x18]
mov eax, dword [esp + 0xc4]
push dword [esp + 0x20]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
mov eax, dword [ebx]
sub eax, dword [esp + 0x44]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push dword [esp + 0x34]
mov dword [esp + 0x14], eax
push dword [esp + 0x3c]
mov dword [esp + 0x70], edx
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x68]
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 8]
push dword [esp + 0x14]
cdq
shrd ecx, esi, 0x10
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x28]
sar esi, 0x10
sub ebx, ecx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x34]
mov dword [esp + 0xa0], edx
push dword [esp + 0x3c]
push ebp
push dword [esp + 0x30]
call fcn.0059bca0
mov ebp, dword [esp + 0x68]
mov ecx, eax
mov eax, dword [esp + 0x94]
mov esi, edx
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0xc]
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 dword [esp + 0x34]
mov dword [esp + 0xa4], edx
push dword [esp + 0x3c]
push dword [esp + 0x74]
push dword [esp + 0x80]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x94]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x10]
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 + 0x34]
mov dword [esp + 0x70], edx
push dword [esp + 0x3c]
push dword [esp + 0x80]
push dword [esp + 0x88]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x94]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x14]
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 + 0x34]
mov dword [esp + 0x28], edx
push dword [esp + 0x3c]
push dword [esp + 0x88]
push dword [esp + 0x90]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x94]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x18]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0xb0]
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 + 0x34]
mov dword [esp + 0x44], edx
push dword [esp + 0x3c]
push dword [esp + 0x90]
push dword [esp + 0x98]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
shrd ecx, esi, 0x10
mov eax, dword [esp + 0x94]
sar esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
cdq
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x6c]
sub ebx, ecx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
mov ecx, dword [esp + 0x30]
mov ebx, edx
imul ecx, dword [esp + 0xec]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x68], ebx
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
je 0x4467f2
push dword [esp + 0x34]
mov ebp, dword [esp + 0x94]
mov eax, ebp
push dword [esp + 0x3c]
sub eax, dword [esp + 0x1c]
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 + 0x20]
mov dword [esp + 0xb0], eax
cdq
push edx
push eax
call fcn.0059bca0
mov esi, eax
shrd esi, edx, 0x10
add esi, dword [esp + 0x14]
cmp dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x3c]
jge 0x44647a
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x4467f6
mov eax, dword [esp + 0x9c]
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, ebx
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0xb8], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0xb4], edx
lea edx, [ebp + 0xffff]
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], edx
mov ebx, edx
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x2c], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x98]
push dword [esp + 0x98]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x58]
mov dword [esp + 0x2c], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x60]
mov dword [esp + 0x48], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0xbc]
add eax, dword [esp + 0x64]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xbc]
shrd eax, edx, 0x10
push dword [esp + 0xc4]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x38], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x20]
mov esi, eax
shrd esi, edx, 0x10
mov edx, dword [esp + 0x10]
mov eax, ebx
add esi, dword [esp + 0x58]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x30], esi
lea ecx, [edx + eax*2]
mov dword [esp + 0x14], ecx
test ebp, ebp
jle 0x4463ec
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x98]
nop
mov ebx, esi
shr eax, 0x10
shr ebx, 0x10
dec ebp
imul ebx, edi
add ebx, eax
cmp ebx, dword [esp + 0xd4]
jae 0x446391
mov eax, dword [esp + 0xd8]
mov ebx, dword [eax + ebx*4]
mov eax, ebx
shr eax, 0x18
cmp eax, 8
jbe 0x446391
mov esi, dword [esp + 0x1c]
mov ecx, ebx
shr esi, 0x10
and ecx, 0xff0000
imul esi, eax
mov eax, dword [esp + 0x34]
shr eax, 0x10
movzx edx, bl
and ebx, 0xff00
imul edx, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
imul ecx, eax
mov eax, dword [esp + 0x38]
shr eax, 0x10
and edx, 0xff00
imul ebx, eax
mov eax, dword [esp + 0x14]
or edx, ecx
shr esi, 8
shr edx, 8
mov edi, edx
movzx ecx, dl
and ebx, 0xff0000
imul ecx, esi
and edi, 0xff0000
imul edi, esi
bswap ebx
imul ebx, esi
movzx esi, word [eax]
mov edx, esi
shr ecx, 0xb
mov eax, esi
shr edi, 0x10
and edx, 0x7e0
and ecx, 0x1f
shr ebx, 0xd
and eax, 0x1f
and ebx, 0x7e0
and esi, 0xf800
add edx, ebx
and edi, 0xf800
add eax, ecx
shr edx, 5
mov ecx, dword [esp + 0x14]
add esi, edi
mov edi, dword [esp + 0x98]
shr eax, 5
or edx, eax
shr esi, 5
or edx, esi
mov esi, dword [esp + 0x30]
mov word [ecx], dx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
add ecx, 2
add eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x68]
add esi, ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0xa0]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x24]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], esi
test ebp, ebp
jg 0x4462a0
jmp 0x4463f0
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0xec]
mov eax, dword [esp + 0xa8]
add dword [esp + 0x20], eax
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
lea eax, [ecx + ecx]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0xd0]
add dword [esp + 0x48], eax
mov eax, dword [esp + 0xcc]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc8]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xc4]
add dword [esp + 0x54], eax
mov eax, dword [esp + 0xbc]
add dword [esp + 0x5c], eax
add ebp, dword [esp + 0xdc]
add edx, dword [esp + 0xdc]
mov eax, dword [esp + 0xc0]
add dword [esp + 0x58], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], edx
test ecx, ecx
jg 0x446191
jmp 0x4467f6
jle 0x4467f6
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x4467f6
mov eax, dword [esp + 0x9c]
cdq
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb0], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x74], eax
lea eax, [ebp + 0xffff]
mov dword [esp + 0x34], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x78], edx
mov dword [esp + 0x64], eax
nop dword [eax]
mov ebx, eax
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x2c], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xc0]
push dword [esp + 0xc0]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0xb8]
add eax, dword [esp + 0x58]
mov dword [esp + 0x38], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x98]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x60]
mov dword [esp + 0x2c], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x48], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x34]
mov esi, eax
shrd esi, edx, 0x10
mov edx, dword [esp + 0x10]
mov eax, ebx
add esi, dword [esp + 0x58]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x30], esi
lea ecx, [edx + eax*2]
mov dword [esp + 0x20], ecx
test ebp, ebp
jle 0x44676c
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x98]
nop
mov ebx, esi
shr eax, 0x10
shr ebx, 0x10
dec ebp
imul ebx, edi
add ebx, eax
cmp ebx, dword [esp + 0xd4]
jae 0x446711
mov eax, dword [esp + 0xd8]
mov ebx, dword [eax + ebx*4]
mov eax, ebx
shr eax, 0x18
cmp eax, 8
jbe 0x446711
mov esi, dword [esp + 0x28]
mov ecx, ebx
shr esi, 0x10
and ecx, 0xff0000
imul esi, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
movzx edx, bl
and ebx, 0xff00
imul edx, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
imul ecx, eax
mov eax, dword [esp + 0x1c]
shr eax, 0x10
and edx, 0xff00
imul ebx, eax
mov eax, dword [esp + 0x20]
or edx, ecx
shr esi, 8
shr edx, 8
mov edi, edx
movzx ecx, dl
and ebx, 0xff0000
imul ecx, esi
and edi, 0xff0000
imul edi, esi
bswap ebx
imul ebx, esi
movzx esi, word [eax]
mov edx, esi
shr ecx, 0xb
mov eax, esi
shr edi, 0x10
and edx, 0x7e0
and ecx, 0x1f
shr ebx, 0xd
and eax, 0x1f
and ebx, 0x7e0
and esi, 0xf800
add edx, ebx
and edi, 0xf800
add eax, ecx
shr edx, 5
mov ecx, dword [esp + 0x20]
add esi, edi
mov edi, dword [esp + 0x98]
shr eax, 5
or edx, eax
shr esi, 5
or edx, esi
mov esi, dword [esp + 0x30]
mov word [ecx], dx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x28]
add ecx, 2
add eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x68]
add esi, ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0xa0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
add eax, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], esi
test ebp, ebp
jg 0x446620
jmp 0x446770
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0xec]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0xdc]
add ebp, eax
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
lea ecx, [edx + edx]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xc0]
add dword [esp + 0x58], ecx
add eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], eax
test ecx, ecx
jg 0x446510
jmp 0x4467f6
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x60]
sub dword [esp + 0xa4], eax
je 0x446f36
mov eax, dword [esp + 0x94]
mov edi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x70]
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 + 0x70]
mov eax, dword [eax]
sub eax, dword [esp + 0x30]
cdq
push edx
push eax
push ecx
push esi
call fcn.0059bca0
mov eax, dword [esp + 0x60]
mov ecx, edx
shl eax, 0x10
sub eax, edi
mov dword [esp + 0x64], ecx
imul ecx
mov esi, eax
mov eax, dword [esp + 0x30]
shrd esi, edx, 0x10
add esi, eax
cmp dword [esp + 0x44], eax
jge 0x446bdf
mov ecx, dword [esp + 0xa4]
test ecx, ecx
jle 0x446f36
mov eax, dword [esp + 0x9c]
add esi, 0xffff
cdq
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb0], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x18], esi
nop dword [eax]
nop dword [eax + eax]
lea ebx, [ebp + 0xffff]
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0xa4], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xc0]
push dword [esp + 0xc0]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0xb8]
add eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x98]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x38], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x64]
mov dword [esp + 0x3c], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], eax
call fcn.0059bca0
mov esi, eax
mov ecx, ebx
mov eax, dword [esp + 0x58]
shrd esi, edx, 0x10
mov edx, dword [esp + 0x10]
sar ecx, 0x10
add esi, eax
mov dword [esp + 0x30], esi
lea edx, [edx + ecx*2]
mov ecx, dword [esp + 0x18]
mov ebp, ecx
mov dword [esp + 0x60], edx
sub ebp, ebx
sar ebp, 0x10
test ebp, ebp
jle 0x446b5e
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x98]
mov ecx, esi
shr eax, 0x10
shr ecx, 0x10
dec ebp
imul ecx, ebx
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x446b0d
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax + ecx*4]
mov eax, ecx
shr eax, 0x18
mov dword [esp + 0x44], ecx
cmp eax, 8
jbe 0x446b0d
mov ebx, dword [esp + 0x20]
movzx edx, cl
and ecx, 0xff0000
shr ebx, 0x10
imul ebx, eax
mov eax, dword [esp + 0x2c]
shr eax, 0x10
imul edx, eax
mov eax, dword [esp + 0x28]
shr eax, 0x10
imul ecx, eax
mov eax, dword [esp + 0x14]
and edx, 0xff00
shr eax, 0x10
shr ebx, 8
or edx, ecx
mov ecx, dword [esp + 0x44]
and ecx, 0xff00
shr edx, 8
imul ecx, eax
mov edi, edx
mov eax, dword [esp + 0x60]
and edi, 0xff0000
movzx esi, dl
imul edi, ebx
imul esi, ebx
movzx edx, word [eax]
and ecx, 0xff0000
bswap ecx
imul ecx, ebx
mov eax, edx
mov ebx, dword [esp + 0x98]
and eax, 0x7e0
shr edi, 0x10
shr esi, 0xb
and edi, 0xf800
and esi, 0x1f
shr ecx, 0xd
and ecx, 0x7e0
mov dword [esp + 0x44], ecx
mov ecx, edx
add eax, dword [esp + 0x44]
and ecx, 0xf800
and edx, 0x1f
shr eax, 5
add ecx, edi
add edx, esi
mov esi, dword [esp + 0x30]
shr ecx, 5
shr edx, 5
or ecx, eax
or ecx, edx
mov edx, dword [esp + 0x60]
mov word [edx], cx
mov eax, dword [esp + 0x9c]
add edx, 2
add dword [esp + 0x20], eax
mov eax, dword [esp + 0xa0]
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x40]
add esi, dword [esp + 0x68]
mov dword [esp + 0x60], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], esi
test ebp, ebp
jg 0x446a15
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xec]
mov ebp, dword [esp + 0x3c]
add ebp, dword [esp + 0xdc]
add eax, dword [esp + 0xc0]
mov dword [esp + 0x18], ecx
lea ecx, [edx + edx]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x58], eax
test ecx, ecx
jg 0x446900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret
jle 0x446f36
mov ecx, dword [esp + 0xa4]
test ecx, ecx
jle 0x446f36
mov eax, dword [esp + 0x9c]
cdq
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb0], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x78], edx
lea edx, [esi + 0xffff]
mov dword [esp + 0x74], eax
mov dword [esp + 0xa8], edx
nop
mov ebx, edx
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0xa4], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xc0]
push dword [esp + 0xc0]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0xb8]
add eax, dword [esp + 0x58]
mov dword [esp + 0x70], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x98]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x30], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x60]
mov dword [esp + 0x38], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
call fcn.0059bca0
mov esi, eax
mov ecx, ebx
mov eax, dword [esp + 0x58]
sub ebp, ebx
shrd esi, edx, 0x10
mov edx, dword [esp + 0x10]
add ebp, 0xffff
sar ecx, 0x10
add esi, eax
sar ebp, 0x10
mov dword [esp + 0x30], esi
lea edx, [edx + ecx*2]
mov dword [esp + 0x44], edx
test ebp, ebp
jle 0x446eb6
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x98]
mov ecx, esi
shr eax, 0x10
shr ecx, 0x10
dec ebp
imul ecx, ebx
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x446e69
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + ecx*4]
mov ecx, eax
shr ecx, 0x18
cmp ecx, 8
jbe 0x446e69
mov esi, dword [esp + 0x60]
mov edx, eax
shr esi, 0x10
and edx, 0xff0000
imul esi, ecx
mov ecx, dword [esp + 0x14]
movzx ebx, al
and eax, 0xff00
shr ecx, 0x10
imul ebx, ecx
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
imul edx, ecx
mov ecx, dword [esp + 0x28]
shr ecx, 0x10
and ebx, 0xff00
imul eax, ecx
shr esi, 8
or ebx, edx
shr ebx, 8
mov edi, ebx
movzx ecx, bl
mov ebx, dword [esp + 0x44]
and eax, 0xff0000
bswap eax
imul eax, esi
and edi, 0xff0000
imul edi, esi
imul ecx, esi
movzx esi, word [ebx]
mov edx, esi
shr eax, 0xd
and edx, 0x7e0
and eax, 0x7e0
shr edi, 0x10
add edx, eax
shr ecx, 0xb
mov eax, esi
shr edx, 5
and eax, 0x1f
and ecx, 0x1f
and esi, 0xf800
and edi, 0xf800
add eax, ecx
add esi, edi
shr eax, 5
or edx, eax
shr esi, 5
or edx, esi
mov esi, dword [esp + 0x30]
mov word [ebx], dx
mov edx, ebx
mov ebx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
add edx, 2
add dword [esp + 0x60], eax
mov eax, dword [esp + 0xa0]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x40]
add esi, dword [esp + 0x68]
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], esi
test ebp, ebp
jg 0x446d81
mov eax, dword [esp + 0x58]
mov ebx, dword [esp + 0xec]
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0xa8]
add ebp, dword [esp + 0xdc]
add edx, dword [esp + 0x64]
lea ecx, [ebx + ebx]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x5c], ecx
add eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0xa8], edx
mov dword [esp + 0x58], eax
test ecx, ecx
jg 0x446c70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret