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

Disassembly:
sub esp, 0x28
imul eax, dword [esp + 0x34], 0xcc
mov ecx, dword [esp + 0x30]
add ecx, eax
push ebx
mov ebx, dword [esp + 0x30]
push esi
mov eax, dword [ecx + 0xc8]
mov esi, dword [ecx + 0xcc]
test byte [ebx + 0x10], 8
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], eax
jne 0x1010f4b0
mov eax, dword [ebx]
push ebp
push edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
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 edi, dword [esp + 0x28]
mov eax, dword [ebx + 4]
add edi, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
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 ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x28]
test ecx, ecx
jne 0x1010f172
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x78], cl
je 0x1010f185
cmp byte [eax + 0x7a], cl
jne 0x1010f1a1
mov dword [esp + 0x28], 0
xor edi, edi
mov dword [ebx + 0xc], ebp
xor esi, esi
mov dword [esp + 0x18], edi
xor edx, edx
mov dword [esp + 0x10], esi
cmp ecx, 1
jne 0x1010f238
mov ecx, dword [esp + 0x40]
mov esi, dword [ebx]
add esi, dword [ebx + 4]
mov dword [esp + 0x24], esi
mov al, byte [ecx + 0x9bc]
mov byte [esp + 0x3c], al
mov eax, dword [ecx + 0x19c]
add ecx, 0x1a0
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], eax
test eax, eax
je 0x1010f1d0
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x9b8]
mov dword [esp + 0x2c], eax
neg eax
mov dword [esp + 0x30], eax
nop dword [eax]
sub esi, dword [ecx + 0xc]
cmp esi, eax
jl 0x1010f1d0
mov eax, dword [ecx + 8]
add eax, dword [esp + 0x2c]
cmp dword [esp + 0x24], eax
jle 0x1010f1ae
mov eax, dword [esp + 0x20]
add ecx, 0x20
mov esi, dword [esp + 0x24]
dec eax
mov dword [esp + 0x20], eax
test eax, eax
mov eax, dword [esp + 0x30]
jne 0x1010f140
jmp 0x1010f1d0
cmp ecx, 1
jne 0x1010f0d0
mov eax, dword [esp + 0x48]
cmp byte [eax + 0x79], 0
jne 0x1010f197
or dword [ebx + 0x10], 8
mov dword [ebx + 8], edi
pop edi
mov dword [ebx + 0xc], ebp
pop ebp
pop esi
pop ebx
add esp, 0x28
ret
cmp byte [eax + 0x7b], 0
je 0x1010f0d0
mov dword [esp + 0x28], 1
jmp 0x1010f0d8
cmp byte [esp + 0x3c], dl
jne 0x1010f1c0
mov eax, dword [esp + 0x40]
cmp esi, dword [eax + 0x9b4]
jg 0x1010f1d0
mov eax, dword [ecx + 0x10]
mov edi, 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x40]
mov esi, dword [ecx + 0x3a0]
mov eax, esi
shl eax, 5
add ecx, 0x384
add ecx, eax
test esi, esi
je 0x1010f230
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x9b8]
neg eax
mov dword [esp + 0x30], eax
nop dword [eax + eax]
mov edx, dword [ecx + 8]
sub edx, dword [ebx]
cmp edx, eax
jl 0x1010f22e
mov edi, dword [esp + 0x40]
mov eax, dword [ecx + 0xc]
sub eax, dword [edi + 0x9b8]
mov edi, dword [esp + 0x18]
cmp dword [ebx], eax
jge 0x1010f2cc
mov eax, dword [esp + 0x30]
sub ecx, 0x20
sub esi, 1
jne 0x1010f200
xor edx, edx
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
mov eax, edi
sub eax, 1
je 0x1010f42c
sub eax, 1
je 0x1010f426
sub eax, 1
je 0x1010f41f
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x1010f2f2
test byte [edi + 0x10], 8
jne 0x1010f278
push dword [esp + 0x48]
push ecx
push dword [esp + 0x48]
push edi
call fcn.1010f010
add esp, 0x10
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 4]
mov esi, dword [edi + 0xc]
sar ecx, 1
sar eax, 1
sub ecx, eax
sar esi, 1
sub ecx, dword [edi]
add ecx, dword [ebx]
add esi, dword [edi + 8]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
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 + 0x44], eax
mov edx, dword [esp + 0x44]
mov eax, ebp
sar eax, 1
sub edx, eax
add edx, esi
mov dword [esp + 0x14], edx
jmp 0x1010f2fa
cmp byte [esp + 0x3c], 0
jne 0x1010f2e3
mov eax, dword [esp + 0x40]
cmp edx, dword [eax + 0x9b4]
jge 0x1010f22e
mov edx, dword [ecx + 0x10]
or edi, 2
mov dword [esp + 0x18], edi
jmp 0x1010f230
mov edx, dword [esp + 0x14]
mov eax, ebp
sar eax, 1
mov ecx, dword [esp + 0x48]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], ebp
cmp byte [ecx + 0x7c], 0
je 0x1010f3e1
cmp ebp, 0x40
jg 0x1010f381
cmp ebp, 0x20
jl 0x1010f32b
add edx, eax
mov ebp, 0x40
and edx, 0xffffffc0
mov dword [esp + 0x14], edx
jmp 0x1010f3e1
lea eax, [edx + 0x20]
and eax, 0xffffffc0
mov dword [esp + 0x40], eax
test ebp, ebp
jle 0x1010f379
lea edi, [edx + ebp]
mov esi, eax
sub esi, edx
lea eax, [edi + 0x20]
and eax, 0xffffffc0
sub eax, ebp
mov ecx, eax
sub ecx, edx
sub edx, eax
test ecx, ecx
cmovns edx, ecx
mov ecx, dword [esp + 0x14]
mov eax, ecx
mov dword [esp + 0x14], ecx
sub eax, dword [esp + 0x40]
test esi, esi
cmovns eax, esi
cmp eax, edx
mov edx, ecx
cmovg edx, edi
add edx, 0x20
and edx, 0xffffffc0
mov dword [esp + 0x14], edx
jmp 0x1010f3e1
mov edx, eax
mov dword [esp + 0x14], edx
jmp 0x1010f3e1
mov eax, dword [esp + 0x34]
mov ecx, ebp
mov eax, dword [eax + 0xc]
sub ecx, eax
jns 0x1010f392
mov ecx, eax
sub ecx, ebp
cmp ecx, 0x28
jge 0x1010f3a6
cmp eax, 0x30
jge 0x1010f3a3
mov eax, 0x30
jmp 0x1010f3b0
cmp ecx, 0x28
cmovge eax, ebp
cmp eax, 0xc0
jge 0x1010f3db
mov ecx, eax
and eax, 0xffffffc0
and ecx, 0x3f
cmp ecx, 0xa
jb 0x1010f3d6
cmp ecx, 0x20
jae 0x1010f3cc
mov ecx, 0xa
lea ebp, [eax + ecx]
jmp 0x1010f3e1
mov esi, 0x36
cmp ecx, esi
cmovb ecx, esi
lea ebp, [eax + ecx]
jmp 0x1010f3e1
lea ebp, [eax + 0x20]
and ebp, 0xffffffc0
lea esi, [ebp + 0x20]
mov dword [ebx + 0xc], ebp
add esi, edx
lea edi, [edx + 0x20]
and esi, 0xffffffc0
and edi, 0xffffffc0
sub esi, ebp
mov dword [esp + 0x40], edi
mov eax, esi
sub eax, edx
cdq
mov ecx, eax
mov eax, edi
sub eax, dword [esp + 0x14]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
mov edx, edi
mov edi, dword [esp + 0x18]
cmp eax, ecx
mov eax, dword [esp + 0x10]
cmovg edx, esi
jmp 0x1010f434
mov eax, esi
sub eax, edx
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x10]
jmp 0x1010f434
mov eax, dword [esp + 0x10]
mov edx, eax
sub edx, ebp
mov dword [ebx + 8], edx
cmp dword [esp + 0x28], 0
je 0x1010f4aa
mov ecx, dword [ebx + 0xc]
cmp ecx, 0x40
jge 0x1010f44d
mov ecx, 0x40
jmp 0x1010f453
add ecx, 0x20
and ecx, 0xffffffc0
sub edi, 1
je 0x1010f4a2
sub edi, 1
je 0x1010f4a7
sub edi, 1
je 0x1010f4aa
mov esi, ecx
sar esi, 1
lea eax, [esi + edx]
test cl, 0x40
je 0x1010f488
and eax, 0xffffffc0
mov dword [ebx + 0xc], ecx
pop edi
add eax, 0x20
sub eax, esi
or dword [ebx + 0x10], 8
pop ebp
pop esi
mov dword [ebx + 8], eax
pop ebx
add esp, 0x28
ret
add eax, 0x20
mov dword [ebx + 0xc], ecx
pop edi
and eax, 0xffffffc0
sub eax, esi
or dword [ebx + 0x10], 8
pop ebp
pop esi
mov dword [ebx + 8], eax
pop ebx
add esp, 0x28
ret
sub eax, ecx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], ecx
or dword [ebx + 0x10], 8
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x28
ret