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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x408098
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
push ebx
push esi
push edi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x18]
mov dword [esp + 0x90], 0
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0x14]
mov byte [esp + 0x90], 1
call sub.MFC42.DLL_CString::CString_2
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov ecx, edi
mov byte [esp + 0x90], 2
mov ebx, dword [esi]
call fcn.004022e0
cmp ebx, eax
jge case.0x40155d.32
push ebx
mov ecx, edi
call fcn.00402310
mov byte [esp + 0x1c], al
movsx eax, al
add eax, 0xffffffe0
cmp eax, 0x3e
ja case.0x40155d.34
xor ecx, ecx
mov cl, byte [eax + 0x4020c4]
jmp dword [ecx*4 + 0x4020b8]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::operator_2
mov edx, dword [esi]
mov ecx, edi
inc edx
mov dword [esi], edx
mov ebx, edx
call fcn.004022e0
cmp ebx, eax
jl 0x40153e
jmp case.0x40155d.32
mov eax, dword [esi]
mov dword [esp + 0x1c], 1
inc eax
mov dword [esi], eax
mov dword [esp + 0x24], eax
mov ebx, dword [esi]
mov ecx, edi
call fcn.004022e0
cmp ebx, eax
jge 0x4015d7
push ebx
mov ecx, edi
call fcn.00402310
movsx eax, al
sub eax, 0x28
je 0x4015c1
dec eax
jne 0x4015ca
mov eax, dword [esp + 0x1c]
dec eax
jmp 0x4015c6
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov ecx, dword [esi]
mov eax, dword [esp + 0x1c]
inc ecx
test eax, eax
mov dword [esi], ecx
jne 0x40159a
mov ecx, dword [esi]
mov eax, dword [esp + 0x24]
sub ecx, eax
lea edx, [esp + 0x30]
dec ecx
push ecx
push eax
push edx
mov ecx, edi
call sub.MFC42.DLL_CString::Mid
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x94], 3
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x30]
mov byte [esp + 0x90], 2
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
call sub.MFC42.DLL_CString::operator_1
mov esi, dword [ebp + 0x10]
lea ecx, [esp + 0x18]
push esi
push ecx
call fcn.00401020
mov al, byte [esi]
add esp, 8
fstp qword [esp + 0x24]
test al, al
je case.0x40155d.32
lea edx, [esp + 0x14]
push 0x40c020
push edx
call fcn.00402350
test al, al
je 0x401693
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call sub.MSVCRT.dll_sin
fstp qword [esp]
lea edx, [esp + 0x3c]
push edx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 4
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x34]
jmp 0x401f60
lea eax, [esp + 0x14]
push 0x40c024
push eax
call fcn.00402350
test al, al
je 0x4016e8
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
call sub.MSVCRT.dll_cos
fstp qword [esp]
lea eax, [esp + 0x40]
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 5
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x38]
jmp 0x401f60
lea ecx, [esp + 0x14]
push 0x40c028
push ecx
call fcn.00402350
test al, al
je 0x401758
fld qword [0x4094c8]
fmul qword [0x4094f8]
fcomp qword [esp + 0x24]
fnstsw ax
test ah, 0x40
jne 0x401871
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
call sub.MSVCRT.dll_tan
fstp qword [esp]
lea ecx, [esp + 0x44]
push ecx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 6
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x3c]
jmp 0x401f60
lea edx, [esp + 0x14]
push 0x40c02c
push edx
call fcn.00402350
test al, al
je 0x4017e1
fld qword [esp + 0x24]
fcomp qword [0x4094f0]
fnstsw ax
test ah, 0x40
jne 0x401871
fld qword [esp + 0x24]
fcomp qword [0x4094c8]
fnstsw ax
test ah, 0x40
jne 0x401871
lea eax, [esp + 0x18]
push esi
push eax
call fcn.00401020
fstp qword [esp]
call sub.MSVCRT.dll_sin
fdivr qword [0x4094e8]
lea ecx, [esp + 0x48]
fstp qword [esp]
push ecx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 7
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x40]
jmp 0x401f60
lea edx, [esp + 0x14]
push 0x40c030
push edx
call fcn.00402350
test al, al
je 0x401879
lea eax, [esp + 0x18]
push esi
push eax
call fcn.00401020
mov al, byte [esi]
add esp, 8
fst qword [esp + 0x24]
test al, al
je 0x40186f
fld qword [0x4094c8]
fmul qword [0x4094f8]
fxch st(1)
fcompp
fnstsw ax
test ah, 0x40
jne 0x401871
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
call sub.MSVCRT.dll_cos
fdivr qword [0x4094e8]
lea eax, [esp + 0x4c]
fstp qword [esp]
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 8
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x44]
jmp 0x401f60
fstp st(0)
mov byte [esi], 0
jmp case.0x40155d.32
lea ecx, [esp + 0x14]
push 0x40c034
push ecx
call fcn.00402350
test al, al
je 0x4018d4
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
call sub.MSVCRT.dll_tan
fdivr qword [0x4094e8]
lea ecx, [esp + 0x50]
fstp qword [esp]
push ecx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 9
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x48]
jmp 0x401f60
lea edx, [esp + 0x14]
push 0x40c038
push edx
call fcn.00402350
test al, al
je 0x401953
fld qword [esp + 0x24]
fcomp qword [0x4094e0]
fnstsw ax
test ah, 1
jne 0x401871
fld qword [esp + 0x24]
fcomp qword [0x4094e8]
fnstsw ax
test ah, 0x41
je 0x401871
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call sub.MSVCRT.dll_asin
fstp qword [esp]
lea edx, [esp + 0x54]
push edx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0xa
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x4c]
jmp 0x401f60
lea eax, [esp + 0x14]
push 0x40c040
push eax
call fcn.00402350
test al, al
je 0x4019d2
fld qword [esp + 0x24]
fcomp qword [0x4094e0]
fnstsw ax
test ah, 1
jne 0x401871
fld qword [esp + 0x24]
fcomp qword [0x4094e8]
fnstsw ax
test ah, 0x41
je 0x401871
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
call sub.MSVCRT.dll_acos
fstp qword [esp]
lea eax, [esp + 0x58]
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0xb
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x50]
jmp 0x401f60
lea ecx, [esp + 0x14]
push 0x40c048
push ecx
call fcn.00402350
test al, al
je 0x401a27
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
call sub.MSVCRT.dll_sinh
fstp qword [esp]
lea ecx, [esp + 0x5c]
push ecx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0xc
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x54]
jmp 0x401f60
lea edx, [esp + 0x14]
push 0x40c050
push edx
call fcn.00402350
test al, al
je 0x401a7c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call sub.MSVCRT.dll_cosh
fstp qword [esp]
lea edx, [esp + 0x60]
push edx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0xd
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x58]
jmp 0x401f60
lea eax, [esp + 0x14]
push 0x40c058
push eax
call fcn.00402350
test al, al
je 0x401ad1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
call sub.MSVCRT.dll_tanh
fstp qword [esp]
lea eax, [esp + 0x64]
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0xe
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x5c]
jmp 0x401f60
lea ecx, [esp + 0x14]
push 0x40c060
push ecx
call fcn.00402350
test al, al
je 0x401b48
fld qword [esp + 0x24]
sub esp, 8
fchs
fstp qword [esp]
call sub.MSVCRT.dll_exp
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
fstp qword [esp + 0x24]
push edx
push eax
call sub.MSVCRT.dll_exp
fadd qword [esp + 0x2c]
add esp, 8
lea ecx, [esp + 0x68]
fdivr qword [0x4094d8]
fstp qword [esp]
push ecx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0xf
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x60]
jmp 0x401f60
lea edx, [esp + 0x14]
push 0x40c068
push edx
call fcn.00402350
test al, al
je 0x401bb9
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call sub.MSVCRT.dll_exp
fstp qword [esp + 0x24]
fld qword [esp + 0x2c]
fchs
fstp qword [esp]
call sub.MSVCRT.dll_exp
fsubr qword [esp + 0x24]
lea edx, [esp + 0x6c]
fdivr qword [0x4094d8]
fstp qword [esp]
push edx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x10
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x64]
jmp 0x401f60
lea eax, [esp + 0x14]
push 0x40c070
push eax
call fcn.00402350
test al, al
je 0x401c58
fld qword [esp + 0x24]
fchs
fstp qword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
push esi
push edi
call sub.MSVCRT.dll_exp
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
fstp qword [esp + 0x24]
push ebx
push ecx
call sub.MSVCRT.dll_exp
fadd qword [esp + 0x2c]
mov edx, dword [esp + 0x34]
push ebx
push edx
fstp qword [esp + 0x34]
call sub.MSVCRT.dll_exp
fstp qword [esp + 0x3c]
push esi
push edi
call sub.MSVCRT.dll_exp
fsubr qword [esp + 0x44]
add esp, 0x18
lea eax, [esp + 0x70]
fdivr qword [esp + 0x24]
fstp qword [esp]
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x11
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x68]
jmp 0x401f60
lea ecx, [esp + 0x14]
push 0x40c078
push ecx
call fcn.00402350
test al, al
je 0x401cc3
fld qword [esp + 0x24]
fmul qword [esp + 0x24]
sub esp, 8
fadd qword [0x4094e8]
fstp qword [esp]
call sub.MSVCRT.dll_sqrt
fadd qword [esp + 0x2c]
fstp qword [esp]
call sub.MSVCRT.dll_log
fstp qword [esp]
lea edx, [esp + 0x74]
push edx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x12
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x6c]
jmp 0x401f60
lea eax, [esp + 0x14]
push 0x40c080
push eax
call fcn.00402350
test al, al
je 0x401d43
fld qword [esp + 0x24]
fcomp qword [0x4094e8]
fnstsw ax
test ah, 1
jne 0x401871
fld qword [esp + 0x24]
fmul qword [esp + 0x24]
sub esp, 8
fsub qword [0x4094e8]
fstp qword [esp]
call sub.MSVCRT.dll_sqrt
fadd qword [esp + 0x2c]
fstp qword [esp]
call sub.MSVCRT.dll_log
fstp qword [esp]
lea ecx, [esp + 0x78]
push ecx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x13
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x70]
jmp 0x401f60
lea edx, [esp + 0x14]
push 0x40c088
push edx
call fcn.00402350
test al, al
je 0x401dde
fld qword [esp + 0x24]
fcomp qword [0x4094e0]
fnstsw ax
test ah, 0x41
jne 0x401871
fld qword [esp + 0x24]
fcomp qword [0x4094e8]
fnstsw ax
test ah, 1
je 0x401871
fld qword [esp + 0x24]
fadd qword [0x4094e8]
fld qword [0x4094e8]
fsub qword [esp + 0x24]
sub esp, 8
fdivp st(1)
fstp qword [esp]
call sub.MSVCRT.dll_log
fmul qword [0x4094f8]
lea eax, [esp + 0x7c]
fstp qword [esp]
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x14
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x74]
jmp 0x401f60
lea ecx, [esp + 0x14]
push 0x40c090
push ecx
call fcn.00402350
test al, al
je 0x401e4b
fld qword [esp + 0x24]
fcomp qword [0x4094f0]
fnstsw ax
test ah, 0x41
jne 0x401871
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
call sub.MSVCRT.dll_log10
fstp qword [esp]
lea ecx, [esp + 0x80]
push ecx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x15
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x78]
jmp 0x401f60
lea edx, [esp + 0x14]
push 0x40c094
push edx
call fcn.00402350
test al, al
je 0x401eb8
fld qword [esp + 0x24]
fcomp qword [0x4094f0]
fnstsw ax
test ah, 0x41
jne 0x401871
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call sub.MSVCRT.dll_log
fstp qword [esp]
lea edx, [esp + 0x84]
push edx
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x16
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x7c]
jmp 0x401f60
lea eax, [esp + 0x14]
push 0x40c098
push eax
call fcn.00402350
test al, al
je 0x401f25
fld qword [esp + 0x24]
fcomp qword [0x4094f0]
fnstsw ax
test ah, 1
jne 0x401871
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
call sub.MSVCRT.dll_sqrt
fstp qword [esp]
lea eax, [esp + 0x88]
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x17
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x80]
jmp 0x401f60
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
lea eax, [esp + 0x88]
push edx
push eax
call fcn.00402150
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x94], 0x18
call sub.MFC42.DLL_CString::operator_1
mov byte [esp + 0x90], 2
lea ecx, [esp + 0x84]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
push 0x40c0a0
push ecx
call fcn.00402350
test al, al
je 0x401fda
mov edx, dword [0x4094c0]
mov eax, dword [0x4094c4]
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov byte [esp + 0x90], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x90], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x90], 0xffffffff
call sub.MFC42.DLL_CString::CString
fld qword [esp + 0x24]
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x10]
push 0x40c0a4
push ecx
call fcn.00402350
test al, al
je 0x40204f
mov edx, dword [0x4094c8]
mov eax, dword [0x4094cc]
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
mov byte [esp + 0x90], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x90], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x90], 0xffffffff
call sub.MFC42.DLL_CString::CString
fld qword [esp + 0x24]
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x10]
call fcn.00402300
push eax
call dword [sym.imp.MSVCRT.dll_atof]
fstp qword [esp + 0x28]
add esp, 4
lea ecx, [esp + 0x14]
mov byte [esp + 0x90], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x90], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x90], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x88]
pop edi
fld qword [esp + 0x20]
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret