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

Disassembly:
sub esp, 0x1b0
mov eax, dword [0x10273240]
xor eax, esp
mov dword [esp + 0x1ac], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1cc]
mov ebx, dword [esp + 0x1c4]
mov edx, dword [eax]
mov eax, dword [eax + 4]
shl eax, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], eax
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
lea ebp, [esp + 0x34]
mov ecx, dword [esp + 0x1c8]
shl eax, 2
mov dword [esp + 0x3c], eax
shl edx, 2
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shl eax, 2
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x74]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
sar eax, 8
shl esi, 2
shl ecx, 2
mov edi, dword [ebx + 0x78]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x18], eax
cmp eax, dword [ebx + 0x54]
jl 0x101565b9
mov eax, esi
sar eax, 8
cmp eax, dword [ebx + 0x54]
jl 0x101565b9
mov eax, ecx
sar eax, 8
cmp eax, dword [ebx + 0x54]
jl 0x101565b9
mov eax, edi
sar eax, 8
cmp eax, dword [ebx + 0x54]
jge 0x101565d7
mov eax, dword [ebx + 0x50]
cmp dword [esp + 0x18], eax
jge 0x10156600
sar esi, 8
cmp esi, eax
jge 0x10156600
sar ecx, 8
cmp ecx, eax
jge 0x10156600
sar edi, 8
cmp edi, eax
jge 0x10156600
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x74], edx
mov dword [ebx + 0x78], eax
mov ecx, dword [esp + 0x1bc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10106b52
add esp, 0x1b0
ret
mov ebx, dword [ebp + 0x1c]
lea eax, [ebp + 0x18]
sub ebx, dword [ebp + 4]
mov dword [esp + 0x18], eax
mov eax, dword [eax]
mov edi, eax
sub edi, edx
mov dword [esp + 0x30], eax
mov eax, edi
cdq
mov ecx, eax
mov eax, ebx
xor ecx, edx
sub ecx, edx
cdq
mov esi, eax
xor esi, edx
sub esi, edx
cmp ecx, esi
jle 0x10156637
lea eax, [esi + esi*2]
sar eax, 3
add eax, ecx
jmp 0x1015663f
lea eax, [ecx + ecx*2]
sar eax, 3
add eax, esi
cmp eax, 0x7fff
jg 0x10156708
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp + 4]
mov esi, dword [esp + 0x10]
imul eax, eax, 0x2a
mov dword [esp + 0x1c], edx
imul edx, edi
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 8]
sub eax, esi
mov dword [esp + 0x20], eax
imul eax, ebx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x14]
jg 0x10156708
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
sub eax, esi
sub edx, dword [ebp + 4]
mov dword [esp + 0x28], eax
imul eax, ebx
mov dword [esp + 0x24], edx
imul edx, edi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x14]
jg 0x10156708
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
sub ecx, ebx
imul ecx, dword [esp + 0x1c]
sub eax, edi
imul eax, dword [esp + 0x20]
add ecx, eax
test ecx, ecx
jg 0x10156708
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
sub ecx, ebx
imul ecx, dword [esp + 0x24]
sub eax, edi
imul eax, dword [esp + 0x28]
add ecx, eax
test ecx, ecx
jg 0x10156708
push dword [ebp + 4]
push esi
push dword [esp + 0x34]
call fcn.101567d0
lea eax, [esp + 0x40]
add esp, 0xc
cmp ebp, eax
je 0x101565e1
mov edx, dword [ebp - 0x18]
sub ebp, 0x18
mov dword [esp + 0x10], edx
jmp 0x10156600
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x10]
add eax, esi
mov ecx, dword [ebp + 0x10]
cdq
sub eax, edx
mov ebx, dword [esp + 0x30]
mov edi, eax
mov dword [ebp + 0x30], ebx
sar edi, 1
mov dword [ebp + 8], edi
lea eax, [ebx + ecx]
cdq
sub eax, edx
mov ebx, eax
lea eax, [ecx + esi]
cdq
sub eax, edx
sar ebx, 1
mov ecx, eax
mov dword [ebp + 0x28], ebx
sar ecx, 1
lea eax, [edi + ecx]
cdq
sub eax, edx
mov esi, eax
lea eax, [ebx + ecx]
cdq
sub eax, edx
mov ecx, dword [esp + 0x18]
sar eax, 1
mov dword [ebp + 0x20], eax
mov ebx, dword [ebp + 0x1c]
sar esi, 1
add eax, esi
mov dword [ebp + 0x10], esi
mov esi, dword [ebp + 0xc]
cdq
sub eax, edx
mov dword [ebp + 0x34], ebx
sar eax, 1
mov dword [ecx], eax
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 4]
add eax, esi
cdq
sub eax, edx
mov edi, eax
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar edi, 1
mov ebx, eax
mov dword [ebp + 0xc], edi
lea eax, [ecx + esi]
sar ebx, 1
cdq
sub eax, edx
mov dword [ebp + 0x2c], ebx
mov ecx, eax
sar ecx, 1
lea eax, [edi + ecx]
cdq
sub eax, edx
mov esi, eax
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar esi, 1
sar eax, 1
mov dword [ebp + 0x24], eax
add eax, esi
cdq
sub eax, edx
mov dword [ebp + 0x14], esi
mov edx, dword [esp + 0x10]
sar eax, 1
mov dword [ebp + 0x1c], eax
mov ebp, dword [esp + 0x18]
jmp 0x10156600