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

Disassembly:
sub esp, 0x38
mov eax, dword [ecx]
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], eax
push esi
mov esi, dword [ecx + 8]
test eax, eax
je 0x102a44fc
imul eax, dword [esp + 0x40], 0xcc
lea ecx, [edx + 4]
push ebx
push ebp
push edi
add ecx, eax
mov dword [esp + 0x18], ecx
lea ecx, [ecx]
test byte [esi + 0x10], 8
mov eax, dword [ecx + 0xc4]
mov edi, dword [ecx + 0xc8]
mov dword [esp + 0x14], eax
jne 0x102a44e5
mov eax, dword [esi]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
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 + 0x30], eax
mov ebx, dword [esp + 0x30]
mov eax, dword [esi + 4]
add ebx, edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
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 eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x50]
test eax, eax
jne 0x102a4380
cmp byte [edi + 0x78], al
je 0x102a438f
cmp byte [edi + 0x7a], al
jne 0x102a43a4
mov dword [esp + 0x24], 0
xor ecx, ecx
mov dword [esi + 0xc], ebp
xor ebx, ebx
mov dword [esp + 0x20], ecx
xor edx, edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edx
cmp eax, 1
jne 0x102a42f0
mov eax, dword [esi]
lea ecx, [esp + 0x3c]
mov edx, dword [esi + 4]
push ecx
mov ecx, dword [esp + 0x20]
add edx, eax
push eax
lea ecx, [ecx + 0x19c]
call fcn.102a3530
mov ebx, dword [esp + 0x48]
add esp, 8
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], ecx
mov eax, ecx
dec eax
je 0x102a447e
dec eax
je 0x102a4479
dec eax
je 0x102a446d
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x102a43b1
test byte [ebx + 0x10], 8
jne 0x102a432c
mov eax, dword [esp + 0x4c]
mov ecx, ebx
mov edx, dword [esp + 0x1c]
push edi
push eax
call fcn.102a3ea0
add esp, 8
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 4]
mov edi, dword [ebx + 0xc]
sar ecx, 1
sar eax, 1
sub ecx, eax
sar edi, 1
sub ecx, dword [ebx]
add ecx, dword [esi]
add edi, dword [ebx + 8]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
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 + 0x38], eax
mov ecx, dword [esp + 0x38]
mov eax, ebp
sar eax, 1
sub ecx, eax
add ecx, edi
mov dword [esp + 0x10], ecx
jmp 0x102a43b5
cmp eax, 1
jne 0x102a4293
cmp byte [edi + 0x79], 0
jne 0x102a439a
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebp
jmp 0x102a44dd
cmp byte [edi + 0x7b], 0
je 0x102a4293
mov dword [esp + 0x24], 1
jmp 0x102a429b
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x50]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebp
cmp byte [eax + 0x7c], 0
je 0x102a4435
cmp ebp, 0x40
jg 0x102a4420
cmp ebp, 0x20
jl 0x102a43e1
sar ebp, 1
add ecx, ebp
mov ebp, 0x40
and ecx, 0xffffffc0
mov dword [esp + 0x10], ecx
jmp 0x102a4435
test ebp, ebp
jle 0x102a4414
lea ebx, [ebp + 0x20]
add ebx, ecx
lea edi, [ecx + 0x20]
and ebx, 0xffffffc0
and edi, 0xffffffc0
mov eax, ebx
mov edx, edi
sub eax, ebp
sub eax, ecx
sub edx, ecx
jns 0x102a4401
neg edx
test eax, eax
jns 0x102a4407
neg eax
cmp edx, eax
mov ecx, ebx
cmovle ecx, edi
mov dword [esp + 0x10], ecx
jmp 0x102a4435
add ecx, 0x20
and ecx, 0xffffffc0
mov dword [esp + 0x10], ecx
jmp 0x102a4435
push ecx
mov ecx, dword [esp + 0x1c]
mov edx, ebp
call fcn.102a3e40
mov ecx, dword [esp + 0x14]
add esp, 4
mov ebp, eax
lea edi, [ebp + 0x20]
mov dword [esi + 0xc], ebp
add edi, ecx
lea ebx, [ecx + 0x20]
and edi, 0xffffffc0
and ebx, 0xffffffc0
sub edi, ebp
sub ebx, ecx
sub edi, ecx
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 eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
cmovle edi, ebx
add eax, edi
jmp 0x102a4482
mov eax, ebx
mov dword [esi + 8], edx
sub eax, edx
mov dword [esi + 0xc], eax
jmp 0x102a4485
mov dword [esi + 8], edx
jmp 0x102a4485
mov eax, ebx
sub eax, ebp
mov dword [esi + 8], eax
cmp dword [esp + 0x24], 0
je 0x102a44dd
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
cmp eax, 0x40
jge 0x102a449e
mov eax, 0x40
jmp 0x102a44a4
add eax, 0x20
and eax, 0xffffffc0
dec ecx
je 0x102a44d1
dec ecx
je 0x102a44da
dec ecx
je 0x102a44dd
mov edx, eax
mov dword [esi + 0xc], eax
sar edx, 1
test al, 0x40
je 0x102a44c5
lea ecx, [edx + edi]
and ecx, 0xffffffc0
add ecx, 0x20
sub ecx, edx
jmp 0x102a44d7
lea ecx, [edi + 0x20]
add ecx, edx
and ecx, 0xffffffc0
sub ecx, edx
jmp 0x102a44d7
mov ecx, dword [esp + 0x28]
sub ecx, eax
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x18]
or dword [esi + 0x10], 8
mov eax, dword [esp + 0x2c]
add esi, 0x1c
dec eax
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x102a41f0
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x38
ret