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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x74
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xc0]
mov eax, dword [edx + 4]
mov dword [esp + 0x60], eax
test ebp, ebp
jne 0x100506bb
mov eax, dword [ecx + 0xec]
cmp eax, 0x10
je 0x100515b2
jmp 0x100506c1
mov eax, dword [ecx + 0xec]
cmp eax, 0x10
je 0x100506ce
test eax, eax
jne 0x10050fe9
mov eax, dword [ecx + 0x1b4]
test eax, eax
jne 0x10050e5e
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x100506f5
mov edi, dword [ecx + 0x12c]
mov esi, dword [ecx + 0x130]
jmp 0x100506fa
mov edi, dword [ecx]
mov esi, dword [ecx + 4]
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x1005071d
test edi, edi
jle 0x100516b0
lea edi, [edi + edi - 1]
test esi, esi
jle 0x100516a1
lea esi, [esi + esi - 1]
mov ebp, dword [esp + 0xa8]
mov ecx, dword [esp + 0x94]
mov eax, dword [ebp]
mov ebp, dword [ecx]
mov edx, dword [edx]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x98]
mov eax, dword [eax]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax]
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xc0]
test eax, eax
jne 0x10050a03
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x10050860
mov eax, edi
or eax, esi
test al, 3
jne 0x100507cd
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
lea edx, [edx + edx]
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x5c], edx
lea eax, [ecx + ecx]
add eax, eax
add eax, eax
add eax, eax
add ebp, edx
mov edx, edi
sar edx, 1
shr edx, 0x1e
add edx, edi
sar edx, 2
add ebp, edx
mov edx, esi
sar edx, 1
shr edx, 0x1e
add edx, esi
sar edx, 2
add edx, eax
imul edx, ebx
imul eax, ebx
mov dword [esp + 0x50], eax
add ebp, edx
jmp 0x10050970
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x64], ebp
lea ebp, [eax + eax]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
add ebp, ebp
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x14], ebp
lea edx, [edx + edx]
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x18], edx
imul ebx, edx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x50], ebx
lea eax, [eax + eax]
add eax, eax
add eax, eax
add eax, eax
neg eax
add eax, ecx
sub eax, ebx
lea ebx, [ecx + 0x20]
mov dword [esp + 0x58], ebx
lea ebx, [ecx + 0x40]
mov dword [esp + 0xc], ebx
lea ecx, [ecx + 0x60]
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x24], ebx
call fcn.100535c8
mov ebp, dword [esp + 0x60]
jmp 0x10050970
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
lea edx, [eax + eax]
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x5c], edx
lea eax, [ecx + ecx]
add eax, eax
add eax, eax
add eax, eax
mov edx, edi
mov dword [esp + 0x50], eax
and edx, 1
add edx, edx
mov eax, esi
and eax, 1
add edx, eax
je 0x10050938
cmp edx, 1
jne 0x100508d5
mov edx, dword [esp + 0x38]
add edx, dword [esp + 0x5c]
mov ebp, edi
add ebp, 0x80000000
adc ebp, 0x80000000
lea eax, [esi - 1]
shr eax, 0x1f
sar ebp, 1
add edx, ebp
lea ebp, [esi + eax - 1]
sar ebp, 1
add ebp, dword [esp + 0x50]
imul ebp, ebx
add ebp, edx
jmp 0x10050965
cmp edx, 2
jne 0x1005090b
mov edx, dword [esp + 0x54]
add edx, dword [esp + 0x5c]
lea ebp, [edi - 1]
shr ebp, 0x1f
lea eax, [edi + ebp - 1]
sar eax, 1
add edx, eax
mov ebp, esi
add ebp, 0x80000000
adc ebp, 0x80000000
sar ebp, 1
add ebp, dword [esp + 0x50]
imul ebp, ebx
add ebp, edx
jmp 0x10050965
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x5c]
lea edx, [edi - 1]
shr edx, 0x1f
lea ecx, [edi + edx - 1]
sar ecx, 1
add eax, ecx
lea ebp, [esi - 1]
shr ebp, 0x1f
lea ebp, [esi + ebp - 1]
sar ebp, 1
add ebp, dword [esp + 0x50]
imul ebp, ebx
add ebp, eax
jmp 0x10050965
add ebp, dword [esp + 0x5c]
mov eax, edi
add eax, 0x80000000
adc eax, 0x80000000
mov edx, esi
add edx, 0x80000000
adc edx, 0x80000000
sar eax, 1
add ebp, eax
sar edx, 1
add edx, dword [esp + 0x50]
imul edx, ebx
add ebp, edx
mov eax, dword [esp + 0x50]
imul eax, ebx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x5c]
add eax, dword [esp + 0x50]
mov dword [esp + 0x34], eax
push ebx
push ebp
push eax
mov edx, dword [esp + 0xb8]
push edx
call dword [0x1031e3ac]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x44]
push ebx
lea eax, [edx + 0x80]
lea ecx, [ecx + 8]
lea edx, [ebp + 8]
push edx
push ecx
push eax
call dword [0x1031e3ac]
mov ecx, dword [esp + 0xcc]
lea edx, [ecx + 0x100]
mov ecx, dword [esp + 0x54]
push ebx
lea eax, [ebx + ebx]
add eax, eax
add eax, eax
lea ecx, [ecx + eax]
add ebp, eax
push ebp
push ecx
push edx
call dword [0x1031e3ac]
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x64]
push ebx
lea eax, [eax + 0x180]
lea ecx, [edx + ebx*8 + 8]
add ebp, 8
push ebp
push ecx
push eax
call dword [0x1031e3ac]
add esp, 0x40
jmp 0x10050e16
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
lea edx, [eax + eax]
add edx, edx
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x40], edx
lea eax, [ecx + ecx]
add eax, eax
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x3c], eax
mov edx, edi
and edx, 1
add edx, edx
mov eax, esi
and eax, 1
add edx, eax
je 0x10050ae9
cmp edx, 1
jne 0x10050a7e
mov ebp, dword [esp + 0x38]
add ebp, dword [esp + 0x40]
mov eax, edi
add eax, 0x80000000
adc eax, 0x80000000
lea edx, [esi - 1]
shr edx, 0x1f
sar eax, 1
add ebp, eax
lea ecx, [esi + edx - 1]
sar ecx, 1
add ecx, dword [esp + 0x3c]
imul ecx, ebx
add ebp, ecx
mov dword [esp + 0x38], ebp
jmp 0x10050b1a
cmp edx, 2
jne 0x10050ab8
mov ecx, dword [esp + 0x54]
add ecx, dword [esp + 0x40]
lea eax, [edi - 1]
shr eax, 0x1f
lea edx, [edi + eax - 1]
sar edx, 1
add ecx, edx
mov ebp, esi
add ebp, 0x80000000
adc ebp, 0x80000000
sar ebp, 1
add ebp, dword [esp + 0x3c]
imul ebp, ebx
add ebp, ecx
mov dword [esp + 0x38], ebp
jmp 0x10050b1a
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x40]
lea edx, [edi - 1]
shr edx, 0x1f
lea ecx, [edi + edx - 1]
sar ecx, 1
add eax, ecx
lea ebp, [esi - 1]
shr ebp, 0x1f
lea edx, [esi + ebp - 1]
sar edx, 1
add edx, dword [esp + 0x3c]
imul edx, ebx
add edx, eax
mov dword [esp + 0x38], edx
jmp 0x10050b1a
add ebp, dword [esp + 0x40]
mov eax, edi
add eax, 0x80000000
adc eax, 0x80000000
mov edx, esi
add edx, 0x80000000
adc edx, 0x80000000
sar eax, 1
add ebp, eax
sar edx, 1
add edx, dword [esp + 0x3c]
imul edx, ebx
add edx, ebp
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x3c]
imul ebp, ebx
lea ecx, [eax + edx]
lea eax, [ecx + ebp]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x4c], eax
push ebx
push eax
mov eax, dword [esp + 0xb4]
push eax
call dword [0x1031e404]
push ebx
mov eax, dword [esp + 0x48]
push eax
mov edx, dword [esp + 0xc0]
push edx
call dword [0x1031e408]
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xc4]
lea ecx, [ebp + eax + 0x10]
lea ebp, [edx + 0x80]
mov dword [esp + 0x60], ecx
push ebx
push ecx
push ebp
call dword [0x1031e404]
mov eax, dword [esp + 0x5c]
lea edx, [eax + 0x10]
mov dword [esp + 0x74], edx
push ebx
push edx
push ebp
call dword [0x1031e408]
mov ebp, dword [esp + 0xdc]
mov ecx, dword [esp + 0x64]
lea ebp, [ebp + 0x100]
lea eax, [ebx + ebx]
lea edx, [eax + eax]
add edx, edx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x6c]
add edx, edx
mov dword [esp + 0x8c], edx
add ecx, edx
mov edx, dword [esp + 0x70]
add edx, ecx
mov dword [esp + 0x70], edx
push ebx
lea eax, [eax + edx]
push eax
push ebp
call dword [0x1031e404]
lea eax, [ebx + ebx]
add eax, eax
add eax, eax
add eax, eax
add eax, dword [esp + 0x74]
mov dword [esp + 0x90], eax
push ebx
push eax
push ebp
call dword [0x1031e408]
mov ebp, dword [esp + 0xf4]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
push ebx
lea ebp, [ebp + 0x180]
lea ecx, [eax + edx + 0x10]
push ecx
push ebp
call dword [0x1031e404]
mov eax, dword [esp + 0xa8]
push ebx
add eax, 0x10
push eax
push ebp
call dword [0x1031e408]
push ebx
mov eax, dword [esp + 0x9c]
push eax
mov edx, dword [esp + 0xb4]
push edx
call dword [0x1031e3bc]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
push ebx
lea eax, [eax + edx + 8]
lea ebp, [ecx + 8]
push ebp
push eax
call dword [0x1031e3bc]
add esp, 0x78
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
lea ecx, [ebx + ebx]
add ecx, ecx
add ecx, ecx
lea eax, [eax + ecx]
mov dword [esp + 0x44], ecx
lea ebp, [edx + ecx]
mov dword [esp + 0x54], ebp
push ebx
push ebp
push eax
call dword [0x1031e3bc]
mov eax, dword [esp + 0x58]
mov edx, ebp
push ebx
lea ecx, [eax + ebx*8 + 8]
add edx, 8
push edx
push ecx
call dword [0x1031e3bc]
push ebx
mov eax, dword [esp + 0x6c]
push eax
mov edx, dword [esp + 0x68]
push edx
call dword [0x1031e3bc]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x74]
push ebx
lea ebp, [eax + 8]
lea ecx, [edx + 8]
push ecx
push ebp
call dword [0x1031e3bc]
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
push ebx
lea eax, [eax + ecx]
lea ebp, [edx + ecx]
push ebp
push eax
call dword [0x1031e3bc]
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x8c]
push ebx
lea ebp, [eax + ebx*8 + 8]
lea ecx, [edx + ebx*8 + 8]
push ecx
push ebp
call dword [0x1031e3bc]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x80]
lea ebp, [eax + edx]
mov dword [esp + 0x9c], ebp
add ecx, edx
mov dword [esp + 0x80], ecx
push ebx
push ecx
push ebp
call dword [0x1031e3bc]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x8c]
push ebx
lea eax, [eax + edx*8 + 8]
lea ebp, [ecx + 8]
push ebp
push eax
call dword [0x1031e3bc]
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0x98]
push ebx
lea eax, [eax + ecx]
lea ebp, [edx + ecx]
push ebp
push eax
call dword [0x1031e3bc]
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xa4]
push ebx
lea ebp, [eax + ebx*8 + 8]
lea ecx, [edx + ebx*8 + 8]
push ecx
push ebp
call dword [0x1031e3bc]
add esp, 0x78
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
push ebx
lea ebp, [ebp + eax*8 + 0x10]
lea ecx, [edx + 0x10]
push ecx
push ebp
call dword [0x1031e3bc]
mov eax, dword [esp + 0x44]
push ebx
lea ecx, [ebp + 8]
lea edx, [eax + 0x18]
push edx
push ecx
call dword [0x1031e3bc]
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
add ecx, ebp
lea edx, [eax + ebx*8 + 0x10]
mov dword [esp + 0x74], edx
push ebx
push edx
push ecx
call dword [0x1031e3bc]
mov eax, dword [esp + 0x80]
push ebx
lea edx, [ebp + ebx*8 + 8]
add eax, 8
push eax
push edx
call dword [0x1031e3bc]
add esp, 0x30
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x10050e3d
add edi, 0x80000000
adc edi, 0x80000000
add esi, 0x80000000
adc esi, 0x80000000
sar edi, 1
sar esi, 1
mov ecx, edi
sar ecx, 1
and edi, 3
mov edx, esi
sar edx, 1
and esi, 3
add ecx, dword [edi*4 + 0x1008ba40]
add edx, dword [esi*4 + 0x1008ba40]
jmp 0x10051546
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x90]
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
mov edi, dword [eax]
mov ecx, dword [edx]
push ebx
lea esi, [esi + esi]
add esi, esi
add esi, esi
add esi, esi
lea ebp, [ebp + ebp]
add ebp, ebp
add ebp, ebp
add ebp, ebp
imul ebp, ebx
add edi, esi
add ecx, esi
add edi, ebp
add ecx, ebp
push ecx
push edi
mov eax, dword [esp + 0xb8]
push eax
call dword [0x1031e3ac]
mov ecx, dword [esp + 0xbc]
mov edi, dword [esp + 0xb8]
mov eax, dword [edi]
lea edx, [ecx + 0x80]
add eax, esi
lea eax, [eax + ebp + 8]
mov ecx, dword [esp + 0xb4]
push ebx
mov ecx, dword [ecx]
add ecx, esi
lea ecx, [ecx + ebp + 8]
push ecx
push eax
push edx
call dword [0x1031e3ac]
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0xc8]
mov eax, dword [eax]
lea ecx, [ebx + ebx]
add ecx, ecx
add ecx, ecx
lea edx, [edi + 0x100]
mov edi, dword [esp + 0xc4]
push ebx
mov edi, dword [edi]
add eax, esi
add eax, ebp
add eax, ecx
add edi, esi
add edi, ebp
add edi, ecx
push edi
push eax
push edx
call dword [0x1031e3ac]
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
mov edi, dword [ecx]
lea eax, [edx + 0x180]
add edi, esi
add edi, ebp
mov edx, dword [esp + 0xd4]
add esi, dword [edx]
push ebx
lea ecx, [edi + ebx*8 + 8]
add esi, ebp
lea ebp, [esi + ebx*8 + 8]
push ebp
push ecx
push eax
call dword [0x1031e3ac]
mov esi, dword [esp + 0xcc]
mov edx, dword [esp + 0xd0]
mov edi, dword [esp + 0xec]
mov ebp, ebx
shr ebp, 1
lea esi, [esi + esi]
add esi, esi
add esi, esi
lea ecx, [edx + edx]
mov edx, dword [esp + 0xe8]
add ecx, ecx
add ecx, ecx
imul ebx, ecx
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0xe4]
push ebp
mov edx, dword [edx + 4]
shr ebx, 1
lea eax, [edi + 0x200]
add ecx, esi
add ecx, ebx
add edx, esi
add edx, ebx
push edx
push ecx
push eax
call dword [0x1031e3ac]
mov eax, dword [esp + 0xfc]
mov edx, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
push ebp
mov edi, dword [edx + 8]
lea eax, [eax + 0x280]
add edi, esi
add esi, dword [ecx + 8]
add edi, ebx
add esi, ebx
push esi
push edi
push eax
call dword [0x1031e3ac]
add esp, 0xd4
pop ebx
pop ebp
pop esi
pop edi
ret
cmp eax, 1
je 0x100506ce
mov ebp, dword [esp + 0xbc]
xor esi, esi
xor eax, eax
test ebp, ebp
je 0x10051007
add ecx, 0x12c
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x2c], 0
xor ebp, ebp
lea edi, [edi + edi]
mov dword [esp + 0x48], eax
add edi, edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], ecx
add edi, edi
add edi, edi
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x90]
lea edi, [edi + edi]
add edi, edi
add edi, edi
add edi, edi
mov dword [esp + 0x5c], edi
xor edi, edi
mov dword [esp + 0x58], edi
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0xbc]
mov edx, dword [ecx + ebp*8]
mov ecx, dword [ecx + ebp*8 + 4]
test eax, eax
je 0x10051071
mov eax, edx
add eax, 0x80000000
adc eax, 0x80000000
sar eax, 1
jmp 0x10051073
mov eax, edx
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x10051092
mov eax, ecx
add eax, 0x80000000
adc eax, 0x80000000
sar eax, 1
jmp 0x10051094
mov eax, ecx
add dword [esp + 0x48], eax
mov eax, dword [esp + 0xc0]
test eax, eax
je 0x100510bb
test edx, edx
jle 0x100516ce
lea edx, [edx + edx - 1]
test ecx, ecx
jle 0x100516bf
lea ecx, [ecx + ecx - 1]
mov ebx, dword [esp + 0xac]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x94]
mov esi, dword [esi]
lea eax, [ebx + eax]
mov ebx, dword [esp + 0xa8]
mov ebx, dword [ebx]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x98]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x9c]
mov eax, dword [eax]
mov edi, ebp
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, ebp
and eax, 1
add eax, eax
add eax, eax
add eax, eax
sar edi, 1
add edi, edi
add edi, edi
add eax, dword [esp + 0x64]
add edi, edi
add edi, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x30], edi
test eax, eax
jne 0x10051335
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x10051210
mov eax, edx
or eax, ecx
test al, 3
jne 0x1005118d
add esi, dword [esp + 0x40]
mov edi, edx
sar edi, 1
shr edi, 0x1e
add edi, edx
mov edx, dword [esp + 0x30]
sar edi, 2
add esi, edi
mov eax, ecx
sar eax, 1
shr eax, 0x1e
add eax, ecx
mov ecx, dword [esp + 0xb8]
sar eax, 2
add eax, edx
imul eax, ecx
imul ecx, edx
mov dword [esp + 0x38], ecx
add esi, eax
jmp 0x10051310
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], esi
imul edi, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0xb8]
mov eax, ebx
sub eax, ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
sub eax, edi
mov edx, dword [esp + 0x68]
lea edi, [ebx + 0x20]
mov dword [esp + 0x50], edi
mov ecx, edi
lea edi, [ebx + 0x40]
lea ebx, [ebx + 0x60]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x28], edi
call fcn.10053088
mov esi, dword [esp + 0x60]
jmp 0x10051310
mov eax, edx
and eax, 1
add eax, eax
mov edi, ecx
and edi, 1
add eax, edi
mov dword [esp + 0x50], eax
je 0x100512d0
cmp eax, 1
jne 0x10051264
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x40]
add edx, 0x80000000
adc edx, 0x80000000
sar edx, 1
add eax, edx
lea edx, [ecx - 1]
shr edx, 0x1f
lea esi, [ecx + edx - 1]
sar esi, 1
add esi, dword [esp + 0x30]
imul esi, dword [esp + 0xb8]
add esi, eax
jmp 0x10051300
cmp eax, 2
jne 0x1005129e
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x40]
lea esi, [edx - 1]
shr esi, 0x1f
lea edx, [edx + esi - 1]
sar edx, 1
add eax, edx
add ecx, 0x80000000
adc ecx, 0x80000000
sar ecx, 1
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0xb8]
lea esi, [eax + ecx]
jmp 0x10051300
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x40]
lea edi, [edx - 1]
shr edi, 0x1f
lea esi, [edx + edi - 1]
sar esi, 1
add eax, esi
lea edx, [ecx - 1]
shr edx, 0x1f
lea esi, [ecx + edx - 1]
sar esi, 1
add esi, dword [esp + 0x30]
imul esi, dword [esp + 0xb8]
add esi, eax
jmp 0x10051300
add esi, dword [esp + 0x40]
add edx, 0x80000000
adc edx, 0x80000000
add ecx, 0x80000000
adc ecx, 0x80000000
sar edx, 1
add esi, edx
sar ecx, 1
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0xb8]
add esi, ecx
mov eax, dword [esp + 0xb8]
imul eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
add ebx, dword [esp + 0x40]
add ebx, dword [esp + 0x38]
mov eax, dword [esp + 0xb8]
push eax
push esi
push ebx
mov ebx, dword [esp + 0x50]
push ebx
call dword [0x1031e3ac]
add esp, 0x10
jmp 0x10051505
mov eax, dword [esp + 0x40]
add eax, eax
mov dword [esp + 0x40], eax
mov eax, edi
add eax, eax
mov edi, ecx
mov dword [esp + 0x30], eax
mov eax, edx
and eax, 1
add eax, eax
and edi, 1
add eax, edi
mov dword [esp + 0x50], eax
je 0x10051413
cmp eax, 1
jne 0x1005139f
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x40]
add edx, 0x80000000
adc edx, 0x80000000
sar edx, 1
add eax, edx
lea edx, [ecx - 1]
shr edx, 0x1f
lea ecx, [ecx + edx - 1]
sar ecx, 1
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0xb8]
add eax, ecx
mov dword [esp + 0x34], eax
jmp 0x10051448
cmp eax, 2
jne 0x100513dd
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x40]
lea esi, [edx - 1]
shr esi, 0x1f
lea edx, [edx + esi - 1]
sar edx, 1
add eax, edx
add ecx, 0x80000000
adc ecx, 0x80000000
sar ecx, 1
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0xb8]
lea ecx, [eax + ecx]
mov dword [esp + 0x34], ecx
jmp 0x10051448
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x40]
lea edi, [edx - 1]
shr edi, 0x1f
lea esi, [edx + edi - 1]
sar esi, 1
add eax, esi
lea edx, [ecx - 1]
shr edx, 0x1f
lea ecx, [ecx + edx - 1]
sar ecx, 1
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0xb8]
add ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x10051448
add esi, dword [esp + 0x40]
add edx, 0x80000000
adc edx, 0x80000000
add ecx, 0x80000000
adc ecx, 0x80000000
sar edx, 1
add esi, edx
sar ecx, 1
add ecx, dword [esp + 0x30]
imul ecx, dword [esp + 0xb8]
lea eax, [esi + ecx]
mov dword [esp + 0x34], eax
add ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0xb8]
mov esi, dword [esp + 0x30]
imul esi, ecx
lea edx, [ebx + esi]
mov dword [esp + 0x40], edx
mov dword [esp + 0x30], esi
push ecx
push edx
mov eax, dword [esp + 0x4c]
push eax
call dword [0x1031e404]
mov ecx, dword [esp + 0xc4]
push ecx
mov edx, dword [esp + 0x44]
push edx
mov eax, dword [esp + 0x58]
push eax
call dword [0x1031e408]
mov ecx, dword [esp + 0xd0]
push ecx
mov edx, dword [esp + 0x50]
push edx
mov eax, dword [esp + 0x60]
push eax
call dword [0x1031e3bc]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0xdc]
push edx
lea ebx, [ebx + esi + 8]
lea eax, [ecx + 8]
push eax
push ebx
call dword [0x1031e3bc]
mov ecx, dword [esp + 0xe8]
mov esi, dword [esp + 0x70]
mov edx, dword [esp + 0x64]
lea ebx, [ecx + ecx]
add ebx, ebx
add ebx, ebx
lea eax, [ebx + esi]
add edx, ebx
mov dword [esp + 0x64], edx
push ecx
push edx
push eax
call dword [0x1031e3bc]
mov ecx, dword [esp + 0xf4]
mov ebx, esi
mov edx, dword [esp + 0x70]
push ecx
lea eax, [ebx + ecx*8 + 8]
add edx, 8
push edx
push eax
call dword [0x1031e3bc]
add esp, 0x48
add dword [esp + 0x58], 0x80
add ebp, 1
cmp ebp, 4
jl 0x1005104b
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0xb8]
mov ecx, esi
sar ecx, 3
and esi, 0xf
add ecx, dword [esi*4 + 0x1008b9e0]
mov edx, eax
sar edx, 3
and eax, 0xf
add edx, dword [eax*4 + 0x1008b9e0]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x94]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xac]
lea ebp, [ebp + 0x200]
shr ebx, 1
mov eax, ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x28], ebx
call fcn.100544e8
add esp, 0x74
pop ebx
pop ebp
pop esi
pop edi
ret
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x8c]
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x94]
mov edx, dword [eax]
mov eax, dword [ecx]
mov dword [esp + 0x58], edx
imul edi, ebx
mov dword [esp + 0x5c], eax
lea esi, [ebp + edi]
add esi, esi
mov dword [esp + 0x54], esi
lea ebp, [esi + esi]
add ebp, ebp
push ebx
add ebp, ebp
lea esi, [edx + ebp]
add ebp, eax
push ebp
push esi
call dword [0x1031e3bc]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
lea eax, [ecx + edx*8 + 8]
mov ecx, dword [esp + 0x68]
lea edx, [ecx + edx*8 + 8]
push ebx
push edx
push eax
call dword [0x1031e3bc]
push ebx
lea eax, [ebx + ebx]
add eax, eax
add eax, eax
lea edx, [esi + eax]
add eax, ebp
push eax
push edx
call dword [0x1031e3bc]
push ebx
lea eax, [esi + ebx*8 + 8]
lea ebp, [ebp + ebx*8 + 8]
push ebp
push eax
call dword [0x1031e3bc]
mov ebp, dword [esp + 0xbc]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xc4]
mov esi, dword [eax + 4]
mov ecx, dword [edx + 4]
shr ebx, 1
push ebx
shr edi, 1
lea ebp, [ebp + edi]
add ebp, ebp
add ebp, ebp
add ebp, ebp
add esi, ebp
add ecx, ebp
push ecx
push esi
call dword [0x1031e3bc]
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xd0]
push ebx
mov esi, dword [eax + 8]
mov ecx, dword [edx + 8]
add esi, ebp
add ecx, ebp
push ecx
push esi
call dword [0x1031e3bc]
add esp, 0xbc
pop ebx
pop ebp
pop esi
pop edi
ret
jge 0x1005071d
lea esi, [esi + esi + 1]
jmp 0x1005071d
jge 0x10050711
lea edi, [edi + edi + 1]
jmp 0x10050711
jge 0x100510bb
lea ecx, [ecx + ecx + 1]
jmp 0x100510bb
jge 0x100510af
lea edx, [edx + edx + 1]
jmp 0x100510af