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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov eax, dword [0x103c2010]
xor eax, ebp
mov dword [esp + 0x78], eax
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
mov edi, dword [ebp + 0x24]
mov dword [esp + 4], edx
cmp edx, 0xffffffff
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
je 0x1008fa9a
cmp edi, 0xffffffff
je 0x1008fa9a
or ecx, eax
jne 0x1008f944
cmp edi, 4
jne 0x1008f944
mov ecx, esi
shld ecx, ebx, 0x18
mov edx, esi
shr edx, 8
mov eax, 0x225c17c
cmp eax, ecx
mov eax, 0
sbb eax, edx
jb 0x1008faa0
mov ecx, 0x3b9aca00
mov eax, ebx
mul ecx
imul esi, esi, 0x3b9aca00
mov ebx, dword [esp + 4]
shr ebx, 2
add ebx, eax
adc esi, edx
mov ecx, dword [ebp + 0x2c]
and dword [esp + 4], 3
jmp 0x1008fa51
mov ecx, dword [esp + 0xc]
mov edx, edi
mov edi, eax
mov eax, ecx
or eax, edi
mov edi, edx
jne 0x1008f9a2
cmp edi, 0x190
jne 0x1008f9a2
mov eax, 0xbf94d454
cmp eax, ebx
mov eax, 0xd6
sbb eax, esi
jb 0x1008faa0
mov edi, 0x989680
mov eax, ebx
mov ecx, dword [esp + 4]
mul edi
mov edi, edx
mov edx, 0x51eb851f
mov ebx, eax
mov eax, ecx
mul edx
imul esi, esi, 0x989680
shr edx, 7
add ebx, edx
adc esi, edi
imul eax, edx, 0x190
jmp 0x1008fa46
mov eax, ecx
or eax, dword [esp + 0x10]
jne 0x1008f9f5
cmp edi, 0xfa0
jne 0x1008f9f5
mov eax, 0x7bd04b55
cmp eax, ebx
mov eax, 0x863
sbb eax, esi
jb 0x1008faa0
mov edi, 0xf4240
mov eax, ebx
mov ecx, dword [esp + 4]
mul edi
mov edi, edx
mov edx, 0x10624dd3
mov ebx, eax
mov eax, ecx
mul edx
imul esi, esi, 0xf4240
shr edx, 8
add ebx, edx
adc esi, edi
imul eax, edx, 0xfa0
jmp 0x1008fa46
mov eax, ecx
or eax, dword [esp + 0x10]
jne 0x1008fa66
cmp edi, 0x3d0900
jne 0x1008fa66
mov eax, 0xa5a64af6
cmp eax, ebx
mov eax, 0x20c49b
sbb eax, esi
jb 0x1008faa0
mov edi, 0x3e8
mov eax, ebx
mov ecx, dword [esp + 4]
mul edi
mov edi, edx
mov edx, 0x431bde83
mov ebx, eax
mov eax, ecx
mul edx
imul esi, esi, 0x3e8
shr edx, 0x14
add ebx, edx
adc esi, edi
imul eax, edx, 0x3d0900
mov edx, ecx
mov ecx, dword [ebp + 0x2c]
sub edx, eax
mov dword [esp + 4], edx
xor edi, edi
xor edx, edx
mov dword [ecx], edi
mov dword [ecx + 4], edx
mov eax, dword [esp + 4]
mov dword [ecx + 8], eax
jmp 0x1008fb0a
cmp ecx, 1
mov edx, dword [esp + 0x10]
mov eax, edx
sbb eax, 0
jl 0x1008fa9a
test edi, edi
jne 0x1008fa9a
mov eax, edx
test esi, esi
js 0x1008fe77
mov edi, eax
mov eax, ecx
xor eax, 1
or eax, edi
jne 0x1008fedc
xor edx, edx
mov ecx, dword [ebp + 0x2c]
xor edi, edi
jmp 0x1008fa55
mov eax, ebx
or eax, esi
je 0x1008faa7
mov eax, esi
shr eax, 0x1f
jmp 0x1008faa9
xor eax, eax
cmp dword [esp + 0x10], 0
sets dl
mov dword [esp + 0x18], eax
xor dl, al
cmp dword [esp + 4], 0xffffffff
je 0x1008facc
mov eax, dword [esp + 0xc]
or eax, dword [esp + 0x10]
jne 0x1008fb21
test edi, edi
jne 0x1008fb21
xor esi, esi
xor eax, eax
dec eax
mov ebx, eax
add ebx, 1
adc esi, 0x7fffffff
cmp byte [esp + 0x18], 0
mov ecx, eax
cmovne ecx, ebx
mov edi, dword [ebp + 0x2c]
mov dword [edi], ecx
mov ecx, SysReAllocString
cmovne ecx, esi
mov dword [edi + 4], ecx
test dl, dl
cmove ebx, eax
mov dword [edi + 8], 0xffffffff
mov eax, SysReAllocString
cmove esi, eax
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.102f4c53
mov eax, ebx
mov edx, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp edi, 0xffffffff
je 0x1008fd73
mov byte [esp + 0xb], dl
mov eax, esi
sar eax, 0x1f
mov ecx, eax
xor eax, ebx
mov ebx, 0xee6b2800
mov edx, dword [esp + 4]
sub ebx, edx
xor ecx, esi
test esi, esi
cmovns ebx, edx
mov edx, 0xee6b2800
mul edx
mov dword [esp + 4], edx
mov esi, eax
mov eax, ecx
mov ecx, 0xee6b2800
mul ecx
add esi, ebx
mov dword [esp + 0x14], esi
adc eax, dword [esp + 4]
mov dword [esp + 0x28], eax
adc edx, 0
mov dword [esp + 0x2c], edx
setb byte [esp + 4]
mov edx, dword [esp + 0x10]
mov eax, edx
sar eax, 0x1f
mov ecx, eax
xor eax, dword [esp + 0xc]
mov esi, 0xee6b2800
sub esi, edi
xor ecx, edx
test edx, edx
cmovns esi, edi
mov edi, 0xee6b2800
mul edi
mov dword [esp + 0xc], edx
mov ebx, eax
mov eax, ecx
mul edi
mov edi, eax
add ebx, esi
adc edi, dword [esp + 0xc]
adc edx, 0
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x50]
movdqa xmmword [esi], xmm0
movzx ecx, byte [esp + 4]
setb al
movzx eax, al
mov dword [esp + 0x48], eax
push eax
mov dword [esp + 0x20], edx
push edx
mov dword [esp + 0x14], edi
push edi
mov dword [esp + 0x1c], ebx
push ebx
mov dword [esp + 0x5c], ecx
push ecx
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x30]
push esi
call fcn.1008d328
add esp, 0x24
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 8]
cmp byte [ebp + 8], 0
je 0x1008fc62
xor eax, eax
test ebx, ebx
sets al
xor edx, edx
mov ecx, edi
mov edi, esi
or edi, dword [esp + 0x20]
mov edi, ecx
setne dl
cmovne eax, edx
cmp al, 1
jne 0x1008fc62
xor esi, esi
xor eax, eax
dec eax
mov edi, eax
add edi, 1
mov ebx, SysReAllocString
adc ebx, esi
cmp byte [esp + 0xb], 0
mov edx, SysReAllocString
cmove ebx, edx
cmove edi, eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x20], 0
mov eax, edi
mov ecx, dword [esp + 0x10]
mul ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], eax
mov eax, ebx
mul ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 4], eax
mov eax, edi
mov ecx, dword [esp + 0xc]
mul ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x44], eax
mov eax, ebx
mul ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, edi
mov edi, esi
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
imul ecx, eax
mov edx, dword [esp + 0x1c]
imul ebx, edx
mul edx
mov dword [esp + 0x1c], eax
add ebx, edx
add ebx, ecx
mov eax, edi
imul edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mul ecx
imul esi, ecx
add esi, edx
add esi, edi
add eax, dword [esp + 0x1c]
adc esi, ebx
add eax, dword [esp + 0x30]
adc esi, dword [esp + 0x34]
xor ecx, ecx
mov ebx, dword [esp + 0x38]
add ebx, dword [esp + 0x3c]
setb cl
mov edx, dword [esp + 0x40]
add dword [esp + 4], edx
mov edx, dword [esp + 0x2c]
sbb edx, 0
mov edi, dword [esp + 0x4c]
sbb edi, 0
add ebx, eax
adc ecx, esi
sub edx, ebx
sbb edi, ecx
mov ecx, dword [esp + 4]
add ecx, dword [esp + 0x44]
sbb edx, 0
sbb edi, 0
mov ebx, dword [esp + 0x14]
sub ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov esi, eax
mov dword [esp + 4], ecx
sbb esi, ecx
sbb edx, 0
sbb edi, 0
mov ecx, edx
or ecx, edi
je 0x1008fd92
cmp edx, 0x77359400
mov ecx, edi
sbb ecx, 0
jae 0x1008fdd5
pcmpeqd xmm0, xmm0
lea eax, [esp + 0x60]
movdqa xmmword [eax], xmm0
xor ecx, ecx
push ecx
push ecx
push ecx
mov ecx, 0xee6b2800
push ecx
push edi
push edx
push esi
push ebx
mov esi, eax
push eax
call fcn.1008d328
add esp, 0x24
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x1008fda0
mov eax, dword [ebp + 0x2c]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov ecx, dword [esp + 4]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
xor ebx, ebx
xor esi, esi
jmp 0x1008fb0a
push 0
push 0xee6b2800
push esi
push ebx
call fcn.10314f90
imul edi, eax, 0x1194d800
add edi, ebx
cmp byte [esp + 0x18], 0
je 0x1008fdcd
xor ecx, ecx
mov esi, eax
neg esi
mov ebx, 0
sbb ebx, edx
test edi, edi
je 0x1008fe17
not eax
not edx
mov ecx, 0xee6b2800
sub ecx, edi
jmp 0x1008fdcf
mov ecx, edi
mov esi, eax
mov ebx, edx
jmp 0x1008fe17
xor eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 0x24]
xor edx, 0x77359400
or ecx, edx
or eax, edi
or eax, ecx
sete al
mov edx, dword [esp + 0x18]
and al, dl
movzx ecx, al
dec ecx
xor eax, eax
dec eax
mov esi, eax
add esi, 1
mov ebx, SysReAllocString
adc ebx, 0
test dl, dl
cmove esi, eax
mov eax, SysReAllocString
cmove ebx, eax
mov eax, dword [ebp + 0x2c]
mov dword [eax], esi
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
cmp byte [esp + 0xb], 0
je 0x1008fe62
mov edx, dword [esp + 0x58]
or edx, ecx
mov esi, dword [esp + 0x5c]
or esi, eax
xor ebx, ebx
or esi, edx
mov esi, 0
je 0x1008fb0a
xor edx, edx
dec edx
add ecx, edx
mov esi, SysReAllocString
adc eax, esi
and eax, esi
and ecx, edx
not ecx
not eax
jmp 0x1008fe6e
xor edx, edx
dec edx
and ecx, edx
mov edx, SysReAllocString
and eax, edx
mov ebx, ecx
mov esi, eax
jmp 0x1008fb0a
xor edx, edx
cmp dword [esp + 4], 0
setne dl
neg edx
mov edi, edx
sub edi, ebx
sbb edx, esi
mov dword [esp + 0x18], edx
push eax
push ecx
push edx
mov ebx, edi
push edi
call fcn.10315000
mov edi, eax
xor esi, esi
neg eax
mov ecx, 0
sbb ecx, edx
cmp dword [esp + 4], 0
not edi
cmove edi, eax
not edx
cmove edx, ecx
mov dword [esp + 0x14], edx
push dword [esp + 0x10]
push dword [esp + 0x10]
push dword [esp + 0x20]
push ebx
call fcn.10314f90
mov ebx, eax
neg ebx
sbb esi, edx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebp + 0x2c]
jmp 0x1008fa55
push edi
push ecx
push esi
push ebx
call fcn.10314f90
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
push edi
push dword [esp + 0x10]
push esi
push ebx
call fcn.10315000
mov edi, eax
mov ecx, dword [ebp + 0x2c]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x1008fa55