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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, dword [eax]
mov edi, ecx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], edi
mov edx, dword [edi + 0x14]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 0x30]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
mov ebx, dword [edx + ecx*4]
mov eax, dword [edx + eax*4]
mov dword [ebp - 8], eax
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 4]
and eax, 0x1001
cmp eax, 1
jne 0x10189550
mov eax, dword [ebx]
and esi, 0xfff00000
mov dword [ebp - 0xc], eax
and eax, 0x1f
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
mov edx, ecx
and edx, 0x40
cmp esi, 0x10000000
jne 0x10188ef0
or ecx, dword [ebp - 0x10]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0x30], ecx
jmp 0x10189550
and dword [ebp - 0xc], 0x40
or dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov dword [ebp - 0x18], ecx
test ecx, 0xe000000
jne 0x10188f42
cmp esi, 0x10100000
je 0x10188f32
cmp esi, 0x10300000
je 0x10188f32
cmp esi, 0x10400000
je 0x10188f32
cmp esi, 0x10d00000
je 0x10188f32
mov dword [ebp - 0x18], ecx
cmp esi, 0x10e00000
jne 0x10188f42
mov ecx, dword [ebx]
and ecx, 0xe000000
or ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], ecx
mov dword [eax], ecx
cmp esi, 0x10100000
je 0x10188f86
cmp esi, 0x10300000
je 0x10188f74
cmp esi, 0x10400000
je 0x10188f6f
cmp esi, 0x10500000
je 0x10188f6a
cmp esi, 0x10700000
jne 0x10188fa7
or dword [eax], 4
jmp 0x10188fa7
or ecx, 4
jmp 0x10188fa5
mov eax, dword [ebp - 0x10]
and eax, 0xc
cmp eax, 0xc
jne 0x10188f82
push 4
pop eax
or ecx, eax
jmp 0x10188fa2
mov eax, dword [ebp - 0x10]
mov ecx, eax
shr ecx, 1
and eax, 4
add eax, eax
and ecx, 4
or ecx, eax
mov eax, dword [ebp - 0x10]
and eax, 0xfffffff3
or ecx, eax
or ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov ecx, dword [edi + 0x10]
mov eax, dword [ebx + 4]
mov dword [ebp - 0xc], ecx
mov eax, dword [ecx + eax*4]
mov ecx, dword [eax + 4]
test ecx, 0x100
je 0x10189235
cmp dword [ebx + 8], 0xffffffff
jne 0x10189235
mov eax, 0x10800000
cmp esi, eax
ja 0x10189149
je 0x1018913c
cmp esi, 0x10100000
je 0x10189132
cmp esi, 0x10300000
je 0x10189110
cmp esi, 0x10400000
je 0x101890df
cmp esi, 0x10500000
je 0x101890cc
cmp esi, 0x10600000
je 0x1018907f
cmp esi, 0x10700000
jne 0x10189550
test edx, edx
jne 0x1018906e
fld qword [ebx + 0x20]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x10189045
fstp st(1)
push 0x10029e04
fstp st(0)
push 0xfa3
jmp 0x10189058
fucompp
fnstsw ax
test ah, 0x44
jp 0x1018906e
push 0x10029da4
push 0xfa1
mov eax, dword [ebp + 8]
push dword [eax + 0x3c]
push edi
call fcn.10195cd8
add esp, 0x10
fldz
jmp 0x10189217
fld qword [ebx + 0x20]
call sub.msvcrt.dll__CIsqrt
fld1
fdivrp st(1)
jmp 0x10189217
fldz
test edx, edx
jne 0x10189095
fld qword [ebx + 0x20]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x1018954e
fld qword [ebx + 0x20]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x101890b1
push 0x10032fac
fstp st(0)
push 0xfa2
jmp 0x10189058
call sub.msvcrt.dll__CIlog
fstp qword [ebp - 0x2c]
fld qword [0x10035d58]
call sub.msvcrt.dll__CIlog
fdivr qword [ebp - 0x2c]
jmp 0x10189217
fld qword [0x10035d58]
fld qword [ebx + 0x20]
call sub.msvcrt.dll__CIpow
jmp 0x10189217
fld qword [ebx + 0x20]
push ecx
push ecx
fstp qword [esp]
call sub.msvcrt.dll__finite
pop ecx
pop ecx
test eax, eax
je 0x10189067
fld qword [ebx + 0x20]
push ecx
fst qword [ebp - 0x2c]
push ecx
fstp qword [esp]
call sub.msvcrt.dll_floor
fsubr qword [ebp - 0x2c]
pop ecx
pop ecx
jmp 0x10189217
test edx, edx
jne 0x10189128
fldz
fld qword [ebx + 0x20]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x10189217
fstp st(0)
fld1
fdiv qword [ebx + 0x20]
jmp 0x10189217
fld qword [ebx + 0x20]
fchs
jmp 0x10189217
fld qword [ebx + 0x20]
call sub.msvcrt.dll__CIsin
jmp 0x10189217
cmp esi, 0x10900000
je 0x1018920f
cmp esi, 0x10a00000
je 0x101891d3
cmp esi, 0x10b00000
je 0x10189197
cmp esi, 0x10c00000
je 0x1018918a
cmp esi, 0x10d00000
je 0x10189067
cmp esi, 0x10e00000
jne 0x10189550
jmp 0x10189067
fld qword [ebx + 0x20]
call sub.msvcrt.dll__CIatan
jmp 0x10189217
test edx, edx
jne 0x101891b8
fld qword [ebx + 0x20]
fld qword [0x10036010]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x101891c2
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x101891c4
fld qword [ebx + 0x20]
call sub.msvcrt.dll__CIacos
jmp 0x10189217
fstp st(0)
push 0x10032fec
push 0xfa6
jmp 0x10189058
test edx, edx
jne 0x101891f4
fld qword [ebx + 0x20]
fld qword [0x10036010]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x101891fe
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x10189200
fld qword [ebx + 0x20]
call sub.msvcrt.dll__CIasin
jmp 0x10189217
fstp st(0)
push 0x10032f98
push 0xfa5
jmp 0x10189058
fld qword [ebx + 0x20]
call sub.msvcrt.dll__CIcos
push ecx
push ecx
fstp qword [esp]
push 0
push 0
push dword [edi + 0x78]
mov ecx, edi
call fcn.1019630c
mov ecx, dword [ebp - 8]
mov dword [ecx + 0x30], eax
jmp 0x10189550
mov eax, dword [ebp - 0x10]
test al, 1
je 0x1018924a
cmp esi, 0x10400000
jne 0x1018924a
push ecx
push ecx
fldz
jmp 0x10189219
test al, 2
je 0x10189256
cmp esi, 0x10400000
je 0x10189244
test al, 8
je 0x101892ba
cmp esi, 0x10600000
je 0x1018928c
cmp esi, 0x10700000
jne 0x101892ba
test edx, edx
jne 0x10189550
mov eax, dword [ebp + 8]
push 0x10029e04
push 0xfa3
push dword [eax + 0x3c]
push edi
call fcn.10195cd8
pop ecx
pop ecx
jmp 0x10189246
test edx, edx
jne 0x10189550
test al, 4
jne 0x10189550
mov eax, dword [ebp + 8]
push 0x10032fac
push 0xfa2
push dword [eax + 0x3c]
push edi
call fcn.10195cd8
add esp, 0x10
jmp 0x10189550
test ecx, 0x200
je 0x101892da
cmp esi, 0x10d00000
je 0x10189244
cmp esi, 0x10e00000
je 0x10189244
test edx, edx
jne 0x10189550
test cl, 2
je 0x10189550
cmp esi, 0x10100000
jne 0x10189307
mov ecx, dword [ebx + 0x48]
mov edx, dword [edi + 0x18]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, esi
je 0x10189365
cmp esi, 0x10300000
jne 0x10189323
mov ecx, dword [ebx + 0x48]
mov edx, dword [edi + 0x18]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, esi
je 0x10189365
cmp esi, 0x10500000
jne 0x10189342
mov ecx, dword [ebx + 0x48]
mov edx, dword [edi + 0x18]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, 0x10600000
je 0x10189365
cmp esi, 0x10600000
jne 0x101893a1
mov ecx, dword [ebx + 0x48]
mov edx, dword [edi + 0x18]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, 0x10500000
jne 0x10189550
mov edx, dword [edx + ecx*4]
xor ecx, ecx
cmp ecx, dword [edx + 0xc]
jae 0x101893a1
mov eax, dword [edx + 0x10]
mov edi, dword [ebp - 0x14]
cmp dword [eax], edi
je 0x10189382
inc ecx
add eax, 4
cmp ecx, dword [edx + 0xc]
jb 0x10189375
mov edi, dword [ebp - 0x1c]
cmp ecx, dword [edx + 0xc]
jae 0x101893a1
lfence
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edi + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x30]
jmp 0x1018922a
cmp esi, 0x10300000
jne 0x10189486
mov ecx, dword [edi + 0x18]
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x10], ecx
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x20500000
jne 0x10189550
mov edx, dword [ecx + 0xc]
xor eax, eax
test edx, edx
je 0x101893e6
mov esi, dword [ecx + 0x10]
mov ebx, dword [ebp - 0x14]
cmp dword [esi], ebx
je 0x101893e6
inc eax
add esi, 4
cmp eax, edx
jb 0x101893da
mov esi, dword [edi + 0x14]
xor ebx, ebx
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x1c], esi
mov esi, edx
shl esi, 2
mov dword [ebp - 0x24], esi
imul esi, edx, 0xfffffffc
lea edi, [ecx + eax*4]
add eax, edx
lea eax, [ecx + eax*4]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x18], eax
mov eax, dword [eax]
mov ecx, dword [edi]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x14], esi
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
test byte [eax + 4], 2
je 0x10189467
mov eax, dword [esi + 0x48]
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x10700000
jne 0x10189467
xor edx, edx
cmp dword [ecx + 0xc], edx
jbe 0x1018945c
mov eax, dword [ecx + 0x10]
mov esi, dword [edi]
cmp dword [eax], esi
je 0x10189459
inc edx
add eax, 4
cmp edx, dword [ecx + 0xc]
jb 0x1018944c
mov esi, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x20]
cmp dword [eax + edx*4], ecx
je 0x1018947e
mov eax, dword [ebp - 0x18]
inc ebx
add eax, dword [ebp - 0x28]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
cmp ebx, 2
jb 0x1018940a
jmp 0x10189550
mov eax, dword [esi + 0x30]
jmp 0x1018922a
cmp esi, 0x10500000
jne 0x10189550
mov eax, dword [ebx + 0x48]
mov ecx, dword [edi + 0x18]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x20500000
jne 0x10189550
mov esi, dword [ecx + 0xc]
xor edx, edx
test esi, esi
je 0x101894c8
mov eax, dword [ecx + 0x10]
mov ebx, dword [ebp - 0x14]
cmp dword [eax], ebx
je 0x101894c8
inc edx
add eax, 4
cmp edx, esi
jb 0x101894bc
mov eax, esi
xor ebx, ebx
shl eax, 2
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x14]
lea esi, [eax + edx*4]
mov edx, dword [edi + 0x10]
mov eax, dword [esi]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 4]
mov eax, dword [edx + eax*4]
test byte [eax + 4], 2
je 0x10189549
mov eax, dword [ecx + 0x48]
mov ecx, dword [edi + 0x18]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x10600000
jne 0x10189549
xor edx, edx
cmp dword [ecx + 0xc], edx
jbe 0x10189522
mov eax, dword [ecx + 0x10]
mov edi, dword [esi]
cmp dword [eax], edi
je 0x1018951f
inc edx
add eax, 4
cmp edx, dword [ecx + 0xc]
jb 0x10189512
mov edi, dword [ebp - 0x1c]
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x14]
mov eax, dword [eax + edx*4]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
and eax, 0xc
cmp al, 0xc
je 0x10189244
mov edx, dword [edi + 0x10]
add esi, dword [ebp - 0x28]
inc ebx
cmp ebx, 2
jb 0x101894de
jmp 0x10189550
mov ecx, dword [edi + 0x14]
jmp 0x1018953e
fstp st(0)
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0xc