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

Disassembly:
sub esp, 0x110
push ebx
mov ebx, dword [ecx]
shr edx, 2
push ebp
mov dword [esp + 0x108], edx
mov edx, dword [ecx + 0x10]
push esi
mov dword [esp + 0x5c], edx
mov edx, dword [ecx + 0x18]
mov ecx, dword [eax + 4]
cmp ecx, dword [eax + 0x24]
push edi
lea edi, [eax + 0x20]
lea ebp, [eax + 0x40]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], ebx
mov esi, eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x98], ebp
jle 0x4d0981
mov esi, edi
mov dword [esp + 0x70], eax
mov edi, eax
mov edx, dword [edi + 4]
cmp edx, dword [ebp + 4]
jle 0x4d099d
mov dword [esp + 0x98], edi
mov dword [esp + 0x70], ebp
mov edi, ebp
mov ebp, dword [esp + 0x98]
mov eax, dword [esi + 4]
cmp eax, dword [edi + 4]
jle 0x4d09af
mov eax, esi
mov esi, edi
mov dword [esp + 0x70], eax
mov edi, eax
mov eax, dword [esp + 0x128]
mov ecx, dword [esi + 8]
imul ecx, dword [eax]
shr ecx, 8
mov dword [esi + 8], ecx
mov edx, dword [eax + 4]
imul edx, dword [esi + 0xc]
shr edx, 8
mov dword [esi + 0xc], edx
mov ecx, dword [eax + 8]
imul ecx, dword [esi + 0x10]
shr ecx, 8
mov dword [esi + 0x10], ecx
mov edx, dword [eax + 0xc]
imul edx, dword [esi + 0x14]
shr edx, 8
mov dword [esi + 0x14], edx
mov ecx, dword [edi + 8]
imul ecx, dword [eax]
mov edx, dword [edi + 0xc]
shr ecx, 8
mov dword [edi + 8], ecx
imul edx, dword [eax + 4]
mov ecx, dword [edi + 0x10]
shr edx, 8
mov dword [edi + 0xc], edx
imul ecx, dword [eax + 8]
shr ecx, 8
mov dword [edi + 0x10], ecx
mov edx, dword [eax + 0xc]
imul edx, dword [edi + 0x14]
shr edx, 8
mov dword [edi + 0x14], edx
mov ecx, dword [ebp + 8]
imul ecx, dword [eax]
mov edx, dword [ebp + 0xc]
shr ecx, 8
mov dword [ebp + 8], ecx
imul edx, dword [eax + 4]
mov ecx, dword [ebp + 0x10]
shr edx, 8
mov dword [ebp + 0xc], edx
imul ecx, dword [eax + 8]
shr ecx, 8
mov dword [ebp + 0x10], ecx
mov eax, dword [eax + 0xc]
imul eax, dword [ebp + 0x14]
shr eax, 8
mov dword [ebp + 0x14], eax
mov edx, dword [esi + 4]
mov dword [esp + 0x10], eax
lea eax, [edx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 4]
lea ecx, [eax + 0xffff]
sar ecx, 0x10
cmp dword [esp + 0x24], ecx
mov dword [esp + 0x90], edx
mov dword [esp + 0x50], ecx
je 0x4d291e
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 + 0xb0], ecx
call fcn.006372b0
mov ecx, edx
mov edx, dword [esi]
mov dword [esp + 0x18], eax
mov eax, dword [ebp]
push ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
sub eax, edx
mov dword [esp + 0x58], edx
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esi + 8]
mov dword [esp + 0x114], eax
mov eax, dword [ebp + 8]
sub eax, ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x100], eax
mov eax, dword [ebp + 0xc]
sub eax, ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x104], eax
mov eax, dword [ebp + 0x10]
sub eax, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x10]
sub eax, ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esi + 0x18]
mov dword [esp + 0xf8], eax
mov eax, dword [ebp + 0x18]
sub eax, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
cdq
push ecx
push edx
push eax
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov esi, dword [esi + 0x1c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xfc], eax
mov eax, dword [ebp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
sub eax, esi
cdq
push ecx
push edx
push eax
mov dword [esp + 0x44], esi
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov dword [esp + 0x10c], eax
mov eax, dword [edi + 4]
sub eax, dword [esp + 0x90]
cdq
mov ecx, eax
mov eax, dword [esp + 0x114]
mov ebp, edx
push ebp
cdq
push ecx
mov esi, eax
push edx
push esi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x2c], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x54]
mov ecx, dword [edi]
cmp ecx, eax
mov dword [esp + 0x9c], eax
je 0x4d291e
mov eax, dword [esp + 0x24]
shl eax, 0x10
sub eax, dword [esp + 0x90]
cdq
push edx
mov ebp, eax
mov dword [esp + 0x88], edx
mov edx, dword [esp + 0x20]
push ebp
push edx
push esi
mov dword [esp + 0x90], ebp
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x84]
mov esi, eax
mov eax, dword [esp + 0x100]
add esi, dword [esp + 0x54]
cdq
push ecx
push ebp
push edx
push eax
mov dword [esp + 0xf4], esi
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x104]
cdq
push ecx
push ebp
push edx
push eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x108]
cdq
push ecx
push ebp
push edx
push eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xf8]
cdq
push ecx
push ebp
push edx
push eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xfc]
cdq
push ecx
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], edx
push ebp
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x10c]
cdq
push ecx
push ebp
push edx
push eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x34]
mov dword [esp + 0x78], eax
mov eax, dword [edi]
sub eax, dword [esp + 0x9c]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.006372b0
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
push eax
push ecx
push edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 8]
mov ebp, edx
cdq
sub eax, ecx
sbb edx, ebp
mov ecx, eax
mov eax, dword [esp + 0x38]
mov ebp, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb ebp, edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebp
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xd0]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0xc]
mov ebp, edx
cdq
sub eax, ecx
sbb edx, ebp
mov ecx, eax
mov eax, dword [esp + 0x30]
mov ebp, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb ebp, edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebp
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xc0]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x10]
mov ebp, edx
cdq
sub eax, ecx
sbb edx, ebp
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov ebp, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb ebp, edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebp
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0xb0]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x14]
mov ebp, edx
cdq
sub eax, ecx
sbb edx, ebp
mov ecx, eax
mov eax, dword [esp + 0x3c]
mov ebp, edx
cdq
sub ecx, eax
sbb ebp, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push edx
push eax
push ebp
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0xf8]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x18]
mov ebp, edx
cdq
sub eax, ecx
sbb edx, ebp
mov ecx, eax
mov eax, dword [esp + 0x28]
mov ebp, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb ebp, edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebp
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x98]
push edx
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [edi + 0x1c]
mov ebp, edx
cdq
sub eax, ecx
sbb edx, ebp
mov ecx, eax
mov eax, dword [esp + 0x34]
mov ebp, edx
cdq
sub ecx, eax
mov eax, dword [esp + 0x18]
sbb ebp, edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebp
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xdc], eax
mov edx, ecx
imul edx, dword [esp + 0x110]
mov eax, dword [esp + 0x124]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0xa0]
sub eax, ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x44], eax
je 0x4d1ca2
mov eax, dword [edi]
sub eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
cdq
mov edi, eax
mov eax, dword [esp + 0x4c]
push eax
push ecx
push 0x10000
push 0
mov ebp, edx
call fcn.006372b0
push edx
push eax
push ebp
push edi
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x84]
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 + 0x70]
mov ecx, eax
mov eax, dword [edx]
mov edx, dword [esp + 0x9c]
add ecx, dword [esp + 0x54]
cmp edx, eax
jge 0x4d169e
cmp dword [esp + 0x44], 0
jle 0x4d1c9e
mov eax, dword [esp + 0xd8]
cdq
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xbc], edx
cdq
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xcc], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x84], edx
cdq
mov dword [esp + 0x18], eax
add ecx, 0xffff
lea eax, [esi + 0xffff]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xac]
sub dword [esp + 0x44], 1
and eax, 0xffff0000
mov dword [esp + 0x14], eax
sub eax, esi
cdq
mov ebp, edx
mov edx, dword [esp + 0xa8]
push ebp
mov edi, eax
push edi
push ecx
push edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0xb8]
push ebp
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xc0]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x68]
mov edx, dword [esp + 0xcc]
push ebp
push edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xd0]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0xb4]
add eax, dword [esp + 0x6c]
mov edx, dword [esp + 0xb0]
push ebp
push edi
push ecx
push edx
mov dword [esp + 0x38], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x80]
push ebp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x88]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
push ebp
push edi
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x20]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x7c]
add eax, dword [esp + 0x78]
mov ecx, edx
sar ecx, 0x10
lea ecx, [edi + ecx*4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x38]
and ecx, 0xffff0000
sub ecx, edx
sar ecx, 0x10
test ecx, ecx
jle 0x4d161e
mov ebp, dword [esp + 0xf0]
lea edi, [eax - 0x8000]
add ebp, 0xffff8000
mov dword [esp + 0x5c], edi
mov dword [esp + 0x2c], ebp
jmp 0x4d1284
mov edi, dword [esp + 0x5c]
sub ecx, 1
test ebp, ebp
mov dword [esp + 0x48], ecx
jle 0x4d12ac
mov eax, dword [esp + 0x60]
and ebp, 0xffff0000
mov edx, ebp
add eax, 0xffffffff
xor ecx, ecx
sar edx, 0x10
cmp edx, eax
setl cl
mov eax, ecx
jmp 0x4d12b0
xor ebp, ebp
xor eax, eax
test edi, edi
jle 0x4d12e8
mov ecx, dword [esp + 0x11c]
and edi, 0xffff0000
mov dword [esp + 0x14], eax
xor eax, eax
mov edx, edi
sar edx, 0x10
add ecx, 0xffffffff
cmp edx, ecx
setge al
sub eax, 1
and eax, dword [esp + 0x60]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x14]
jmp 0x4d12f1
xor edi, edi
mov dword [esp + 0x90], edi
mov ecx, edi
sar ecx, 0x10
imul ecx, dword [esp + 0x60]
mov edx, ebp
sar edx, 0x10
add ecx, edx
mov edx, dword [ebx + ecx*4]
lea esi, [ecx + eax]
mov esi, dword [ebx + esi*4]
mov dword [esp + 0xc4], esi
mov esi, dword [esp + 0x90]
add ecx, esi
mov esi, dword [ebx + ecx*4]
add ecx, eax
mov eax, dword [esp + 0x5c]
sub eax, edi
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x2c]
sub esi, ebp
and eax, 0xfffe
add eax, 1
and esi, 0xfffe
add esi, 1
mov ecx, dword [ebx + ecx*4]
mov dword [esp + 0x90], esi
mov dword [esp + 0x24], edx
shr edx, 0x18
mov ebp, 0x10000
sub ebp, esi
mov esi, ebp
imul ebp, eax
mov edi, 0x10000
sub edi, eax
imul eax, dword [esp + 0x90]
imul esi, edi
imul edi, dword [esp + 0x90]
shr esi, 0x10
imul esi, edx
mov edx, dword [esp + 0xc4]
shr edx, 0x18
shr edi, 0x10
imul edi, edx
mov edx, dword [esp + 0x54]
shr edx, 0x18
shr eax, 0x10
shr ebp, 0x10
imul ebp, edx
mov edx, ecx
shr edx, 0x18
imul eax, edx
mov edx, dword [esp + 0x54]
shr eax, 0x10
shr edi, 0x10
and edx, 0xff0000
mov dword [esp + 0xa4], edi
mov edi, eax
shr ebp, 0x10
imul edx, ebp
mov eax, ecx
and eax, 0xff0000
imul eax, edi
add eax, edx
mov edx, dword [esp + 0xc4]
and edx, 0xff0000
imul edx, dword [esp + 0xa4]
add eax, edx
mov edx, dword [esp + 0x24]
and edx, 0xff0000
shr esi, 0x10
imul edx, esi
add eax, edx
movzx edx, cl
imul edx, edi
mov dword [esp + 0x14], edi
movzx edi, byte [esp + 0x54]
imul edi, ebp
add edx, edi
movzx edi, byte [esp + 0xc4]
and eax, 0xff0000ff
imul edi, dword [esp + 0xa4]
mov dword [esp + 0xf0], ebp
add edx, edi
movzx edi, byte [esp + 0x24]
mov ebp, dword [esp + 0x14]
imul edi, esi
add edx, edi
mov edi, dword [esp + 0x54]
and edi, 0xff00
imul edi, dword [esp + 0xf0]
and ecx, 0xff00
imul ecx, ebp
add ecx, edi
mov edi, dword [esp + 0xc4]
and edi, 0xff00
imul edi, dword [esp + 0xa4]
add ecx, edi
mov edi, dword [esp + 0x24]
and edi, 0xff00
imul edi, esi
and edx, 0xff00
or eax, edx
add ecx, edi
and ecx, 0xff0000
or eax, ecx
mov ecx, dword [esp + 0xf0]
add ebp, ecx
add ebp, dword [esp + 0xa4]
shr eax, 8
add ebp, esi
shl ebp, 0x18
and ebp, 0xff000000
or eax, ebp
mov edx, eax
and edx, 0xff000000
cmp edx, 0x8000000
jbe 0x4d15c0
mov esi, dword [esp + 0x128]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x34]
mov edx, dword [esi]
mov edi, eax
imul edx, dword [esp + 0x58]
shr ecx, 0x18
and edi, 0xff0000
imul ecx, edi
mov edi, dword [esi + 0xc]
mov esi, dword [esi + 8]
imul edi, dword [esp + 0x3c]
imul esi, dword [esp + 0x28]
movzx ebp, al
and eax, 0xff00
shr esi, 0x18
imul esi, eax
and ecx, 0xff0000ff
shr edi, 0x18
imul edi, ebp
and esi, 0xff0000
and edi, 0xff00
or ecx, edi
or ecx, esi
shr ecx, 8
mov edi, dword [esp + 0x40]
mov eax, ecx
mov esi, ecx
and eax, 0xff0000
movzx ecx, cl
and esi, 0xff00
shr edx, 0x18
imul eax, edx
imul ecx, edx
imul esi, edx
mov edx, dword [edi]
and eax, 0xff0000ff
and ecx, 0xff00
and esi, 0xff0000
or eax, esi
or eax, ecx
shr eax, 8
mov esi, eax
and eax, 0xff00
and esi, 0xff00ff
mov ecx, edx
and ecx, 0xff00ff
add ecx, esi
mov esi, ecx
and edx, 0xff00
add edx, eax
mov eax, ecx
shr eax, 8
and eax, 1
shr esi, 0x18
imul eax, eax, 0xff
and esi, 1
imul esi, esi, 0xffff0000
or eax, esi
or eax, ecx
mov ecx, edx
shr ecx, 0x10
and ecx, 1
neg ecx
shl ecx, 8
or ecx, edx
and eax, 0xffff00ff
and ecx, 0xff00
or eax, ecx
or eax, 0xff000000
mov dword [edi], eax
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe8]
add dword [esp + 0x58], edx
add dword [esp + 0x34], eax
mov ebp, dword [esp + 0x2c]
add dword [esp + 0x28], ecx
mov edx, dword [esp + 0xe0]
add ebp, dword [esp + 0xec]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x48]
add dword [esp + 0x40], 4
add dword [esp + 0x3c], edx
add dword [esp + 0x5c], eax
test ecx, ecx
mov dword [esp + 0x2c], ebp
jg 0x4d1280
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x114]
add dword [esp + 0x30], eax
mov ecx, dword [esp + 0x10]
add dword [esp + 0x38], ecx
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x108]
add dword [esp + 0x8c], edx
add dword [esp + 0x6c], ecx
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10c]
add dword [esp + 0x74], edx
add dword [esp + 0x78], ecx
add esi, eax
mov eax, dword [esp + 0x110]
add eax, eax
add eax, eax
add dword [esp + 0x7c], eax
mov eax, dword [esp + 0x104]
add dword [esp + 0x68], eax
mov eax, dword [esp + 0xfc]
add dword [esp + 0x64], eax
cmp dword [esp + 0x44], 0
mov dword [esp + 0xe4], esi
jg 0x4d113c
jmp 0x4d1c9e
jle 0x4d1c9e
cmp dword [esp + 0x44], 0
jle 0x4d1c9e
mov eax, dword [esp + 0xd8]
cdq
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xbc], edx
cdq
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xcc], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x84], edx
cdq
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x18], eax
lea eax, [edx*4]
lea edx, [esi + 0xffff]
add ecx, 0xffff
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0xa8]
sub dword [esp + 0x44], 1
and eax, 0xffff0000
mov dword [esp + 0x48], eax
sub eax, esi
cdq
mov ebp, edx
push ebp
mov edi, eax
mov eax, dword [esp + 0xb0]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xbc]
push ebp
push edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc0]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0xcc]
add eax, dword [esp + 0x68]
mov edx, dword [esp + 0xc8]
push ebp
push edi
push ecx
push edx
mov dword [esp + 0x4c], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xb0]
push ebp
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb8]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x74]
mov edx, dword [esp + 0x84]
push ebp
push edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x88]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x1c]
add eax, dword [esp + 0x64]
mov edx, dword [esp + 0x18]
push ebp
push edi
push ecx
push edx
mov dword [esp + 0x24], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x7c]
add eax, dword [esp + 0x78]
mov ecx, edx
sar ecx, 0x10
lea ecx, [edi + ecx*4]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x58]
and ecx, 0xffff0000
sub ecx, edx
sar ecx, 0x10
test ecx, ecx
jle 0x4d1c27
mov esi, dword [esp + 0x14]
add eax, 0xffff8000
add esi, 0xffff8000
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], esi
jmp 0x4d189f
mov esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
sub ecx, 1
mov dword [esp + 0x14], ecx
xor ecx, ecx
cmp esi, ecx
jle 0x4d18d1
mov edi, dword [esp + 0x60]
and esi, 0xffff0000
mov edx, esi
mov dword [esp + 0x48], eax
xor eax, eax
add edi, 0xffffffff
sar edx, 0x10
cmp edx, edi
setl al
mov edi, eax
mov eax, dword [esp + 0x48]
jmp 0x4d18d5
xor esi, esi
xor edi, edi
cmp eax, ecx
jle 0x4d190f
mov edx, dword [esp + 0x11c]
mov ecx, eax
and ecx, 0xffff0000
mov eax, ecx
mov dword [esp + 0x48], ecx
xor ecx, ecx
sar eax, 0x10
add edx, 0xffffffff
cmp eax, edx
setge cl
sub ecx, 1
and ecx, dword [esp + 0x60]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x48]
jmp 0x4d1916
mov dword [esp + 0xf0], ecx
mov eax, ecx
sar eax, 0x10
imul eax, dword [esp + 0x60]
mov edx, esi
sar edx, 0x10
add eax, edx
mov edx, dword [ebx + eax*4]
lea ebp, [eax + edi]
mov ebp, dword [ebx + ebp*4]
mov dword [esp + 0xc4], ebp
mov ebp, dword [esp + 0xf0]
add eax, ebp
mov ebp, dword [ebx + eax*4]
add eax, edi
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0xa4], ebp
mov ebp, dword [esp + 0x40]
sub ebp, esi
and eax, 0xfffe
add eax, 1
and ebp, 0xfffe
add ebp, 1
mov dword [esp + 0x38], edx
shr edx, 0x18
mov edi, 0x10000
sub edi, ebp
mov ecx, edi
imul edi, eax
mov esi, 0x10000
sub esi, eax
imul eax, ebp
imul ecx, esi
imul esi, ebp
shr ecx, 0x10
imul ecx, edx
mov edx, dword [esp + 0xc4]
shr edx, 0x18
shr esi, 0x10
imul esi, edx
mov edx, dword [esp + 0xa4]
shr edx, 0x18
shr eax, 0x10
shr edi, 0x10
imul edi, edx
mov edx, dword [esp + 0x5c]
shr edx, 0x18
imul eax, edx
mov edx, dword [esp + 0xa4]
shr eax, 0x10
mov ebp, eax
mov eax, dword [esp + 0x5c]
and edx, 0xff00
and eax, 0xff00
imul eax, ebp
shr edi, 0x10
imul edx, edi
add eax, edx
mov edx, dword [esp + 0xc4]
and edx, 0xff00
shr esi, 0x10
imul edx, esi
add eax, edx
mov edx, dword [esp + 0x38]
and edx, 0xff00
shr ecx, 0x10
imul edx, ecx
add eax, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xf0], ebp
and edx, 0xff0000
imul edx, ebp
mov ebp, dword [esp + 0xa4]
and ebp, 0xff0000
imul ebp, edi
add edx, ebp
mov ebp, dword [esp + 0xc4]
and eax, 0xff0000
and ebp, 0xff0000
imul ebp, esi
add edx, ebp
mov ebp, dword [esp + 0x38]
and ebp, 0xff0000
imul ebp, ecx
add edx, ebp
movzx ebp, byte [esp + 0xa4]
and edx, 0xff0000ff
imul ebp, edi
or eax, edx
movzx edx, byte [esp + 0x5c]
imul edx, dword [esp + 0xf0]
add edx, ebp
movzx ebp, byte [esp + 0xc4]
imul ebp, esi
add edx, ebp
movzx ebp, byte [esp + 0x38]
imul ebp, ecx
add edx, ebp
and edx, 0xff00
or eax, edx
mov edx, dword [esp + 0xf0]
add edx, edi
add edx, esi
add edx, ecx
shl edx, 0x18
shr eax, 8
and edx, 0xff000000
or eax, edx
mov ecx, eax
and ecx, 0xff000000
cmp ecx, 0x8000000
jbe 0x4d1bce
mov esi, dword [esp + 0x128]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x3c]
mov edx, dword [esi]
mov edi, eax
imul edx, dword [esp + 0x2c]
shr ecx, 0x18
and edi, 0xff0000
imul ecx, edi
mov edi, dword [esi + 0xc]
mov esi, dword [esi + 8]
imul edi, dword [esp + 0x34]
imul esi, dword [esp + 0x28]
movzx ebp, al
and eax, 0xff00
shr esi, 0x18
imul esi, eax
and ecx, 0xff0000ff
shr edi, 0x18
imul edi, ebp
and esi, 0xff0000
and edi, 0xff00
or ecx, edi
or ecx, esi
shr ecx, 8
mov edi, dword [esp + 0x30]
mov eax, ecx
mov esi, ecx
and eax, 0xff0000
movzx ecx, cl
and esi, 0xff00
shr edx, 0x18
imul eax, edx
imul ecx, edx
imul esi, edx
mov edx, dword [edi]
and eax, 0xff0000ff
and ecx, 0xff00
and esi, 0xff0000
or eax, esi
or eax, ecx
shr eax, 8
mov esi, eax
and eax, 0xff00
and esi, 0xff00ff
mov ecx, edx
and ecx, 0xff00ff
add ecx, esi
mov esi, ecx
and edx, 0xff00
add edx, eax
mov eax, ecx
shr eax, 8
and eax, 1
shr esi, 0x18
imul eax, eax, 0xff
and esi, 1
imul esi, esi, 0xffff0000
or eax, esi
or eax, ecx
mov ecx, edx
shr ecx, 0x10
and ecx, 1
neg ecx
shl ecx, 8
or ecx, edx
and eax, 0xffff00ff
and ecx, 0xff00
or eax, ecx
or eax, 0xff000000
mov dword [edi], eax
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe8]
add dword [esp + 0x2c], edx
add dword [esp + 0x3c], eax
add dword [esp + 0x28], ecx
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xdc]
add dword [esp + 0x30], 4
add dword [esp + 0x34], edx
add dword [esp + 0x40], eax
add dword [esp + 0x24], ecx
cmp dword [esp + 0x14], 0
jg 0x4d1893
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x114]
add dword [esp + 0x58], eax
mov edx, dword [esp + 0x10]
add dword [esp + 0x90], edx
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
add dword [esp + 0x8c], ecx
add dword [esp + 0x68], edx
mov ecx, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
add dword [esp + 0x74], ecx
add dword [esp + 0x64], edx
add esi, eax
mov eax, dword [esp + 0x54]
add dword [esp + 0x7c], eax
mov eax, dword [esp + 0x108]
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10c]
add dword [esp + 0x78], eax
cmp dword [esp + 0x44], 0
mov dword [esp + 0xe4], esi
jg 0x4d1756
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0xa0]
mov dword [esp + 0x44], eax
je 0x4d291e
mov ecx, dword [edi + 4]
mov ebp, dword [esp + 0x98]
mov eax, dword [ebp + 4]
mov edi, dword [edi]
sub eax, ecx
cdq
push edx
push eax
push 0x10000
push 0
mov dword [esp + 0x58], ecx
call fcn.006372b0
mov ecx, eax
mov eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [ebp]
sub eax, edi
cdq
push edx
push eax
mov eax, dword [esp + 0x58]
push eax
push ecx
call fcn.0063a250
mov cl, 0x20
call fcn.00643e20
mov ecx, eax
mov eax, dword [esp + 0xa0]
shl eax, 0x10
sub eax, dword [esp + 0x48]
mov dword [esp + 0x14], ecx
imul ecx
mov cl, 0x10
call fcn.00643e20
mov ecx, eax
mov eax, dword [esp + 0x9c]
add ecx, edi
cmp eax, edi
jge 0x4d2332
cmp dword [esp + 0x44], 0
jle 0x4d291e
mov eax, dword [esp + 0xd8]
cdq
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xbc], edx
cdq
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xcc], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x84], edx
cdq
add ecx, 0xffff
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], ecx
lea eax, [edx*4]
lea ecx, [esi + 0xffff]
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x34]
sub dword [esp + 0x44], 1
and eax, 0xffff0000
mov dword [esp + 0x50], eax
sub eax, esi
cdq
mov ebp, edx
mov edx, dword [esp + 0xac]
push ebp
mov edi, eax
mov eax, dword [esp + 0xac]
push edi
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0xbc]
add eax, dword [esp + 0x8c]
mov edx, dword [esp + 0xb8]
push ebp
push edi
push ecx
push edx
mov dword [esp + 0x48], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xc8]
push ebp
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xd0]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x6c]
mov edx, dword [esp + 0xb4]
push ebp
push edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb8]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0x84]
add eax, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
push ebp
push edi
push ecx
push edx
mov dword [esp + 0x4c], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x18]
push ebp
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x7c]
add eax, dword [esp + 0x78]
mov ecx, edx
sar ecx, 0x10
lea ecx, [edi + ecx*4]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x58]
and ecx, 0xffff0000
sub ecx, edx
sar ecx, 0x10
test ecx, ecx
jle 0x4d22b3
mov ebp, dword [esp + 0x48]
lea esi, [eax - 0x8000]
add ebp, 0xffff8000
mov dword [esp + 0x5c], esi
mov dword [esp + 0x28], ebp
jmp 0x4d1f24
mov esi, dword [esp + 0x5c]
sub ecx, 1
test ebp, ebp
mov dword [esp + 0x118], ecx
jle 0x4d1f4f
mov eax, dword [esp + 0x60]
and ebp, 0xffff0000
mov edx, ebp
add eax, 0xffffffff
xor ecx, ecx
sar edx, 0x10
cmp edx, eax
setl cl
mov eax, ecx
jmp 0x4d1f53
xor ebp, ebp
xor eax, eax
test esi, esi
jle 0x4d1f88
mov ecx, dword [esp + 0x11c]
and esi, 0xffff0000
mov dword [esp + 0x50], eax
xor eax, eax
mov edx, esi
sar edx, 0x10
add ecx, 0xffffffff
cmp edx, ecx
setge al
sub eax, 1
and eax, dword [esp + 0x60]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
jmp 0x4d1f8e
xor esi, esi
mov dword [esp + 0x10], esi
mov ecx, esi
sar ecx, 0x10
imul ecx, dword [esp + 0x60]
mov edx, ebp
sar edx, 0x10
add ecx, edx
mov edx, dword [ebx + ecx*4]
lea edi, [ecx + eax]
mov edi, dword [ebx + edi*4]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x10]
add ecx, edi
mov edi, dword [ebx + ecx*4]
add eax, ecx
mov ecx, dword [ebx + eax*4]
mov eax, dword [esp + 0x5c]
sub eax, esi
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x28]
sub edi, ebp
and eax, 0xfffe
add eax, 1
and edi, 0xfffe
add edi, 1
mov dword [esp + 0x9c], edx
shr edx, 0x18
mov esi, 0x10000
sub esi, edi
mov dword [esp + 0x50], esi
mov ebp, 0x10000
sub ebp, eax
imul esi, ebp
mov dword [esp + 0x48], edi
imul edi, ebp
mov ebp, eax
imul eax, dword [esp + 0x48]
imul ebp, dword [esp + 0x50]
shr esi, 0x10
imul esi, edx
mov edx, dword [esp + 0x40]
shr edx, 0x18
shr edi, 0x10
imul edi, edx
mov edx, dword [esp + 0x24]
shr edx, 0x18
shr ebp, 0x10
imul ebp, edx
shr eax, 0x10
mov edx, ecx
shr edx, 0x18
imul eax, edx
shr eax, 0x10
mov edx, eax
mov dword [esp + 0xa0], edx
mov eax, ecx
and eax, 0xff0000
imul eax, edx
mov edx, dword [esp + 0x24]
and edx, 0xff0000
shr ebp, 0x10
imul edx, ebp
add eax, edx
mov edx, dword [esp + 0x40]
and edx, 0xff0000
shr edi, 0x10
imul edx, edi
add eax, edx
mov edx, dword [esp + 0x9c]
and edx, 0xff0000
shr esi, 0x10
imul edx, esi
add eax, edx
mov dword [esp + 0x98], ebp
movzx ebp, byte [esp + 0x24]
imul ebp, dword [esp + 0x98]
movzx edx, cl
imul edx, dword [esp + 0xa0]
add edx, ebp
movzx ebp, byte [esp + 0x40]
and eax, 0xff0000ff
imul ebp, edi
add edx, ebp
movzx ebp, byte [esp + 0x9c]
imul ebp, esi
add edx, ebp
mov ebp, dword [esp + 0x24]
and ecx, 0xff00
imul ecx, dword [esp + 0xa0]
and ebp, 0xff00
imul ebp, dword [esp + 0x98]
add ecx, ebp
mov ebp, dword [esp + 0x40]
and ebp, 0xff00
imul ebp, edi
add ecx, ebp
mov ebp, dword [esp + 0x9c]
and ebp, 0xff00
imul ebp, esi
add ecx, ebp
and ecx, 0xff0000
and edx, 0xff00
or eax, edx
mov edx, dword [esp + 0x98]
or eax, ecx
mov ecx, dword [esp + 0xa0]
add ecx, edx
add ecx, edi
add ecx, esi
shl ecx, 0x18
and ecx, 0xff000000
shr eax, 8
or eax, ecx
mov ecx, eax
and ecx, 0xff000000
cmp ecx, 0x8000000
jbe 0x4d224f
mov esi, dword [esp + 0x128]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x30]
mov edx, dword [esi]
mov edi, eax
imul edx, dword [esp + 0x38]
shr ecx, 0x18
and edi, 0xff0000
imul ecx, edi
mov edi, dword [esi + 0xc]
mov esi, dword [esi + 8]
imul edi, dword [esp + 0x3c]
imul esi, dword [esp + 0x2c]
movzx ebp, al
and eax, 0xff00
shr esi, 0x18
imul esi, eax
and ecx, 0xff0000ff
shr edi, 0x18
imul edi, ebp
and esi, 0xff0000
and edi, 0xff00
or ecx, edi
or ecx, esi
shr ecx, 8
mov edi, dword [esp + 0x90]
mov eax, ecx
mov esi, ecx
and eax, 0xff0000
movzx ecx, cl
and esi, 0xff00
shr edx, 0x18
imul eax, edx
imul ecx, edx
imul esi, edx
mov edx, dword [edi]
and eax, 0xff0000ff
and ecx, 0xff00
and esi, 0xff0000
or eax, esi
or eax, ecx
shr eax, 8
mov esi, eax
and eax, 0xff00
and esi, 0xff00ff
mov ecx, edx
and ecx, 0xff00ff
add ecx, esi
mov esi, ecx
and edx, 0xff00
add edx, eax
mov eax, ecx
shr eax, 8
and eax, 1
shr esi, 0x18
imul eax, eax, 0xff
and esi, 1
imul esi, esi, 0xffff0000
or eax, esi
or eax, ecx
mov ecx, edx
shr ecx, 0x10
and ecx, 1
neg ecx
shl ecx, 8
or ecx, edx
and eax, 0xffff00ff
and ecx, 0xff00
or eax, ecx
or eax, 0xff000000
mov dword [edi], eax
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xe8]
add dword [esp + 0x38], edx
add dword [esp + 0x30], eax
mov ebp, dword [esp + 0x28]
add dword [esp + 0x2c], ecx
mov edx, dword [esp + 0xe0]
add ebp, dword [esp + 0xec]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x118]
add dword [esp + 0x90], 4
add dword [esp + 0x3c], edx
add dword [esp + 0x5c], eax
test ecx, ecx
mov dword [esp + 0x28], ebp
jg 0x4d1f20
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
add dword [esp + 0x34], eax
add dword [esp + 0x58], ecx
add dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x108]
add dword [esp + 0x68], ecx
add dword [esp + 0x6c], edx
mov ecx, dword [esp + 0xfc]
mov edx, dword [esp + 0x10c]
add dword [esp + 0x64], ecx
add dword [esp + 0x78], edx
add esi, eax
mov eax, dword [esp + 0x100]
add dword [esp + 0x8c], eax
mov eax, dword [esp + 0xf8]
add dword [esp + 0x74], eax
cmp dword [esp + 0x44], 0
mov dword [esp + 0xe4], esi
jg 0x4d1ddc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret
jle 0x4d291e
cmp dword [esp + 0x44], 0
jle 0x4d291e
mov eax, dword [esp + 0xd8]
cdq
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xbc], edx
cdq
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xcc], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x84], edx
cdq
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1c], edx
lea edx, [eax*4]
lea eax, [esi + 0xffff]
add ecx, 0xffff
mov dword [esp + 0x54], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xac]
sub dword [esp + 0x44], 1
and eax, 0xffff0000
mov dword [esp + 0x50], eax
sub eax, esi
cdq
mov ebp, edx
mov edx, dword [esp + 0xa8]
push ebp
mov edi, eax
push edi
push ecx
push edx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0xb8]
push ebp
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xc0]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x68]
mov edx, dword [esp + 0xcc]
push ebp
push edi
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0xd0]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov ecx, dword [esp + 0xb4]
add eax, dword [esp + 0x6c]
mov edx, dword [esp + 0xb0]
push ebp
push edi
push ecx
push edx
mov dword [esp + 0x48], eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x80]
push ebp
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x88]
push edi
push eax
push ecx
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
add eax, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
push ebp
push edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
push edx
push eax
call fcn.0063a250
mov cl, 0x10
call fcn.00643e20
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x7c]
add eax, dword [esp + 0x78]
mov ecx, edx
sar ecx, 0x10
lea ecx, [edi + ecx*4]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x28]
and ecx, 0xffff0000
sub ecx, edx
sar ecx, 0x10
test ecx, ecx
jle 0x4d28aa
mov esi, dword [esp + 0x48]
lea edx, [eax - 0x8000]
add esi, 0xffff8000
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], esi
lea esp, [esp]
sub ecx, 1
test esi, esi
mov dword [esp + 0x48], ecx
jle 0x4d2560
mov ecx, dword [esp + 0x60]
and esi, 0xffff0000
mov eax, esi
mov dword [esp + 0x50], edx
xor edx, edx
sar eax, 0x10
add ecx, 0xffffffff
cmp eax, ecx
setl dl
mov ebp, edx
mov edx, dword [esp + 0x50]
jmp 0x4d2564
xor esi, esi
xor ebp, ebp
test edx, edx
jle 0x4d2599
mov ecx, dword [esp + 0x11c]
and edx, 0xffff0000
mov eax, edx
mov dword [esp + 0x50], edx
xor edx, edx
sar eax, 0x10
add ecx, 0xffffffff
cmp eax, ecx
setge dl
sub edx, 1
and edx, dword [esp + 0x60]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x50]
jmp 0x4d259f
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, edx
sar ecx, 0x10
imul ecx, dword [esp + 0x60]
mov eax, esi
sar eax, 0x10
add ecx, eax
mov edi, dword [ebx + ecx*4]
lea eax, [ecx + ebp]
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
add ecx, eax
mov eax, dword [ebx + ecx*4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
sub eax, edx
add ebp, ecx
mov ecx, dword [ebx + ebp*4]
mov ebx, dword [esp + 0x2c]
sub ebx, esi
and ebx, 0xfffe
add ebx, 1
and eax, 0xfffe
add eax, 1
mov edx, 0x10000
sub edx, ebx
mov esi, edx
mov ebp, 0x10000
sub ebp, eax
imul esi, ebp
mov dword [esp + 0x9c], edi
shr edi, 0x18
shr esi, 0x10
imul esi, edi
mov edi, ebx
imul edi, ebp
mov ebp, dword [esp + 0x40]
shr ebp, 0x18
shr edi, 0x10
imul edi, ebp
mov ebp, eax
imul eax, ebx
imul ebp, edx
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
shr edx, 0x18
shr eax, 0x10
shr ebp, 0x10
imul ebp, edx
mov edx, ecx
shr edx, 0x18
imul eax, edx
shr eax, 0x10
mov edx, eax
mov eax, dword [esp + 0x24]
and ebx, 0xff0000
and eax, 0xff0000
shr edi, 0x10
imul ebx, edi
shr ebp, 0x10
imul eax, ebp
add eax, ebx
mov ebx, dword [esp + 0x9c]
and ebx, 0xff0000
shr esi, 0x10
imul ebx, esi
add eax, ebx
mov ebx, ecx
and ebx, 0xff0000
imul ebx, edx
add eax, ebx
movzx ebx, byte [esp + 0x40]
mov dword [esp + 0x10], edx
imul ebx, edi
movzx edx, byte [esp + 0x24]
imul edx, ebp
add edx, ebx
movzx ebx, byte [esp + 0x9c]
imul ebx, esi
and eax, 0xff0000ff
add edx, ebx
movzx ebx, cl
imul ebx, dword [esp + 0x10]
add edx, ebx
mov ebx, dword [esp + 0x10]
and edx, 0xff00
or eax, edx
mov edx, dword [esp + 0x24]
and ecx, 0xff00
imul ecx, ebx
and edx, 0xff00
imul edx, ebp
add ecx, edx
mov edx, dword [esp + 0x40]
and edx, 0xff00
imul edx, edi
add ecx, edx
mov edx, dword [esp + 0x9c]
and edx, 0xff00
imul edx, esi
add ebx, ebp
add ecx, edx
add ebx, edi
and ecx, 0xff0000
or eax, ecx
add ebx, esi
shl ebx, 0x18
shr eax, 8
and ebx, 0xff000000
or eax, ebx
mov ecx, eax
and ecx, 0xff000000
cmp ecx, 0x8000000
jbe 0x4d2838
mov esi, dword [esp + 0x128]
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x90]
mov edx, dword [esi]
mov edi, eax
imul edx, dword [esp + 0x98]
shr ecx, 0x18
and edi, 0xff0000
imul ecx, edi
mov edi, dword [esi + 0xc]
mov esi, dword [esi + 8]
imul edi, dword [esp + 0x30]
imul esi, dword [esp + 0x38]
movzx ebx, al
and eax, 0xff00
shr esi, 0x18
imul esi, eax
and ecx, 0xff0000ff
shr edi, 0x18
imul edi, ebx
and esi, 0xff0000
and edi, 0xff00
or ecx, edi
or ecx, esi
shr ecx, 8
mov edi, dword [esp + 0xa0]
mov eax, ecx
mov esi, ecx
and eax, 0xff0000
movzx ecx, cl
and esi, 0xff00
shr edx, 0x18
imul eax, edx
imul ecx, edx
imul esi, edx
mov edx, dword [edi]
and eax, 0xff0000ff
and ecx, 0xff00
and esi, 0xff0000
or eax, esi
or eax, ecx
shr eax, 8
mov esi, eax
and eax, 0xff00
and esi, 0xff00ff
mov ecx, edx
and ecx, 0xff00ff
add ecx, esi
mov esi, ecx
and edx, 0xff00
add edx, eax
mov eax, ecx
shr eax, 8
and eax, 1
shr esi, 0x18
imul eax, eax, 0xff
and esi, 1
imul esi, esi, 0xffff0000
or eax, esi
or eax, ecx
mov ecx, edx
shr ecx, 0x10
and ecx, 1
neg ecx
shl ecx, 8
or ecx, edx
and eax, 0xffff00ff
and ecx, 0xff00
or eax, ecx
or eax, 0xff000000
mov dword [edi], eax
mov edx, dword [esp + 0xd8]
add dword [esp + 0x98], edx
mov edx, dword [esp + 0xe0]
add dword [esp + 0x30], edx
mov ecx, dword [esp + 0xe8]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x3c]
add dword [esp + 0x38], ecx
mov eax, dword [esp + 0xd4]
add esi, dword [esp + 0xec]
add edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x48]
add dword [esp + 0xa0], 4
add dword [esp + 0x90], eax
test ecx, ecx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x3c], edx
jg 0x4d2530
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0x114]
add dword [esp + 0x28], eax
mov ecx, dword [esp + 0x54]
add dword [esp + 0x7c], ecx
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x108]
add dword [esp + 0x8c], edx
add dword [esp + 0x6c], ecx
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0x10c]
add dword [esp + 0x74], edx
add dword [esp + 0x78], ecx
add esi, eax
mov eax, dword [esp + 0x14]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x104]
add dword [esp + 0x68], eax
mov eax, dword [esp + 0xfc]
add dword [esp + 0x64], eax
cmp dword [esp + 0x44], 0
mov dword [esp + 0xe4], esi
jg 0x4d23e7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret