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

Disassembly:
sub esp, 0x1b0
mov eax, dword [0x10160380]
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 0x1012f399
mov eax, esi
sar eax, 8
cmp eax, dword [ebx + 0x54]
jl 0x1012f399
mov eax, ecx
sar eax, 8
cmp eax, dword [ebx + 0x54]
jl 0x1012f399
mov eax, edi
sar eax, 8
cmp eax, dword [ebx + 0x54]
jge 0x1012f3b7
mov eax, dword [ebx + 0x50]
cmp dword [esp + 0x18], eax
jge 0x1012f3e0
sar esi, 8
cmp esi, eax
jge 0x1012f3e0
sar ecx, 8
cmp ecx, eax
jge 0x1012f3e0
sar edi, 8
cmp edi, eax
jge 0x1012f3e0
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.100dfbc8
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 0x1012f417
lea eax, [esi + esi*2]
sar eax, 3
add eax, ecx
jmp 0x1012f41f
lea eax, [ecx + ecx*2]
sar eax, 3
add eax, esi
cmp eax, 0x7fff
jg 0x1012f4e8
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 0x1012f4e8
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 0x1012f4e8
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 0x1012f4e8
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 0x1012f4e8
push dword [ebp + 4]
push esi
push dword [esp + 0x34]
call fcn.1012f5b0
lea eax, [esp + 0x40]
add esp, 0xc
cmp ebp, eax
je 0x1012f3c1
mov edx, dword [ebp - 0x18]
sub ebp, 0x18
mov dword [esp + 0x10], edx
jmp 0x1012f3e0
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 0x1012f3e0