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

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x24
mov eax, dword [ecx + 0xec]
push ebx
push ebp
push esi
cmp eax, 0x10
push edi
jne 0x1008c3d0
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x68]
imul edi, esi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x58]
add eax, edi
mov ebx, dword [ecx]
push esi
mov ebp, dword [edx]
shl eax, 4
add ebx, eax
add ebp, eax
push ebx
push ebp
call dword [0x5be9770]
lea eax, [ebx + 8]
push esi
lea ecx, [ebp + 8]
push eax
push ecx
call dword [0x5be9770]
lea edx, [ebx + esi*8]
push esi
lea eax, [ebp + esi*8]
push edx
push eax
call dword [0x5be9770]
lea ecx, [ebx + esi*8 + 8]
push esi
lea edx, [ebp + esi*8 + 8]
push ecx
push edx
call dword [0x5be9770]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x88]
shr edi, 1
mov ecx, dword [ebp + 4]
add edi, eax
mov eax, dword [ebx + 4]
shl edi, 3
shr esi, 1
add eax, edi
push esi
add ecx, edi
push eax
push ecx
call dword [0x5be9770]
mov edx, dword [ebx + 8]
mov eax, dword [ebp + 8]
add edx, edi
push esi
add eax, edi
push edx
push eax
call dword [0x5be9770]
add esp, 0x48
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
xor ebx, ebx
cmp eax, ebx
je 0x1008c82e
cmp eax, 1
je 0x1008c82e
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x14], ebx
cmp edi, ebx
mov dword [esp + 0x18], ebx
je 0x1008c3ff
add ecx, 0x124
mov dword [esp + 0x54], ecx
jmp 0x1008c403
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edx
jmp 0x1008c421
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x6c]
mov eax, dword [ecx + ebx*8]
mov ecx, dword [ecx + ebx*8 + 4]
test edi, edi
mov dword [esp + 0x38], eax
je 0x1008c435
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, ecx
test edi, edi
mov dword [esp + 0x14], edx
je 0x1008c44a
cdq
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0x18]
mov ebp, ebx
add edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
sar ebp, 1
add eax, eax
and ebx, 1
add ebp, eax
lea eax, [edx + edx]
add ebx, eax
mov eax, dword [esp + 0x50]
shl ebp, 3
mov edx, dword [eax]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x58]
mov edi, dword [eax]
mov eax, dword [edx]
mov dword [esp + 0x68], edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
shl ebx, 3
test eax, eax
mov dword [esp + 0x24], ebx
je 0x1008c727
mov eax, dword [esp + 0x38]
mov edx, ecx
or edx, eax
test dl, 3
je 0x1008c708
lea eax, [ecx + ebp*4]
mov edx, dword [esp + 0x38]
sar eax, 2
imul eax, esi
mov dword [esp + 0x20], eax
lea eax, [edx + ebx*4]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x20]
sar eax, 2
add edx, ebx
mov edi, dword [0x5b80304]
add eax, edx
mov edx, dword [esp + 0x74]
and ecx, 3
lea ebx, [edx + 0x20]
mov edx, dword [esp + 0x38]
shl ecx, 2
and edx, 3
or ecx, edx
cmp ecx, 0xf
ja 0x1008c6fb
jmp dword [ecx*4 + 0x5adcbdc]
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x24]
jmp 0x1008c7c9
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
cdq
and edx, 3
add eax, edx
sar ecx, 2
sar eax, 2
jmp 0x1008c7be
mov edx, dword [esp + 0x38]
mov eax, ecx
and edx, 1
and eax, 1
lea eax, [eax + edx*2]
sub eax, 0
je 0x1008c7ac
dec eax
je 0x1008c78a
dec eax
je 0x1008c766
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
lea eax, [ecx - 1]
sar edi, 1
add edi, ebp
mov ecx, dword [esp + 0x20]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x1008c7c7
mov eax, ecx
mov ecx, dword [esp + 0x28]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov edi, eax
sar edi, 1
add edi, ebp
lea eax, [edx - 1]
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x1008c7c7
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x2c]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x38]
sar edi, 1
add edi, ebp
imul edi, esi
cdq
sub eax, edx
add ecx, edi
sar eax, 1
add eax, ecx
jmp 0x1008c7c7
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
add ecx, ebp
imul ecx, esi
add edi, ecx
add eax, edi
add eax, ebx
imul ebp, esi
mov edi, dword [esp + 0x30]
push esi
add ebp, edi
mov edi, dword [esp + 0x20]
add ebp, ebx
push eax
push ebp
push edi
call dword [0x5be976c]
mov eax, dword [esp + 0x20]
add esp, 0x10
inc eax
add edi, 0x80
cmp eax, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
jl 0x1008c415
mov eax, dword [esp + 0x14]
mov edx, eax
and edx, 0xf
sar eax, 3
add eax, dword [edx*4 + 0x5b45208]
mov ecx, eax
mov eax, dword [esp + 0x18]
mov edx, eax
and edx, 0xf
sar eax, 3
mov edi, dword [edx*4 + 0x5b45208]
jmp 0x1008cb98
cmp dword [ecx + 0x1dc], ebx
je 0x1008c94e
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x68]
mov ebx, esi
mov eax, dword [esp + 0x3c]
imul ebx, edi
mov ebp, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x70], ebx
add ebx, eax
mov ecx, dword [ebp]
mov eax, dword [edx]
shl ebx, 4
add ecx, ebx
push edi
push ecx
mov ecx, dword [esp + 0x64]
add eax, ebx
push eax
push ecx
call dword [0x5be976c]
mov edx, dword [ebp]
mov ecx, dword [esp + 0x68]
push edi
lea eax, [edx + ebx + 8]
mov edx, dword [ecx]
push eax
lea eax, [ebx + edx + 8]
mov ebx, dword [esp + 0x74]
push eax
lea ecx, [ebx + 0x80]
push ecx
call dword [0x5be976c]
shl esi, 4
add esi, 8
mov edx, dword [esp + 0x5c]
imul esi, edi
mov ecx, dword [esp + 0x78]
mov eax, dword [ebp]
shl edx, 4
add esi, edx
mov edx, dword [ecx]
add eax, esi
push edi
push eax
add edx, esi
lea eax, [ebx + 0x100]
push edx
push eax
call dword [0x5be976c]
mov ecx, dword [ebp]
mov eax, dword [esp + 0x88]
push edi
lea edx, [esi + ecx + 8]
mov ecx, dword [eax]
push edx
lea eax, [ebx + 0x180]
lea edx, [esi + ecx + 8]
push edx
push eax
call dword [0x5be976c]
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0x7c]
add esp, 0x40
lea edx, [ecx*8]
mov ecx, dword [ebp + 4]
shr edx, 1
shr edi, 1
lea esi, [edx + eax*8]
mov edx, dword [esp + 0x58]
add ecx, esi
push edi
mov eax, dword [edx + 4]
push ecx
add eax, esi
lea ecx, [ebx + 0x200]
push eax
push ecx
call dword [0x5be976c]
mov edx, dword [ebp + 8]
push edi
add edx, esi
mov eax, dword [esp + 0x6c]
push edx
add ebx, 0x280
mov ecx, dword [eax + 8]
add ecx, esi
push ecx
push ebx
call dword [0x5be976c]
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov edx, dword [esp + 0x6c]
cmp edx, ebx
je 0x1008c96c
mov eax, dword [ecx + 0x124]
mov edi, dword [ecx + 0x128]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], edi
jmp 0x1008c97b
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], ecx
mov edi, ecx
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov esi, dword [esi]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x4c]
shl ebx, 4
mov ecx, dword [ecx]
mov dword [esp + 0x50], esi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x68]
mov ecx, dword [ecx]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x44]
shl ebp, 4
mov ecx, dword [ecx]
test edx, edx
mov edx, edi
je 0x1008ca2b
or edx, eax
test dl, 3
je 0x1008c9ff
mov edx, dword [esp + 0x70]
push edx
push esi
push edi
mov edi, dword [esp + 0x80]
push eax
push ebx
lea eax, [edi + 0x60]
push ebp
push eax
lea edx, [edi + 0x40]
lea eax, [edi + 0x20]
push edx
push eax
push ecx
mov ecx, ebx
mov edx, edi
imul ecx, esi
sub edx, ecx
sub edx, ebp
push edx
call fcn.1008e460
add esp, 0x2c
jmp 0x1008cad5
mov eax, edi
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
imul eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
cdq
and edx, 3
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x68]
sar edi, 2
jmp 0x1008cacf
and eax, 1
and edx, 1
lea eax, [edx + eax*2]
sub eax, 0
je 0x1008cab0
dec eax
je 0x1008ca8c
dec eax
je 0x1008ca66
lea eax, [edi - 1]
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x30]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x1008cad3
mov eax, edi
cdq
sub eax, edx
mov edx, dword [esp + 0x38]
mov ecx, eax
sar ecx, 1
add ecx, ebx
lea eax, [edx - 1]
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x4c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x1008cad3
lea eax, [edi - 1]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x38]
sar ecx, 1
add ecx, ebx
imul ecx, esi
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x2c]
sar edi, 1
add eax, ecx
add edi, eax
jmp 0x1008cad3
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, ebx
imul eax, esi
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [esp + 0x68]
sar edi, 1
add ecx, eax
add edi, ecx
add edi, ebp
mov edx, ebx
mov eax, dword [esp + 0x50]
imul edx, esi
add edx, eax
push esi
push edi
lea eax, [edx + ebp]
mov dword [esp + 0x70], eax
push eax
mov eax, dword [esp + 0x68]
push eax
call dword [0x5be976c]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x6c]
lea ecx, [edi + 8]
push esi
add edx, 8
push ecx
add eax, 0x80
push edx
push eax
call dword [0x5be976c]
add ebx, 8
mov ecx, dword [esp + 0x70]
imul ebx, esi
add ebx, ecx
lea ecx, [edi + esi*8]
add ebp, ebx
mov ebx, dword [esp + 0x7c]
push esi
push ecx
lea edx, [ebx + 0x100]
push ebp
push edx
call dword [0x5be976c]
lea eax, [edi + esi*8 + 8]
push esi
add ebp, 8
push eax
add ebx, 0x180
push ebp
push ebx
call dword [0x5be976c]
mov eax, dword [esp + 0xac]
add esp, 0x40
test eax, eax
je 0x1008cb72
mov eax, dword [esp + 0x38]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, dword [esp + 0x54]
cdq
sub eax, edx
sar eax, 1
jmp 0x1008cb7a
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov edx, ecx
and edx, 3
sar ecx, 1
mov edi, dword [edx*4 + 0x5b45268]
mov edx, eax
and edx, 3
add ecx, edi
sar eax, 1
mov edi, dword [edx*4 + 0x5b45268]
mov edx, dword [esp + 0x70]
add eax, edi
push edx
mov edx, dword [esp + 0x60]
shr esi, 1
add edx, 0x200
push esi
push edx
mov edx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x58]
push edx
push eax
push ecx
call fcn.1008cc20
add esp, 0x28
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret