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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, dword [ebp + 0x10]
movsd xmm1, qword [ebp + 8]
mov eax, dword [0x102b0014]
xor eax, ebp
mov dword [esp + 0x88], eax
cmp esi, 2
jae 0x101e6276
pcmpeqd xmm0, xmm0
lea edx, [esp + 0x70]
movdqa xmmword [edx], xmm0
lea ecx, [esp + 0x60]
movsd qword [ecx], xmm1
call fcn.101e6bea
test esi, esi
je 0x101e6436
xor edi, edi
xorps xmm0, xmm0
cvtsd2ss xmm0, qword [ebp + 8]
movd ecx, xmm0
mov eax, ecx
shr eax, 0x17
movzx eax, al
add eax, 0xffffff6a
mov ebx, ecx
and ebx, 0x7fffff
mov dword [esp + 0x18], ecx
test ecx, 0x7f800000
mov esi, 0xffffff6b
cmovne esi, eax
lea edx, [ebx + 0x800000]
mov dword [esp + 0x20], ebx
cmove edx, ebx
mov ecx, 0x1000
mov dword [esp + 0x1c], esi
lea ebx, [esi - 1]
lea eax, [edx + edx]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
lea esi, [edx + edx]
inc esi
mov dword [esp + 0x10], ebx
mov eax, ebx
mov ebx, edi
shld edi, esi, 0xa
shl esi, 0xa
add eax, 0xfffffff6
cmp ebx, ecx
jb 0x101e624a
test edi, edi
js 0x101e653a
mov ebx, dword [esp + 0xc]
shld edi, esi, 1
add esi, esi
dec eax
test edi, edi
jns 0x101e6266
jmp 0x101e653e
jne 0x101e6be4
pcmpeqd xmm0, xmm0
lea ebx, [esp + 0x70]
movdqa xmmword [ebx], xmm0
lea esi, [esp + 0x60]
movsd qword [esi], xmm1
mov ecx, esi
mov edx, ebx
call fcn.101e6bea
movaps xmm0, xmmword [0x1025ef20]
movups xmmword [esi], xmm0
lea eax, [esp + 0x5c]
mov dword [eax], 0xffffffff
mov edi, dword [ebx + 8]
mov dword [esp + 0xc], edi
mov ecx, 0xffffff84
sub ecx, edi
mov edx, 0xffffffa0
sub edx, edi
push eax
push esi
push edx
push ecx
call fcn.101fe8dc
add esp, 0x10
mov edi, dword [ebx + 4]
mov ecx, dword [esi + 4]
mov eax, ecx
mul edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov esi, dword [ebx]
mov eax, ecx
mul esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
lea eax, [esp + 0x60]
mov ebx, dword [eax]
mov eax, ebx
mul edi
mov edi, edx
mov dword [esp + 0x20], eax
mov eax, ebx
mul esi
mov esi, dword [esp + 0x14]
xor ecx, ecx
add edx, dword [esp + 0x20]
setb cl
add edx, dword [esp + 0x1c]
adc ecx, 0
mov eax, dword [esp + 0xc]
lea ebx, [esp + 0x60]
add eax, dword [ebx + 8]
imul ebx, eax, 0x4d1
mov dword [esp + 0xc], ebx
xor ebx, ebx
add edi, dword [esp + 0x10]
adc esi, ebx
add edi, dword [esp + 0x18]
adc esi, ebx
add edx, 0x80000000
adc edi, ecx
mov dword [esp + 0x18], edi
adc esi, 0
mov ecx, 0xffffffc0
sub ecx, eax
xor eax, eax
inc eax
xor edx, edx
shld edx, eax, cl
shl eax, cl
shrd edi, esi, cl
mov dword [esp + 0x10], edi
mov edi, esi
shr edi, cl
mov dword [esp + 0x28], ecx
test cl, 0x20
cmove edi, dword [esp + 0x10]
cmovne edx, eax
cmovne eax, ebx
mov dword [esp + 0x38], eax
add eax, 0xffffffff
mov dword [esp + 0x34], edx
adc edx, 0xffffffff
mov dword [esp + 0x24], edx
and esi, edx
mov edx, edi
mov dword [esp + 0x2c], eax
and dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
add eax, 0x26d51
sar eax, 0xc
cmp dword [eax*4 + 0x102a6418], edi
lea ecx, [eax + 1]
cmova ecx, eax
mov dword [esp + 0x58], ecx
mov eax, dword [ebp + 0x20]
mov dword [eax], 0
mov edi, dword [ecx*4 + 0x102a6414]
mov dword [esp + 0x10], ecx
test ecx, ecx
jle 0x101e6a26
mov dword [esp + 0x14], esi
xor ebx, ebx
mov ecx, dword [ebp + 0x14]
mov eax, edx
xor edx, edx
div edi
add al, 0x30
mov esi, dword [ebp + 0x18]
mov byte [esi + ebx], al
mov eax, dword [ebp + 0x20]
mov ebx, dword [eax]
inc ebx
mov dword [eax], ebx
cmp ecx, 1
je 0x101e6af6
mov esi, dword [esp + 0x10]
dec esi
mov eax, edi
mov dword [esp + 0xc], ecx
mov ecx, ebx
mov ebx, edx
mov edx, 0xcccccccd
mul edx
mov edi, edx
mov edx, ebx
mov ebx, ecx
mov ecx, dword [esp + 0xc]
shr edi, 3
mov dword [esp + 0x10], esi
lea eax, [esi + 1]
dec ecx
cmp eax, 1
jg 0x101e63d6
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x14]
jmp 0x101e6a29
movsd xmm0, qword [ebp + 8]
movsd qword [esp + 0x50], xmm0
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
add ecx, 0xfffffbcd
mov ebx, eax
and ebx, 0xfffff
mov esi, edx
add esi, 0xffffffff
mov edi, ebx
adc edi, 0xfffff
add esi, 1
adc edi, 0
mov dword [esp + 0x20], eax
test eax, 0x7ff00000
mov eax, 0xfffffbce
cmovne eax, ecx
mov dword [esp + 0x28], edx
cmove esi, edx
mov dword [esp + 0x24], ebx
cmove edi, ebx
mov dword [esp + 0x1c], edi
shld edi, esi, 1
mov edx, 0x1000
mov dword [esp + 0x2c], eax
lea ebx, [eax - 1]
lea ecx, [esi + esi]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], esi
add esi, esi
inc esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
mov eax, edi
shld edi, esi, 0xa
shl esi, 0xa
add ebx, 0xfffffff6
cmp eax, edx
jb 0x101e64be
jmp 0x101e64d7
shld edi, esi, 1
add esi, esi
dec ebx
test edi, edi
jns 0x101e64d0
mov eax, dword [esp + 0x24]
or dword [esp + 0x28], eax
sete byte [esp + 0x28]
test dword [esp + 0x20], 0x7fe00000
setne byte [esp + 0x20]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffffe
mov edx, dword [esp + 0x18]
shld dword [esp + 0x1c], edx, 2
shl edx, 2
mov dword [esp + 0x18], edx
mov cl, byte [esp + 0x20]
test byte [esp + 0x28], cl
mov ecx, dword [esp + 0x10]
cmovne ecx, eax
mov eax, dword [esp + 0x14]
cmovne eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
cmovne edx, dword [esp + 0x18]
mov dword [esp + 0xc], edx
sub ecx, ebx
mov ebx, dword [esp + 0xc]
jmp 0x101e6579
mov ebx, dword [esp + 0xc]
cmp dword [esp + 0x20], 0
sete byte [esp + 0xc]
test dword [esp + 0x18], 0x7f000000
setne byte [esp + 0x18]
mov edx, dword [esp + 0x1c]
add edx, 0xfffffffe
shl dword [esp + 0x14], 2
mov cl, byte [esp + 0x18]
test byte [esp + 0xc], cl
mov ecx, dword [esp + 0x10]
cmovne ecx, edx
cmovne ebx, dword [esp + 0x14]
sub ecx, eax
xor eax, eax
add ebx, 0xffffffff
adc eax, 0xffffffff
shld eax, ebx, cl
shl ebx, cl
xor edx, edx
test cl, 0x20
cmovne eax, ebx
mov dword [esp + 0x14], eax
cmovne ebx, edx
mov dword [esp + 0xc], ebx
movaps xmm0, xmmword [0x1025ef20]
movups xmmword [esp + 0x60], xmm0
lea ebx, [esp + 0x5c]
mov dword [ebx], 0xffffffff
mov eax, dword [esp + 0x78]
mov ecx, 0xffffff84
sub ecx, eax
mov dword [esp + 0x10], eax
mov edx, 0xffffffa0
sub edx, eax
push ebx
lea eax, [esp + 0x64]
push eax
push edx
push ecx
call fcn.101fe8dc
add esp, 0x10
mov edx, dword [esp + 0x74]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
mov eax, ecx
mul edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x38], edx
mov eax, ecx
mul edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x1c], ecx
mov eax, ecx
mul dword [esp + 0x24]
mov ebx, edx
mov dword [esp + 0x24], eax
mov eax, ecx
mul dword [esp + 0x38]
xor ecx, ecx
add edx, dword [esp + 0x24]
setb cl
add edx, dword [esp + 0x20]
mov eax, 0
adc ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x68]
mov dword [esp + 0x10], eax
imul ecx, eax, 0x4d1
mov dword [esp + 0x20], ecx
add ebx, dword [esp + 0x28]
mov eax, 0
mov ecx, dword [esp + 0x40]
adc ecx, eax
add ebx, dword [esp + 0x2c]
adc ecx, eax
mov eax, 0x80000000
add edx, eax
adc ebx, dword [esp + 0x24]
mov dword [esp + 0x44], ebx
adc ecx, 0
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x18]
mov eax, ecx
mul dword [esp + 0x14]
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov eax, ecx
mov ecx, dword [esp + 0xc]
mul ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x1c]
mov eax, ebx
mul dword [esp + 0x14]
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], eax
mov eax, ebx
mul ecx
xor eax, eax
add edx, dword [esp + 0x14]
setb al
add edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
mov ecx, 0
adc eax, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x18]
mov eax, ecx
mul edi
mov ebx, edx
mov dword [esp + 0x34], eax
mov eax, ecx
mul esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mul edi
mov edi, edx
mov dword [esp + 0x3c], eax
mov eax, ecx
mul esi
xor eax, eax
add edx, dword [esp + 0x3c]
setb al
add edx, dword [esp + 0x30]
mov esi, 0
adc eax, esi
add edi, dword [esp + 0x34]
adc ebx, esi
add edi, dword [esp + 0x18]
adc ebx, esi
mov esi, 0x80000000
add edx, esi
adc edi, eax
adc ebx, 0
add edi, 1
adc ebx, 0
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov edx, 0
adc eax, edx
add ecx, dword [esp + 0x2c]
adc eax, edx
add dword [esp + 0xc], esi
adc ecx, dword [esp + 0x14]
adc eax, 0
mov esi, eax
mov edx, edi
sub edx, ecx
mov eax, ebx
mov dword [esp + 0x30], ebx
sbb eax, esi
add edx, 1
mov dword [esp + 0x1c], edx
adc eax, 0
mov dword [esp + 0x18], eax
mov ecx, 0xffffffc0
sub ecx, dword [esp + 0x10]
xor edx, edx
inc edx
xor esi, esi
shld esi, edx, cl
shl edx, cl
mov eax, edi
shrd eax, ebx, cl
mov ebx, dword [esp + 0x30]
shr ebx, cl
mov dword [esp + 0x24], ecx
test cl, 0x20
mov ecx, ebx
cmove ecx, eax
cmovne esi, edx
mov eax, 0
cmovne edx, eax
mov dword [esp + 0x4c], edx
add edx, 0xffffffff
mov dword [esp + 0x48], esi
adc esi, 0xffffffff
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x34], esi
and ebx, esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edx
and edi, edx
mov eax, dword [esp + 0x20]
add eax, 0x26d51
sar eax, 0xc
cmp dword [eax*4 + 0x102a6418], ecx
lea edx, [eax + 1]
cmova edx, eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x20], 0
xor esi, esi
mov dword [eax], esi
test edx, edx
jle 0x101e6888
mov dword [esp + 0x10], edi
mov dword [esp + 0x2c], edx
mov ebx, dword [edx*4 + 0x102a6414]
mov dword [esp + 0x14], 0
mov eax, ecx
xor edx, edx
mov dword [esp + 0x28], ebx
div ebx
add al, 0x30
mov esi, dword [ebp + 0x18]
mov ebx, dword [esp + 0x14]
mov byte [esi + ebx], al
mov eax, dword [ebp + 0x20]
mov esi, dword [eax]
inc esi
xor eax, eax
mov ebx, edx
mov ecx, dword [esp + 0x24]
shld eax, edx, cl
mov edi, edx
shl ebx, cl
test cl, 0x20
cmovne eax, ebx
mov ecx, 0
cmovne ebx, ecx
add ebx, dword [esp + 0x10]
adc eax, dword [esp + 0xc]
cmp ebx, dword [esp + 0x1c]
mov edx, eax
sbb edx, dword [esp + 0x18]
mov edx, esi
mov dword [esp + 0x14], esi
mov ecx, dword [ebp + 0x20]
mov dword [ecx], esi
jb 0x101e6892
mov esi, dword [esp + 0x2c]
cmp esi, 2
jl 0x101e68fd
mov eax, dword [esp + 0x28]
mov ecx, 0xcccccccd
mul ecx
mov ebx, edx
shr ebx, 3
dec esi
mov dword [esp + 0x2c], esi
mov ecx, edi
jmp 0x101e680a
mov dword [esp + 0x14], 0
jmp 0x101e6903
xor edx, edx
xor esi, esi
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
shld esi, edi, cl
shl edi, cl
test cl, 0x20
cmovne esi, edi
mov dword [esp + 0xc], esi
cmovne edi, edx
mov ecx, dword [esp + 0x3c]
sub ecx, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
sbb ecx, dword [esp + 0x40]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x14]
xor esi, esi
push esi
push 1
push dword [esp + 0x14]
push edi
push eax
push ebx
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x50]
push dword [esp + 0x60]
call fcn.101e6c62
add esp, 0x28
mov edx, dword [esp + 0x2c]
dec edx
jmp 0x101e6a19
xor edx, edx
mov edi, dword [esp + 0x10]
dec edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], 0xa
mov eax, edi
mov edi, 0xa
mul edi
mov esi, dword [esp + 0xc]
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov esi, eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x24]
mov ebx, edx
mov dword [esp + 0xc], edx
shrd esi, edx, cl
shr ebx, cl
mov eax, dword [esp + 0x1c]
mul edi
test cl, 0x20
cmove ebx, esi
add bl, 0x30
mov esi, dword [ebp + 0x18]
mov edi, dword [esp + 0x14]
mov byte [esi + edi], bl
mov esi, dword [esp + 0x18]
lea esi, [esi + esi*4]
lea ebx, [edx + esi*2]
mov edx, dword [ebp + 0x20]
mov edi, dword [edx]
inc edi
mov esi, dword [esp + 0xc]
and esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
mov eax, esi
mov dword [esp + 0xc], esi
mov esi, ebx
mov dword [esp + 0x18], ebx
sbb eax, ebx
mov eax, edi
mov dword [esp + 0x14], edi
mov dword [edx], edi
jb 0x101e69bd
mov eax, dword [esp + 0x28]
mov ecx, 0xa
mul ecx
mov esi, dword [esp + 0x20]
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov dword [esp + 0x20], edx
dec dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x10]
jmp 0x101e6910
mov ebx, dword [esp + 0x3c]
sub ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
sbb esi, dword [esp + 0x40]
mov edi, dword [esp + 0x28]
mov eax, edi
mul ebx
mov dword [esp + 0x24], eax
imul esi, edi
add esi, edx
mov eax, dword [esp + 0x20]
imul ebx, eax
add ebx, esi
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x14]
push eax
push edi
push dword [esp + 0x50]
push dword [esp + 0x58]
push dword [esp + 0x1c]
push dword [esp + 0x24]
push dword [esp + 0x30]
push dword [esp + 0x38]
push ebx
push dword [esp + 0x48]
call fcn.101e6c62
add esp, 0x28
mov edx, dword [esp + 0x2c]
test al, al
jne 0x101e6b7e
jmp 0x101e6b99
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x101e6b01
xor eax, eax
test ecx, ecx
jle 0x101e6b76
mov edi, dword [esp + 0x18]
cmp edi, 2
mov edx, esi
sbb edx, 0
jb 0x101e6b76
mov dword [esp + 0x20], 0
dec dword [esp + 0x10]
mov dword [esp + 0x1c], 0xa
mov dword [esp + 0xc], ecx
mov eax, edi
mov ecx, 0xa
mul ecx
lea edi, [esi + esi*4]
lea esi, [edx + edi*2]
mov edi, eax
mov edx, eax
mov ecx, dword [esp + 0x28]
shrd edx, esi, cl
mov eax, esi
shr eax, cl
test cl, 0x20
cmove eax, edx
add al, 0x30
mov edx, dword [ebp + 0x18]
mov byte [edx + ebx], al
mov eax, dword [ebp + 0x20]
mov ebx, dword [eax]
inc ebx
mov dword [eax], ebx
and edi, dword [esp + 0x2c]
and esi, dword [esp + 0x24]
cmp dword [esp + 0xc], 2
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
jl 0x101e6bb3
cmp ecx, edi
mov eax, edx
sbb eax, esi
jae 0x101e6bb3
mov eax, ecx
mov dword [esp + 0x14], esi
mov esi, edx
mov edx, 0xa
mul edx
mov dword [esp + 0x18], edi
lea edi, [esi + esi*4]
mov esi, dword [esp + 0x14]
lea edx, [edx + edi*2]
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x18]
dec dword [esp + 0x10]
dec dword [esp + 0xc]
mov dword [esp + 0x1c], eax
jmp 0x101e6a65
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x58], eax
jmp 0x101e6b05
mov dword [esp + 0x14], esi
mov esi, edi
mov ecx, dword [esp + 0x28]
shl esi, cl
mov dword [esp + 0x10], esi
test cl, 0x20
mov eax, 0
cmovne esi, eax
mov dword [esp + 0xc], esi
xor eax, eax
shld eax, edi, cl
test cl, 0x20
cmovne eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov eax, edx
shl eax, cl
test cl, 0x20
mov edi, eax
mov esi, 0
cmovne edi, esi
xor esi, esi
shld esi, edx, cl
test cl, 0x20
cmovne esi, eax
add edi, dword [esp + 0x18]
adc esi, dword [esp + 0x14]
lea eax, [esp + 0x58]
mov ecx, dword [ebp + 0x18]
mov edx, ebx
push eax
xor eax, eax
push eax
push 1
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push esi
push edi
call fcn.101e6df7
add esp, 0x1c
test al, al
je 0x101e6b99
mov edx, dword [esp + 0x58]
sub edx, dword [esp + 0x5c]
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
add edx, dword [ecx]
mov dword [eax], edx
mov eax, dword [ecx]
mov ecx, dword [ebp + 0x18]
mov byte [ecx + eax], 0
mov bl, 1
jmp 0x101e6b9b
xor ebx, ebx
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.10205d16
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x10]
mov dword [esp + 0x58], eax
cmp dword [esp + 0xc], 1
jne 0x101e6be0
mov ecx, dword [ebp + 0x18]
mov eax, esi
mov esi, edx
mov edx, ebx
lea ebx, [esp + 0x58]
push ebx
push esi
push dword [esp + 0x24]
push dword [esp + 0x40]
push dword [esp + 0x48]
push eax
jmp 0x101e6b6d
xor eax, eax
jmp 0x101e6b76
call fcn.101b13e3
int3