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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1025fd37
mov eax, dword fs:[0]
push eax
sub esp, 0x128
push ebx
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0x138]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x9c], edi
mov esi, dword [edi + 0x8c]
test esi, esi
jne 0x1019157f
xor eax, eax
jmp 0x101915a7
cmp dword [edi + 8], 0x18
jl 0x1019157b
fld qword [ebp + 8]
fldz
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x10191597
fstp st(0)
jmp 0x1019157b
fld1
fucomp st(1)
fnstsw ax
test ah, 0x44
jp 0x101915bf
fstp st(0)
xor eax, eax
inc eax
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0x58]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov dword [esp + 0x40], eax
fstp qword [esp + 0x74]
fld qword [esp + 0x74]
fmul st(1)
fld qword [0x10041fe8]
fadd st(1), st(0)
fxch st(1)
call fcn.10282c27
mov ebx, dword [edi + 0x54]
mov dword [esp + 0x20], ebx
fild dword [esp + 0x20]
mov dword [esp + 0x24], eax
fstp qword [esp + 0x74]
fld qword [esp + 0x74]
fmulp st(2)
faddp st(1)
call fcn.10282c27
mov ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
cmp ecx, dword [edi + 0x54]
jne 0x1019161b
cmp eax, dword [edi + 0x58]
je 0x101915a4
test ebx, ebx
jle 0x101915a4
cmp dword [esp + 0x40], 0
jle 0x101915a4
test ecx, ecx
jle 0x101915a4
test eax, eax
jle 0x101915a4
mov eax, dword [edi + 4]
mov dword [esp + 0x18], eax
test eax, eax
je 0x101915a4
lea eax, [esp + 0x11c]
push eax
push 0x18
push esi
call dword [0x102ab04c]
test eax, eax
je 0x1019157b
push dword [esp + 0x124]
mov esi, dword [0x102ab6c8]
call esi
fld qword [edi + 0xb4]
xor ebx, ebx
cmp dword [esp + 0x128], ebx
fmul qword [ebp + 8]
pop ecx
mov ecx, dword [edi + 0x54]
setl bl
mov dword [esp + 0x4c], ecx
xor ecx, ecx
cmp dword [esp + 0x18], 1
fstp qword [edi + 0xb4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ecx
jne 0x101916c1
cmp eax, dword [edi + 0x58]
jle 0x101916c1
cdq
idiv dword [edi + 0x58]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x58]
mov dword [esp + 0x20], eax
push dword [edi + 0xa8]
push dword [edi + 0x8c]
call fcn.100c2796
mov dword [esp + 0x48], eax
test eax, eax
je 0x1019157b
cmp dword [esp + 0x4c], 0
mov eax, dword [esp + 0x24]
mov ecx, eax
mov edx, dword [esp + 0x30]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
jle 0x10191708
mov eax, dword [esp + 0x18]
imul eax, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x58], eax
jmp 0x10191715
imul ecx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov dword [esp + 0x5c], ecx
test ebx, ebx
je 0x1019171f
neg ecx
mov dword [esp + 0x5c], ecx
push 0
lea eax, [esp + 0x5c]
push eax
call fcn.100c26f0
push dword [esp + 0x5c]
mov ebx, eax
mov dword [esp + 0x78], ebx
call esi
pop ecx
test ebx, ebx
jne 0x1019174b
push dword [esp + 0x48]
call dword [0x102ab058]
jmp 0x1019157b
fld qword [ebp + 8]
fld1
fcompp
fnstsw ax
test ah, 0x41
jne 0x1019175d
push 5
jmp 0x1019175f
push 6
xor eax, eax
pop esi
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0x140], eax
lea ecx, [esp + 0xe8]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xac]
push eax
push dword [esp + 0x4c]
call fcn.1018ba84
xor eax, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xb4], eax
lea ecx, [esp + 0xbc]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb4]
push eax
push ebx
call fcn.1018ba84
movzx eax, byte [esp + 0x10c]
xor ebx, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x90], 0x100283ac
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
push esi
mov byte [esp + 0x144], 2
lea ecx, [esp + 0x94]
push dword [edi + 0x54]
push ebx
push dword [esp + 0x3c]
push dword [edi + 0x54]
call fcn.1018b65a
mov dword [esp + 0x84], 0x100283ac
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
push esi
mov byte [esp + 0x144], 3
lea ecx, [esp + 0x88]
push dword [edi + 0x58]
push ebx
mov ebx, dword [esp + 0x30]
push ebx
push dword [edi + 0x58]
call fcn.1018b65a
mov eax, dword [esp + 0x14]
xor ecx, ecx
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100e8637
mov esi, eax
pop ecx
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x14]
xor ecx, ecx
push 8
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100e8637
xor edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x58], edx
pop ecx
test eax, eax
jle 0x10191bdd
mov edi, dword [esp + 0x14]
mov ecx, edi
shl ecx, 3
mov dword [esp + 0x50], edx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0xdc]
mov edx, ecx
imul edx, dword [esp + 0x28]
mov dword [esp + 0xa8], edx
mov edx, edi
imul edx, dword [esp + 0x1c]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x3c], edx
xor edx, edx
mov dword [esp + 0x2c], edx
test ebx, ebx
je 0x10191ba1
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x80]
test eax, eax
je 0x10191b8c
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
mov eax, edi
shl eax, 3
push eax
push 0
push esi
call dword [0x102ab714]
mov eax, dword [esp + 0x38]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
and dword [esp + 0x68], 0
cmp dword [ecx + eax*8], 0
jbe 0x10191ade
xor edi, edi
mov dword [esp + 0x60], edi
mov eax, dword [ecx + eax*8 + 4]
push dword [esp + 0xa0]
push 0
mov ebx, dword [eax + edi]
add ebx, dword [esp + 0x5c]
imul ebx, dword [esp + 0x110]
fld qword [eax + edi + 4]
push dword [esp + 0x3c]
fstp qword [esp + 0x120]
add ebx, dword [esp + 0xf8]
call dword [0x102ab714]
mov eax, dword [esp + 0x44]
add esp, 0xc
and dword [esp + 0x6c], 0
cmp dword [eax], 0
jbe 0x10191a82
mov esi, dword [esp + 0x6c]
xor edx, edx
mov eax, dword [eax + 4]
xor edi, edi
mov ecx, dword [eax + edx]
add ecx, dword [esp + 0x44]
imul ecx, dword [esp + 0x14]
fld qword [eax + edx + 4]
add ecx, ebx
cmp dword [esp + 0x14], edi
jbe 0x10191a69
movzx eax, byte [ecx]
inc ecx
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
fstp qword [esp + 0x6c]
fld qword [esp + 0x6c]
fmul st(1)
fadd qword [eax + edi*8]
fstp qword [eax + edi*8]
inc edi
cmp edi, dword [esp + 0x14]
jb 0x10191a42
mov eax, dword [esp + 0x38]
inc esi
add edx, 0xc
fstp st(0)
cmp esi, dword [eax]
jb 0x10191a25
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x14]
test edx, edx
je 0x10191aaa
mov ecx, dword [esp + 0x34]
mov eax, esi
fld qword [esp + 0x114]
sub ecx, esi
fld qword [ecx + eax]
fmul st(1)
fadd qword [eax]
fstp qword [eax]
add eax, 8
dec edx
jne 0x10191a99
fstp st(0)
mov ecx, dword [esp + 0x2c]
add edi, 0xc
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
inc eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x68], eax
cmp eax, dword [edx + ecx*8]
mov eax, ecx
mov ecx, edx
jb 0x101919d6
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
cmp edi, 4
jne 0x10191b28
fld qword [esi + 0x18]
fcomp qword [esi]
fnstsw ax
test ah, 0x41
jne 0x10191af3
fld qword [esi]
jmp 0x10191af6
fld qword [esi + 0x18]
fstp qword [esi]
fld qword [esi + 0x18]
fcomp qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x10191b0a
fld qword [esi + 8]
jmp 0x10191b0d
fld qword [esi + 0x18]
fstp qword [esi + 8]
fld qword [esi + 0x18]
fcomp qword [esi + 0x10]
fnstsw ax
test ah, 0x41
jne 0x10191b22
fld qword [esi + 0x10]
jmp 0x10191b25
fld qword [esi + 0x18]
fstp qword [esi + 0x10]
xor ebx, ebx
test edi, edi
je 0x10191b68
fld qword [esi + ebx*8]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
je 0x10191b4d
fstp st(0)
fld qword [0x100421b8]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x10191b51
fstp st(1)
jmp 0x10191b53
fstp st(0)
call fcn.10282c5d
mov ecx, dword [esp + 0x64]
mov byte [ecx], al
inc ecx
inc ebx
mov dword [esp + 0x64], ecx
cmp ebx, edi
jb 0x10191b2e
push 8
pop eax
add dword [esp + 0x38], eax
dec dword [esp + 0x40]
jne 0x101919a7
mov ecx, dword [esp + 0xdc]
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
add dword [esp + 0x1c], ecx
inc edx
mov dword [esp + 0x2c], edx
cmp edx, ebx
jb 0x10191981
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x4c]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x20]
add dword [esp + 0x54], edx
mov edx, dword [esp + 0xa4]
add dword [esp + 0x50], edx
mov edx, dword [esp + 0xa8]
add dword [esp + 0x28], edx
dec eax
mov dword [esp + 0x18], eax
jne 0x10191963
mov edi, dword [esp + 0x9c]
push esi
mov esi, dword [0x102ab6d0]
call esi
pop ecx
push dword [esp + 0x34]
call esi
pop ecx
push dword [esp + 0x48]
call dword [0x102ab058]
mov ebx, dword [edi + 4]
lea ecx, [edi + 0x5c]
push 0
push 0
call fcn.100b0be3
test eax, eax
je 0x10191c17
mov eax, dword [edi + 0x54]
mov dword [edi + 0x5c], eax
mov eax, dword [edi + 0x58]
mov dword [edi + 0x60], eax
mov eax, dword [esp + 0x30]
lea esi, [edi + 0x8c]
mov dword [edi + 0x54], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x58], eax
mov eax, dword [edi + 0xa8]
or dword [edi + 0xa8], 0xffffffff
push esi
mov dword [edi + 0xac], eax
call fcn.1027ca71
mov eax, dword [esp + 0x74]
mov ecx, edi
push 0
mov dword [esi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], 0x20
call fcn.1018fa5b
push 1
mov ecx, edi
call fcn.1018fa5b
xor ebx, ebx
lea ecx, [esp + 0x84]
cmp dword [esi], ebx
mov esi, 0x100283ac
mov dword [esp + 0x84], esi
setne bl
call fcn.1018b952
lea ecx, [esp + 0x90]
mov dword [esp + 0x90], esi
call fcn.1018b952
mov eax, ebx
jmp 0x101915a7