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

Disassembly:
sub esp, 0x34
mov eax, dword [esp + 0x38]
push esi
mov esi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x18], eax
test eax, eax
je 0x102e20ad
imul eax, dword [esp + 0x44], 0xcc
mov ecx, dword [esp + 0x40]
push ebx
add ecx, 4
push ebp
add ecx, eax
mov dword [esp + 0x10], ecx
push edi
nop dword [eax]
nop word [eax + eax]
test byte [esi + 0x10], 8
mov eax, dword [ecx + 0xc4]
mov edi, dword [ecx + 0xc8]
mov dword [esp + 0x10], eax
jne 0x102e2096
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x28]
mov eax, dword [esi + 4]
add ebp, edi
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x48], ebx
test eax, eax
jne 0x102e1f54
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x78], 0
je 0x102e1f67
cmp byte [eax + 0x7a], 0
jne 0x102e1f7c
mov dword [esp + 0x1c], 0
xor ecx, ecx
mov dword [esi + 0xc], ebx
xor edx, edx
mov dword [esp + 0x18], ecx
xor edi, edi
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x50], 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], edi
jne 0x102e1e85
mov ecx, dword [esi]
lea eax, [esp + 0x38]
push eax
mov eax, dword [esi + 4]
add eax, ecx
push ecx
push eax
mov eax, dword [esp + 0x58]
add eax, 0x19c
push eax
call fcn.102dfed0
mov edx, dword [esp + 0x4c]
add esp, 0x10
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], ecx
mov eax, ecx
sub eax, 1
je 0x102e2029
sub eax, 1
je 0x102e2024
sub eax, 1
je 0x102e2018
mov edx, dword [esi + 0x14]
mov dword [esp + 0x30], edx
test edx, edx
je 0x102e1f1a
test byte [edx + 0x10], 8
jne 0x102e1ecc
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [esp + 0x54]
push edx
call fcn.102e17e0
mov edx, dword [esp + 0x40]
add esp, 0x10
mov eax, dword [edx + 4]
mov ecx, dword [esi + 4]
mov edi, dword [edx + 0xc]
sar ecx, 1
sar eax, 1
sub ecx, eax
sar edi, 1
sub ecx, dword [edx]
add ecx, dword [esi]
add edi, dword [edx + 8]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x34]
mov eax, ebx
sar eax, 1
sub ebp, eax
add ebp, edi
mov eax, dword [esp + 0x54]
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebx
cmp byte [eax + 0x7c], 0
je 0x102e1fda
cmp ebx, 0x40
jg 0x102e1fc5
cmp ebx, 0x20
jl 0x102e1f89
sar ebx, 1
add ebp, ebx
mov dword [esp + 0x48], 0x40
mov eax, dword [esp + 0x48]
and ebp, 0xffffffc0
jmp 0x102e1fdc
cmp eax, 1
jne 0x102e1e25
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x79], 0
jne 0x102e1f72
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebx
jmp 0x102e208e
cmp byte [eax + 0x7b], 0
je 0x102e1e25
mov dword [esp + 0x1c], 1
jmp 0x102e1e2d
test ebx, ebx
jle 0x102e1fb9
lea edi, [ebx + ebp]
lea eax, [edi + 0x20]
and eax, 0xffffffc0
lea edx, [ebp + 0x20]
sub eax, ebx
and edx, 0xffffffc0
sub eax, ebp
sub edx, ebp
mov ecx, eax
neg ecx
test eax, eax
cmovns ecx, eax
mov eax, edx
neg eax
test edx, edx
cmovns eax, edx
cmp eax, ecx
cmovg ebp, edi
mov eax, dword [esp + 0x48]
add ebp, 0x20
and ebp, 0xffffffc0
jmp 0x102e1fdc
push 0
push ebx
push dword [esp + 0x1c]
call fcn.102e0060
add esp, 0xc
mov dword [esp + 0x48], eax
jmp 0x102e1fdc
mov eax, ebx
lea edi, [ebp + 0x20]
add edi, eax
lea ebx, [ebp + 0x20]
and edi, 0xffffffc0
and ebx, 0xffffffc0
sub edi, eax
sub ebx, ebp
sub edi, ebp
mov eax, edi
cdq
mov ecx, eax
mov eax, ebx
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
mov ecx, dword [esp + 0x18]
cmovle edi, ebx
lea eax, [edi + ebp]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0xc], eax
jmp 0x102e2030
mov eax, edx
mov dword [esi + 8], edi
sub eax, edi
mov dword [esi + 0xc], eax
jmp 0x102e2030
mov dword [esi + 8], edi
jmp 0x102e2030
mov eax, edx
sub eax, ebx
mov dword [esi + 8], eax
cmp dword [esp + 0x1c], 0
je 0x102e208e
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp eax, 0x40
jge 0x102e2049
mov eax, 0x40
jmp 0x102e204f
add eax, 0x20
and eax, 0xffffffc0
sub ecx, 1
je 0x102e2082
sub ecx, 1
je 0x102e208b
sub ecx, 1
je 0x102e208e
mov edx, eax
mov dword [esi + 0xc], eax
sar edx, 1
test al, 0x40
je 0x102e2076
lea ecx, [edx + edi]
and ecx, 0xffffffc0
add ecx, 0x20
sub ecx, edx
jmp 0x102e2088
lea ecx, [edi + 0x20]
add ecx, edx
and ecx, 0xffffffc0
sub ecx, edx
jmp 0x102e2088
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x14]
or dword [esi + 0x10], 8
mov eax, dword [esp + 0x24]
add esi, 0x1c
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jne 0x102e1d80
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x34
ret