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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, ecx
push edi
mov edx, dword [esi + 0x14]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax + 0x30]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
mov edi, dword [edx + ecx*4]
mov ebx, dword [edx + eax*4]
mov eax, dword [esi + 0x10]
mov dword [ebp - 8], ebx
mov ecx, dword [ebx + 4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 4]
and eax, 0x1001
cmp eax, 1
jne 0x1019851d
mov eax, dword [edi]
mov edx, dword [ebp + 8]
mov dword [ebp - 0xc], eax
and eax, 0x1f
mov dword [ebp - 0x10], eax
mov eax, dword [ebx]
mov ecx, eax
mov edx, dword [edx]
and ecx, 0x40
and edx, 0xfff00000
mov dword [ebp - 0x1c], ecx
cmp edx, 0x10000000
jne 0x10197e36
or eax, dword [ebp - 0x10]
mov dword [ebx], eax
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x30], eax
jmp 0x1019851d
and dword [ebp - 0xc], 0x40
or dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebx], eax
test eax, 0xe000000
jne 0x10197e7d
cmp edx, 0x10100000
je 0x10197e71
cmp edx, 0x10300000
je 0x10197e71
cmp edx, 0x10400000
je 0x10197e71
cmp edx, 0x10d00000
je 0x10197e71
cmp edx, 0x10e00000
jne 0x10197e7d
mov eax, dword [edi]
and eax, 0xe000000
or eax, dword [ebp - 0xc]
mov dword [ebx], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], eax
cmp edx, 0x10100000
je 0x10197ec3
cmp edx, 0x10300000
je 0x10197eaf
mov eax, edx
cmp eax, 0x10400000
je 0x10197eaa
cmp eax, 0x10500000
je 0x10197eaa
cmp eax, 0x10700000
jne 0x10197ee4
or dword [ebx], 4
jmp 0x10197ee4
mov ecx, dword [ebp - 0x10]
and ecx, 0xc
cmp ecx, 0xc
jne 0x10197ebd
push 4
pop ecx
or eax, ecx
mov dword [ebx], eax
jmp 0x10197ee1
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 dword [ebx], ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [esi + 0x10]
mov ebx, dword [esi + 0x10]
mov dword [ebp - 0x28], eax
mov eax, dword [edi + 4]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], eax
test eax, 0x100
je 0x10198174
cmp dword [edi + 8], 0xffffffff
jne 0x10198174
mov eax, 0x10800000
cmp edx, eax
ja 0x1019808e
je 0x10198081
cmp edx, 0x10100000
je 0x10198077
cmp edx, 0x10300000
je 0x10198055
cmp edx, 0x10400000
je 0x10198024
cmp edx, 0x10500000
je 0x10198011
cmp edx, 0x10600000
je 0x10197fc4
cmp edx, 0x10700000
jne 0x1019851d
test ecx, ecx
jne 0x10197fb3
fld qword [edi + 0x20]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x10197f8a
fstp st(1)
push 0x1002a094
fstp st(0)
push 0xfa3
jmp 0x10197f9d
fucompp
fnstsw ax
test ah, 0x44
jp 0x10197fb3
push 0x1002a034
push 0xfa1
mov eax, dword [ebp + 8]
push dword [eax + 0x3c]
push esi
call fcn.101a4fde
add esp, 0x10
fldz
jmp 0x1019815c
fld qword [edi + 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIsqrt
fld1
fdivrp st(1)
jmp 0x1019815c
fldz
test ecx, ecx
jne 0x10197fda
fld qword [edi + 0x20]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x1019851b
fld qword [edi + 0x20]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x10197ff6
push 0x100331ac
fstp st(0)
push 0xfa2
jmp 0x10197f9d
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIlog
fstp qword [ebp - 0x34]
fld qword [0x10035f50]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIlog
fdivr qword [ebp - 0x34]
jmp 0x1019815c
fld qword [0x10035f50]
fld qword [edi + 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIpow
jmp 0x1019815c
fld qword [edi + 0x20]
push ecx
push ecx
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__finite
pop ecx
pop ecx
test eax, eax
je 0x10197fac
fld qword [edi + 0x20]
push ecx
fst qword [ebp - 0x34]
push ecx
fstp qword [esp]
call sub.api_ms_win_crt_private_l1_1_0.dll__o_floor
fsubr qword [ebp - 0x34]
pop ecx
pop ecx
jmp 0x1019815c
test ecx, ecx
jne 0x1019806d
fldz
fld qword [edi + 0x20]
fucomp st(1)
fnstsw ax
test ah, 0x44
jnp 0x1019815c
fstp st(0)
fld1
fdiv qword [edi + 0x20]
jmp 0x1019815c
fld qword [edi + 0x20]
fchs
jmp 0x1019815c
fld qword [edi + 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIsin
jmp 0x1019815c
cmp edx, 0x10900000
je 0x10198154
cmp edx, 0x10a00000
je 0x10198118
cmp edx, 0x10b00000
je 0x101980dc
cmp edx, 0x10c00000
je 0x101980cf
cmp edx, 0x10d00000
je 0x10197fac
cmp edx, 0x10e00000
jne 0x1019851d
jmp 0x10197fac
fld qword [edi + 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIatan
jmp 0x1019815c
test ecx, ecx
jne 0x101980fd
fld qword [edi + 0x20]
fld qword [0x100361f8]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x10198107
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x10198109
fld qword [edi + 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIacos
jmp 0x1019815c
fstp st(0)
push 0x100331ec
push 0xfa6
jmp 0x10197f9d
test ecx, ecx
jne 0x10198139
fld qword [edi + 0x20]
fld qword [0x100361f8]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x10198143
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x10198145
fld qword [edi + 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIasin
jmp 0x1019815c
fstp st(0)
push 0x10033198
push 0xfa5
jmp 0x10197f9d
fld qword [edi + 0x20]
call sub.api_ms_win_crt_private_l1_1_0.dll__o__CIcos
push ecx
push ecx
fstp qword [esp]
push 0
push 0
push dword [esi + 0x78]
mov ecx, esi
call fcn.101a5632
jmp 0x10197e2e
mov eax, dword [ebp - 0x10]
test al, 1
je 0x10198189
cmp edx, 0x10400000
jne 0x10198189
push ecx
push ecx
fldz
jmp 0x1019815e
test al, 2
je 0x10198195
cmp edx, 0x10400000
je 0x10198183
test al, 8
je 0x101981f9
cmp edx, 0x10600000
je 0x101981cb
cmp edx, 0x10700000
jne 0x101981f9
test ecx, ecx
jne 0x1019851d
mov eax, dword [ebp + 8]
push 0x1002a094
push 0xfa3
push dword [eax + 0x3c]
push esi
call fcn.101a4fde
pop ecx
pop ecx
jmp 0x10198185
test ecx, ecx
jne 0x1019851d
test al, 4
jne 0x1019851d
mov eax, dword [ebp + 8]
push 0x100331ac
push 0xfa2
push dword [eax + 0x3c]
push esi
call fcn.101a4fde
add esp, 0x10
jmp 0x1019851d
mov eax, dword [ebp - 0x24]
test eax, 0x200
je 0x1019821b
cmp edx, 0x10d00000
je 0x10198183
cmp edx, 0x10e00000
je 0x10198183
test ecx, ecx
jne 0x1019851d
test al, 2
je 0x1019851d
lea eax, [edi + 0x48]
mov dword [ebp - 0x18], eax
cmp edx, 0x10100000
jne 0x10198294
mov ecx, dword [eax]
lea eax, [esi + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, edx
je 0x101982f6
lea ecx, [esi + 0x18]
lea eax, [edi + 0x48]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov dword [ebp - 0x20], eax
cmp edx, 0x10500000
jne 0x101982c3
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, 0x10600000
je 0x101982f6
mov eax, dword [ebp - 0x18]
jmp 0x1019844e
mov dword [ebp - 0x20], eax
lea ecx, [esi + 0x18]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, eax
cmp edx, 0x10300000
jne 0x10198269
mov ecx, dword [eax]
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, edx
je 0x101982f6
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
cmp edx, 0x10600000
jne 0x1019834c
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + ecx*4]
mov eax, dword [eax]
and eax, 0xfff00000
cmp eax, 0x10500000
jne 0x1019851d
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x20], eax
mov ebx, dword [eax + 0xc]
cmp ebx, ecx
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 8]
jbe 0x10198327
mov eax, dword [eax + 0x10]
mov ebx, dword [ebp - 0x14]
cmp dword [eax], ebx
je 0x10198321
inc ecx
add eax, 4
cmp ecx, dword [ebp - 0x24]
jb 0x10198314
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
cmp ecx, dword [eax + 0xc]
jae 0x10198343
lfence
mov eax, dword [eax + 8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esi + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x30]
jmp 0x10197e2e
lea eax, [edi + 0x48]
mov dword [ebp - 0x1c], eax
lea ecx, [esi + 0x18]
mov dword [ebp - 0xc], ecx
cmp edx, 0x10300000
jne 0x10198442
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ecx]
mov dword [ebp - 0x18], ecx
mov eax, dword [eax]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x20500000
jne 0x1019851d
mov edx, dword [ecx + 0xc]
xor eax, eax
test edx, edx
je 0x10198398
mov edi, dword [ecx + 0x10]
mov ebx, dword [ebp - 0x14]
cmp dword [edi], ebx
je 0x10198395
inc eax
add edi, 4
cmp eax, edx
jb 0x10198389
mov ebx, dword [ebp - 8]
mov esi, dword [esi + 0x14]
xor edi, edi
mov ecx, dword [ecx + 8]
mov dword [ebp - 0x1c], esi
mov esi, edx
shl esi, 2
mov dword [ebp - 0xc], esi
imul esi, edx, 0xfffffffc
mov dword [ebp - 0x30], esi
lea esi, [ecx + eax*4]
add eax, edx
mov dword [ebp - 0x24], esi
lea eax, [ecx + eax*4]
mov dword [ebp - 0x20], eax
mov eax, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], ecx
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
test byte [eax + 4], 2
je 0x1019841d
mov eax, dword [esi + 0x48]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x10700000
jne 0x1019841d
xor edx, edx
cmp dword [ecx + 0xc], edx
jbe 0x10198412
mov eax, dword [ecx + 0x10]
mov ebx, dword [ebp - 0x14]
cmp dword [eax], ebx
je 0x1019840f
inc edx
add eax, 4
cmp edx, dword [ecx + 0xc]
jb 0x10198402
mov ebx, dword [ebp - 8]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x10]
cmp dword [eax + edx*4], ecx
je 0x1019843a
mov esi, dword [ebp - 0x24]
inc edi
mov eax, dword [ebp - 0x20]
add esi, dword [ebp - 0xc]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], eax
cmp edi, 2
jb 0x101983bf
jmp 0x1019851d
mov eax, dword [esi + 0x30]
jmp 0x10197e2e
cmp edx, 0x10500000
jne 0x1019851d
mov ecx, dword [ebp - 0xc]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [ebp - 0x30], ecx
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x20500000
jne 0x1019851d
mov edi, dword [ecx + 0xc]
xor edx, edx
test edi, edi
je 0x10198488
mov eax, dword [ecx + 0x10]
mov ebx, dword [ebp - 0x14]
cmp dword [eax], ebx
je 0x10198488
inc edx
add eax, 4
cmp edx, edi
jb 0x1019847c
and dword [ebp - 0x20], 0
mov eax, edi
shl eax, 2
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x14]
lea edi, [eax + edx*4]
mov edx, dword [ebp - 0x24]
mov eax, dword [edi]
mov ebx, dword [esi + 0x10]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx + 4]
mov eax, dword [ebx + eax*4]
mov ebx, dword [ebp - 8]
test byte [eax + 4], 2
je 0x10198516
mov eax, dword [ecx + 0x48]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ecx]
and eax, 0xfff00000
cmp eax, 0x10600000
jne 0x10198516
xor edx, edx
cmp dword [ecx + 0xc], edx
jbe 0x101984ea
mov eax, dword [ecx + 0x10]
mov ebx, dword [edi]
cmp dword [eax], ebx
je 0x101984e7
inc edx
add eax, 4
cmp edx, dword [ecx + 0xc]
jb 0x101984da
mov ebx, dword [ebp - 8]
mov eax, dword [ecx + 8]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + edx*4]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
and eax, 0xc
cmp al, 0xc
je 0x10198183
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
add edi, edx
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 2
jb 0x101984a0
jmp 0x1019851d
mov ecx, dword [esi + 0x14]
jmp 0x10198506
fstp st(0)
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0xc