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

Disassembly:
sub esp, 0xf0
shr edx, 1
mov dword [esp + 0xd4], edx
mov edx, dword [ecx + 0x10]
push ebx
mov dword [esp + 0xe8], edx
mov edx, dword [ecx + 0x14]
mov ecx, dword [ecx]
push ebp
push edi
mov dword [esp + 0xf8], edx
mov edx, dword [eax + 4]
cmp edx, dword [eax + 0x24]
lea edi, [eax + 0x20]
lea ebp, [eax + 0x40]
mov dword [esp + 0xf4], ecx
mov ebx, eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x78], ebp
jle 0x4e18af
mov ebx, edi
mov dword [esp + 0x64], eax
mov edi, eax
mov eax, dword [edi + 4]
cmp eax, dword [ebp + 4]
jle 0x4e18c5
mov dword [esp + 0x78], edi
mov dword [esp + 0x64], ebp
mov edi, ebp
mov ebp, dword [esp + 0x78]
mov ecx, dword [ebx + 4]
cmp ecx, dword [edi + 4]
jle 0x4e18d7
mov eax, ebx
mov ebx, edi
mov dword [esp + 0x64], eax
mov edi, eax
mov edx, dword [ebx + 8]
imul edx, dword [esi]
shr edx, 8
mov dword [ebx + 8], edx
mov eax, dword [esi + 4]
imul eax, dword [ebx + 0xc]
shr eax, 8
mov dword [ebx + 0xc], eax
mov ecx, dword [esi + 8]
imul ecx, dword [ebx + 0x10]
shr ecx, 8
mov dword [ebx + 0x10], ecx
mov edx, dword [esi + 0xc]
imul edx, dword [ebx + 0x14]
shr edx, 8
mov dword [ebx + 0x14], edx
mov eax, dword [edi + 8]
imul eax, dword [esi]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x10]
shr eax, 8
mov dword [edi + 8], eax
imul ecx, dword [esi + 4]
shr ecx, 8
mov dword [edi + 0xc], ecx
imul edx, dword [esi + 8]
shr edx, 8
mov dword [edi + 0x10], edx
mov eax, dword [esi + 0xc]
imul eax, dword [edi + 0x14]
shr eax, 8
mov dword [edi + 0x14], eax
mov ecx, dword [ebp + 8]
imul ecx, dword [esi]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
shr ecx, 8
mov dword [ebp + 8], ecx
imul edx, dword [esi + 4]
shr edx, 8
mov dword [ebp + 0xc], edx
imul eax, dword [esi + 8]
shr eax, 8
mov dword [ebp + 0x10], eax
mov eax, dword [esi + 0xc]
imul eax, dword [ebp + 0x14]
shr eax, 8
mov dword [ebp + 0x14], eax
mov edx, dword [ebx + 4]
mov dword [esp + 0x10], eax
lea eax, [edx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + 0xffff]
sar ecx, 0x10
cmp dword [esp + 0x30], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0xb8], ecx
je 0x4e2f5a
mov ecx, dword [edi + 4]
sub eax, edx
cdq
push edx
push eax
add ecx, 0xffff
push 0x10000
sar ecx, 0x10
push 0
mov dword [esp + 0x78], ecx
call fcn.006372b0
mov ecx, edx
mov edx, dword [ebx]
mov dword [esp + 0x14], eax
mov eax, dword [ebp]
push ecx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
sub eax, edx
mov dword [esp + 0x44], edx
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [ebx + 8]
mov dword [esp + 0xe8], eax
mov eax, dword [ebp + 8]
sub eax, ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0xdc], eax
mov eax, dword [ebp + 0xc]
sub eax, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0xec], eax
mov eax, dword [ebp + 0x10]
sub eax, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [ebx + 0x14]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x10]
sub eax, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0xd4], eax
mov eax, dword [ebp + 0x18]
sub eax, ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ebx, dword [ebx + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + 0x1c]
push ecx
mov ecx, dword [esp + 0x18]
sub eax, ebx
cdq
push ecx
push edx
push eax
mov dword [esp + 0x98], ebx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov dword [esp + 0xd0], eax
mov eax, dword [edi + 4]
sub eax, dword [esp + 0xc]
cdq
mov ecx, eax
mov eax, dword [esp + 0xe8]
mov ebx, edx
push ebx
cdq
push ecx
mov ebp, eax
push edx
push ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x28], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x40]
mov ecx, dword [edi]
cmp ecx, eax
mov dword [esp + 0x6c], eax
je 0x4e2f5a
mov eax, dword [esp + 0x30]
shl eax, 0x10
sub eax, dword [esp + 0xc]
cdq
push edx
mov ebx, eax
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x1c]
push ebx
push edx
push ebp
mov dword [esp + 0x5c], ebx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x50]
mov ebp, eax
mov eax, dword [esp + 0xdc]
add ebp, dword [esp + 0x40]
cdq
push ecx
push ebx
push edx
push eax
mov dword [esp + 0x80], ebp
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xec]
cdq
push ecx
push ebx
push edx
push eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xe4]
cdq
push ecx
push ebx
push edx
push eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xd4]
cdq
push ecx
push ebx
push edx
push eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xd8]
cdq
push ecx
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
push ebx
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xd0]
cdq
push ecx
push ebx
push edx
push eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x88]
mov dword [esp + 0x44], eax
mov eax, dword [edi]
sub eax, dword [esp + 0x6c]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.006372b0
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
push eax
push ecx
push edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 8]
mov ebx, edx
cdq
sub eax, ecx
sbb edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x20]
mov ebx, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x14]
sbb ebx, edx
mov edx, dword [esp + 0x18]
push edx
push eax
push ebx
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x9c]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0xc]
mov ebx, edx
cdq
sub eax, ecx
sbb edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov ebx, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x14]
sbb ebx, edx
mov edx, dword [esp + 0x18]
push edx
push eax
push ebx
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x94]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x10]
mov ebx, edx
cdq
sub eax, ecx
sbb edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x28]
mov ebx, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x14]
sbb ebx, edx
mov edx, dword [esp + 0x18]
push edx
push eax
push ebx
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xcc]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x14]
mov ebx, edx
cdq
sub eax, ecx
sbb edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x24]
mov ebx, edx
cdq
sub ecx, eax
sbb ebx, edx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push edx
push eax
push ebx
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xc4]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x18]
mov ebx, edx
cdq
sub eax, ecx
sbb edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov ebx, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x14]
sbb ebx, edx
mov edx, dword [esp + 0x18]
push edx
push eax
push ebx
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x84]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x1c]
mov ebx, edx
cdq
sub eax, ecx
sbb edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x88]
mov ebx, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x14]
sbb ebx, edx
mov edx, dword [esp + 0x18]
push edx
push eax
push ebx
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc4], eax
mov edx, ecx
imul edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x100]
lea edx, [eax + edx*2]
mov eax, dword [esp + 0x68]
sub eax, ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x7c], eax
je 0x4e272a
mov eax, dword [edi]
sub eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
cdq
mov edi, eax
mov eax, dword [esp + 0x38]
push eax
push ecx
push 0x10000
push 0
mov ebx, edx
call fcn.006372b0
push edx
push eax
push ebx
push edi
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x14], eax
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0x64]
mov ecx, eax
mov eax, dword [edx]
mov edx, dword [esp + 0x6c]
add ecx, dword [esp + 0x40]
cmp edx, eax
jge 0x4e235b
cmp dword [esp + 0x7c], 0
jle 0x4e2726
mov eax, dword [esp + 0xb4]
cdq
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x38], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x98], edx
cdq
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xa0], edx
cdq
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x50], edx
cdq
mov dword [esp + 0x14], eax
add ecx, 0xffff
lea eax, [ebp + 0xffff]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x7c], 1
and eax, 0xffff0000
mov dword [esp + 0xc], eax
sub eax, ebp
cdq
mov ebx, edx
mov edx, dword [esp + 0x34]
push ebx
mov edi, eax
push edi
push ecx
push edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x8c]
push ebx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x94]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x58]
mov edx, dword [esp + 0x98]
push ebx
push edi
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x9c]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0xa0]
add eax, dword [esp + 0x60]
mov edx, dword [esp + 0x9c]
push ebx
push edi
push ecx
push edx
mov dword [esp + 0x4c], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x4c]
push ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x54]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
push ebx
push edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0xc]
add eax, dword [esp + 0x44]
mov edi, dword [esp + 0x30]
mov ecx, edx
sar ecx, 0x10
lea ecx, [edi + ecx*2]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x74], eax
and ecx, 0xffff0000
sub ecx, edx
sar ecx, 0x10
test ecx, ecx
jle 0x4e22e3
mov edx, dword [esp + 0x28]
shr eax, 0x10
imul eax, dword [esp + 0xf0]
shr edx, 0x10
sub ecx, 1
add eax, edx
cmp eax, dword [esp + 0xf8]
mov dword [esp + 0xc], ecx
jae 0x4e216d
mov ecx, dword [esp + 0xf4]
mov edx, dword [ecx + eax*4]
jmp 0x4e216f
xor edx, edx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x88]
mov eax, edx
and eax, 0xff0000
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 0xc]
imul eax, dword [esp + 0x24]
shr eax, 0x18
movzx ebx, dl
imul eax, ebx
mov edi, dword [esi]
imul edi, dword [esp + 0x70]
and eax, 0xff00
and ecx, 0xff0000ff
or ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x3c]
shr eax, 0x18
and edx, 0xff00
imul eax, edx
mov edx, dword [esp + 0x40]
movzx ebx, word [edx]
shr edi, 0x18
imul edi, edi, 0xff
and eax, 0xff0000
or ecx, eax
shr edi, 8
shr ecx, 8
mov edx, ebx
and edx, 0xf800
shl edx, 5
mov eax, ebx
and eax, 0x1f
or edx, eax
mov eax, ecx
and eax, 0xff00ff
imul eax, edi
add edx, edx
add edx, edx
shr eax, 8
add edx, edx
and eax, 0xff00ff
and ecx, 0xff00
imul ecx, edi
or edx, 0x70007
add edx, eax
mov eax, edx
mov edi, edx
shr edi, 8
and edi, 1
imul edi, edi, 0xff
shr eax, 0x18
and eax, 1
imul eax, eax, 0xff0000
shr ecx, 8
or eax, edi
and ebx, 0x7e0
and ecx, 0xff00
or ebx, 0x18
shl ebx, 5
add ecx, ebx
mov edi, ecx
shr edi, 0x10
and edi, 1
imul edi, edi, 0xff00
shr edi, 5
shr ecx, 5
or edi, ecx
or edx, eax
mov eax, dword [esp + 0x40]
mov ecx, edx
shr ecx, 3
and edi, 0x7e0
and ecx, 0x1f
shr edx, 8
or edi, ecx
and edx, 0xf800
or edi, edx
mov word [eax], di
add eax, 2
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xa8]
add dword [esp + 0x70], edx
add dword [esp + 0x3c], ecx
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xc]
add dword [esp + 0x24], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb0]
add dword [esp + 0x88], eax
mov eax, dword [esp + 0xbc]
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0xc4]
test ecx, ecx
mov dword [esp + 0x74], eax
jg 0x4e213d
mov eax, dword [esp + 0xe8]
add dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x10]
add dword [esp + 0x20], ecx
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
add dword [esp + 0x54], edx
add dword [esp + 0x60], ecx
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x5c], edx
add dword [esp + 0x44], ecx
add ebp, eax
mov eax, dword [esp + 0xe0]
add eax, eax
add dword [esp + 0x30], eax
mov eax, dword [esp + 0xec]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xd8]
add dword [esp + 0x48], eax
cmp dword [esp + 0x7c], 0
jg 0x4e2024
mov dword [esp + 0x70], ebp
jmp 0x4e2726
jle 0x4e2726
cmp dword [esp + 0x7c], 0
jle 0x4e2726
mov eax, dword [esp + 0xb4]
cdq
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x38], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x98], edx
cdq
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xa0], edx
cdq
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x50], edx
cdq
mov dword [esp + 0x18], edx
lea edx, [ebp + 0xffff]
add ecx, 0xffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
sub dword [esp + 0x7c], 1
and eax, 0xffff0000
mov dword [esp + 0x20], eax
sub eax, ebp
cdq
mov ebx, edx
push ebx
mov edi, eax
mov eax, dword [esp + 0x3c]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x54]
mov edx, dword [esp + 0x90]
push ebx
push edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x94]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x98]
add eax, dword [esp + 0x58]
mov edx, dword [esp + 0x94]
push ebx
push edi
push ecx
push edx
mov dword [esp + 0x38], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x9c]
push ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa4]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
push ebx
push edi
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x54]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
push ebx
push edi
push ecx
push edx
mov dword [esp + 0x98], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x30]
mov ecx, eax
add ecx, dword [esp + 0x44]
mov eax, edx
sar eax, 0x10
lea eax, [edi + eax*2]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
and eax, 0xffff0000
sub eax, edx
sar eax, 0x10
test eax, eax
jle 0x4e26b3
mov edx, dword [esp + 0x88]
shr ecx, 0x10
imul ecx, dword [esp + 0xf0]
shr edx, 0x10
add ecx, edx
sub eax, 1
cmp ecx, dword [esp + 0xf8]
jae 0x4e253b
mov edx, dword [esp + 0xf4]
mov edx, dword [edx + ecx*4]
jmp 0x4e253d
xor edx, edx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x28]
mov ebx, edx
and ebx, 0xff0000
shr ecx, 0x18
imul ecx, ebx
mov ebx, dword [esi + 0xc]
imul ebx, dword [esp + 0x3c]
movzx ebp, dl
shr ebx, 0x18
imul ebx, ebp
mov edi, dword [esi]
imul edi, dword [esp + 0x2c]
and ebx, 0xff00
and ecx, 0xff0000ff
or ecx, ebx
mov ebx, dword [esi + 8]
imul ebx, dword [esp + 0x24]
and edx, 0xff00
shr ebx, 0x18
imul ebx, edx
mov edx, dword [esp + 0x20]
shr edi, 0x18
imul edi, edi, 0xff
and ebx, 0xff0000
or ecx, ebx
movzx ebx, word [edx]
shr edi, 8
mov edx, ebx
and edx, 0xf800
shr ecx, 8
shl edx, 5
mov ebp, ebx
and ebp, 0x1f
or edx, ebp
mov ebp, ecx
and ecx, 0xff00
imul ecx, edi
and ebp, 0xff00ff
imul ebp, edi
add edx, edx
add edx, edx
and ebx, 0x7e0
shr ecx, 8
add edx, edx
or ebx, 0x18
and ecx, 0xff00
or edx, 0x70007
shl ebx, 5
add ecx, ebx
shr ebp, 8
and ebp, 0xff00ff
add edx, ebp
mov edi, edx
shr edi, 0x18
and edi, 1
imul edi, edi, 0xff0000
mov ebx, edx
shr ebx, 8
and ebx, 1
imul ebx, ebx, 0xff
or edi, ebx
or edx, edi
mov edi, ecx
shr edi, 0x10
and edi, 1
imul edi, edi, 0xff00
shr ecx, 5
shr edi, 5
or edi, ecx
mov ecx, edx
shr ecx, 3
and edi, 0x7e0
and ecx, 0x1f
shr edx, 8
or edi, ecx
mov ecx, dword [esp + 0x20]
and edx, 0xf800
or edi, edx
mov word [ecx], di
add ecx, 2
mov edx, dword [esp + 0xb4]
add dword [esp + 0x2c], edx
mov edx, dword [esp + 0xa8]
add dword [esp + 0x24], edx
mov edx, dword [esp + 0xbc]
add dword [esp + 0x88], edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xb0]
add dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xac]
add dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x74]
add ecx, dword [esp + 0xc4]
test eax, eax
mov dword [esp + 0x74], ecx
jg 0x4e250c
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0xe8]
add dword [esp + 0x40], eax
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xec]
add dword [esp + 0x54], ecx
add dword [esp + 0x58], edx
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
add dword [esp + 0x5c], ecx
add dword [esp + 0x48], edx
add ebp, eax
mov eax, dword [esp + 0x10]
add dword [esp + 0xc], eax
mov eax, dword [esp + 0xe0]
add eax, eax
add dword [esp + 0x30], eax
mov eax, dword [esp + 0xe4]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0xd0]
add dword [esp + 0x44], eax
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x70], ebp
jg 0x4e23f2
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0xb8]
sub eax, dword [esp + 0x68]
mov dword [esp + 0x7c], eax
je 0x4e2f5a
mov ecx, dword [edi + 4]
mov ebx, dword [esp + 0x78]
mov eax, dword [ebx + 4]
mov edi, dword [edi]
sub eax, ecx
cdq
push edx
push eax
push 0x10000
push 0
mov dword [esp + 0x20], ecx
call fcn.006372b0
mov ecx, eax
mov eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [ebx]
sub eax, edi
cdq
push edx
push eax
mov eax, dword [esp + 0xc0]
push eax
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, eax
mov eax, dword [esp + 0x68]
shl eax, 0x10
sub eax, dword [esp + 0x10]
mov dword [esp + 0x74], ecx
imul ecx
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [esp + 0x6c]
add ecx, edi
cmp eax, edi
jge 0x4e2b86
cmp dword [esp + 0x7c], 0
jle 0x4e2f5a
mov eax, dword [esp + 0xb4]
cdq
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x38], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x98], edx
cdq
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xa0], edx
cdq
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x50], edx
cdq
add ecx, 0xffff
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ecx
lea eax, [edx + edx]
lea ecx, [ebp + 0xffff]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
sub dword [esp + 0x7c], 1
and eax, 0xffff0000
mov dword [esp + 0xb8], eax
sub eax, ebp
cdq
mov ebx, edx
mov edx, dword [esp + 0x38]
push ebx
mov edi, eax
mov eax, dword [esp + 0x38]
push edi
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x90]
add eax, dword [esp + 0x54]
mov edx, dword [esp + 0x8c]
push ebx
push edi
push ecx
push edx
mov dword [esp + 0x78], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x94]
push ebx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x9c]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x60]
mov edx, dword [esp + 0xa0]
push ebx
push edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x50]
add eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x4c]
push ebx
push edi
push ecx
push edx
mov dword [esp + 0x30], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
push ebx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0xb8]
mov edi, dword [esp + 0x30]
mov ecx, eax
add ecx, dword [esp + 0x44]
mov eax, edx
sar eax, 0x10
lea eax, [edi + eax*2]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x24]
and eax, 0xffff0000
sub eax, edx
sar eax, 0x10
test eax, eax
jle 0x4e2b0e
mov edx, dword [esp + 0x2c]
shr ecx, 0x10
imul ecx, dword [esp + 0xf0]
shr edx, 0x10
add ecx, edx
sub eax, 1
cmp ecx, dword [esp + 0xf8]
jae 0x4e2999
mov edx, dword [esp + 0xf4]
mov edx, dword [edx + ecx*4]
jmp 0x4e299b
xor edx, edx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x78]
mov ebx, edx
and ebx, 0xff0000
shr ecx, 0x18
imul ecx, ebx
mov ebx, dword [esi + 0xc]
imul ebx, dword [esp + 0x20]
movzx ebp, dl
shr ebx, 0x18
imul ebx, ebp
mov edi, dword [esi]
imul edi, dword [esp + 0x68]
and ebx, 0xff00
and ecx, 0xff0000ff
or ecx, ebx
mov ebx, dword [esi + 8]
imul ebx, dword [esp + 0xc]
and edx, 0xff00
shr ebx, 0x18
imul ebx, edx
mov edx, dword [esp + 0x6c]
shr edi, 0x18
imul edi, edi, 0xff
and ebx, 0xff0000
or ecx, ebx
movzx ebx, word [edx]
shr edi, 8
mov edx, ebx
and edx, 0xf800
shr ecx, 8
shl edx, 5
mov ebp, ebx
and ebp, 0x1f
or edx, ebp
mov ebp, ecx
and ecx, 0xff00
imul ecx, edi
and ebp, 0xff00ff
imul ebp, edi
add edx, edx
add edx, edx
and ebx, 0x7e0
shr ecx, 8
add edx, edx
or ebx, 0x18
and ecx, 0xff00
or edx, 0x70007
shl ebx, 5
add ecx, ebx
shr ebp, 8
and ebp, 0xff00ff
add edx, ebp
mov edi, edx
shr edi, 0x18
and edi, 1
imul edi, edi, 0xff0000
mov ebx, edx
shr ebx, 8
and ebx, 1
imul ebx, ebx, 0xff
or edi, ebx
or edx, edi
mov edi, ecx
shr edi, 0x10
and edi, 1
imul edi, edi, 0xff00
shr ecx, 5
shr edi, 5
or edi, ecx
mov ecx, edx
shr ecx, 3
and edi, 0x7e0
and ecx, 0x1f
shr edx, 8
or edi, ecx
mov ecx, dword [esp + 0x6c]
and edx, 0xf800
or edi, edx
mov word [ecx], di
add ecx, 2
mov edx, dword [esp + 0xb4]
add dword [esp + 0x68], edx
mov edx, dword [esp + 0xa8]
add dword [esp + 0xc], edx
mov edx, dword [esp + 0xbc]
add dword [esp + 0x2c], edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xb0]
add dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xac]
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0xc4]
test eax, eax
mov dword [esp + 0x10], ecx
jg 0x4e296d
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0xe8]
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x30], ecx
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
add dword [esp + 0x54], edx
add dword [esp + 0x60], ecx
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x5c], edx
add dword [esp + 0x44], ecx
add ebp, eax
mov eax, dword [esp + 0x74]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0xec]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xd8]
add dword [esp + 0x48], eax
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x70], ebp
jg 0x4e2850
pop edi
pop ebp
pop ebx
add esp, 0xf0
ret
jle 0x4e2f5a
cmp dword [esp + 0x7c], 0
jle 0x4e2f5a
mov eax, dword [esp + 0xb4]
cdq
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x38], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x98], edx
cdq
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xa0], edx
cdq
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x50], edx
cdq
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x14], eax
lea eax, [edx + edx]
lea edx, [ebp + 0xffff]
add ecx, 0xffff
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
sub dword [esp + 0x7c], 1
and eax, 0xffff0000
mov dword [esp + 0xb8], eax
sub eax, ebp
cdq
mov ebx, edx
push ebx
mov edi, eax
mov eax, dword [esp + 0x3c]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x54]
mov edx, dword [esp + 0x90]
push ebx
push edi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x94]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x98]
add eax, dword [esp + 0x58]
mov edx, dword [esp + 0x94]
push ebx
push edi
push ecx
push edx
mov dword [esp + 0x88], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x9c]
push ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xa4]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
push ebx
push edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x54]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0x48]
mov edx, dword [esp + 0x14]
push ebx
push edi
push ecx
push edx
mov dword [esp + 0x3c], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0xb8]
mov edi, dword [esp + 0x30]
mov ecx, eax
add ecx, dword [esp + 0x44]
mov eax, edx
sar eax, 0x10
lea eax, [edi + eax*2]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
and eax, 0xffff0000
sub eax, edx
sar eax, 0x10
test eax, eax
jle 0x4e2eec
mov edx, dword [esp + 0x2c]
shr ecx, 0x10
imul ecx, dword [esp + 0xf0]
shr edx, 0x10
add ecx, edx
sub eax, 1
cmp ecx, dword [esp + 0xf8]
jae 0x4e2d77
mov edx, dword [esp + 0xf4]
mov edx, dword [edx + ecx*4]
jmp 0x4e2d79
xor edx, edx
mov ecx, dword [esi + 0xc]
imul ecx, dword [esp + 0x20]
movzx ebx, dl
shr ecx, 0x18
imul ecx, ebx
mov ebx, dword [esi + 4]
imul ebx, dword [esp + 0x78]
mov ebp, edx
shr ebx, 0x18
and ebp, 0xff0000
imul ebx, ebp
mov edi, dword [esi]
imul edi, dword [esp + 0x68]
and ebx, 0xff0000ff
and ecx, 0xff00
or ecx, ebx
mov ebx, dword [esi + 8]
imul ebx, dword [esp + 0xc]
and edx, 0xff00
shr ebx, 0x18
imul ebx, edx
mov edx, dword [esp + 0x6c]
shr edi, 0x18
imul edi, edi, 0xff
and ebx, 0xff0000
or ecx, ebx
movzx ebx, word [edx]
shr edi, 8
mov edx, ebx
and edx, 0xf800
shr ecx, 8
shl edx, 5
mov ebp, ebx
and ebp, 0x1f
or edx, ebp
mov ebp, ecx
and ecx, 0xff00
imul ecx, edi
and ebp, 0xff00ff
imul ebp, edi
add edx, edx
add edx, edx
and ebx, 0x7e0
shr ecx, 8
add edx, edx
or ebx, 0x18
and ecx, 0xff00
or edx, 0x70007
shl ebx, 5
add ecx, ebx
shr ebp, 8
and ebp, 0xff00ff
add edx, ebp
mov edi, edx
shr edi, 0x18
and edi, 1
imul edi, edi, 0xff0000
mov ebx, edx
shr ebx, 8
and ebx, 1
imul ebx, ebx, 0xff
or edi, ebx
or edx, edi
mov edi, ecx
shr edi, 0x10
and edi, 1
imul edi, edi, 0xff00
shr ecx, 5
shr edi, 5
or edi, ecx
mov ecx, edx
shr ecx, 3
and edi, 0x7e0
and ecx, 0x1f
shr edx, 8
or edi, ecx
mov ecx, dword [esp + 0x6c]
and edx, 0xf800
or edi, edx
mov word [ecx], di
add ecx, 2
mov edx, dword [esp + 0xb4]
add dword [esp + 0x68], edx
mov edx, dword [esp + 0xa8]
add dword [esp + 0xc], edx
mov edx, dword [esp + 0xbc]
add dword [esp + 0x2c], edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xb0]
add dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xac]
add dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0xc4]
test eax, eax
mov dword [esp + 0x10], ecx
jg 0x4e2d4b
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0xe8]
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x30], ecx
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe4]
add dword [esp + 0x54], edx
add dword [esp + 0x60], ecx
mov edx, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x5c], edx
add dword [esp + 0x44], ecx
add ebp, eax
mov eax, dword [esp + 0x74]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0xec]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xd8]
add dword [esp + 0x48], eax
cmp dword [esp + 0x7c], 0
mov dword [esp + 0x70], ebp
jg 0x4e2c2b
pop edi
pop ebp
pop ebx
add esp, 0xf0
ret