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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x41ea50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xbc
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x10]
push ebx
mov dword [esp + 0x18], ecx
mov ebx, dword [eax + 8]
mov ecx, dword [ebp + 0x1c]
fild dword [ebp + 0x14]
lea eax, [edx + 3]
push esi
cdq
fmul qword [0x4210c8]
and edx, 3
push edi
mov edi, dword [ecx + 8]
add eax, edx
mov esi, eax
mov dword [esp + 0x60], ebx
sar esi, 2
mov dword [esp + 0x50], edi
shl esi, 2
call sub.MSVCRT.dll__ftol
mov dword [esp + 0x4c], eax
mov eax, edi
imul eax, ebx
shl eax, 3
push eax
mov dword [esp + 0x3c], eax
call sub.MFC42.DLL_operatornew
xor ecx, ecx
add esp, 4
cmp ebx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], ecx
jle 0x414bf4
mov dword [esp + 0x1c], ecx
cmp edi, ecx
mov dword [esp + 0x2c], ecx
jle 0x414bd9
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x64], 0
mov ecx, dword [eax + 4]
mov dword [esp + 0x68], 0
fld qword [0x4206c8]
lea eax, [ecx + edx*8]
mov dword [esp + 0x44], 0
fld qword [0x4206c8]
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x78], edx
mov edx, ecx
mov dword [esp + 0x84], edx
mov edx, dword [eax + 4]
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x88], edx
add edx, 0xfffffff9
mov dword [esp + 0x74], ecx
mov eax, dword [eax + 4]
imul edx, esi
mov ebx, dword [eax + edi*8 + 4]
lea eax, [eax + edi*8]
mov dword [esp + 0x80], ebx
add edx, ecx
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x9c], eax
add eax, 0xfffffff9
imul eax, esi
mov ecx, dword [ebp + 8]
mov dword [esp + 0x7c], edi
mov ebx, edi
add eax, edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x98], ebx
add ecx, edx
mov dword [esp + 0x48], 0
lea ebx, [eax + edi]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov edi, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x30], 0xf
mov eax, 0xfffffff9
xor edx, edx
mov dl, byte [ecx + eax]
mov dword [esp + 0xc], edx
xor edx, edx
fild dword [esp + 0xc]
mov dl, byte [edi + eax]
inc eax
mov dword [esp + 0xc], edx
cmp eax, 7
faddp st(2)
fild dword [esp + 0xc]
faddp st(1)
jle 0x414a01
mov eax, dword [esp + 0x30]
add ecx, esi
add edi, esi
dec eax
mov dword [esp + 0x30], eax
jne 0x4149fc
fstp qword [esp + 0x54]
mov eax, dword [esp + 0x28]
add ebx, 0xfffffff9
fmul qword [0x4210c0]
add eax, 0xfffffff9
mov dword [esp + 0x30], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xf
fstp qword [esp + 0x6c]
fld qword [esp + 0x54]
fmul qword [0x4210c0]
fstp qword [esp + 0x54]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x28], 0xf
xor ecx, ecx
mov cl, byte [ebx]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fsub qword [esp + 0x6c]
fst qword [esp + 0x8c]
fld qword [0x420568]
call sub.MSVCRT.dll__CIpow
fadd qword [esp + 0x64]
xor edx, edx
mov dl, byte [edi]
mov dword [esp + 0x14], edx
fstp qword [esp + 0x64]
fild dword [esp + 0x14]
fsub qword [esp + 0x54]
fst qword [esp + 0x14]
fld qword [0x420568]
call sub.MSVCRT.dll__CIpow
fadd qword [esp + 0x44]
mov eax, dword [esp + 0x28]
inc edi
inc ebx
dec eax
mov dword [esp + 0x28], eax
fstp qword [esp + 0x44]
fld qword [esp + 0x14]
fmul qword [esp + 0x8c]
fadd qword [esp + 0x3c]
fstp qword [esp + 0x3c]
jne 0x414a7a
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xc]
add edx, esi
add ecx, esi
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0xc], eax
jne 0x414a6a
fld qword [esp + 0x64]
fsqrt
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x9c]
sub eax, edx
mov dword [esp + 0x14], eax
fld qword [esp + 0x44]
fsqrt
fmul st(1)
fmul qword [0x4210b8]
fdivr qword [esp + 0x3c]
fstp qword [esp + 0x6c]
fstp st(0)
fild dword [esp + 0x14]
fld qword [0x420568]
call sub.MSVCRT.dll__CIpow
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
sub eax, ecx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld qword [0x420568]
call sub.MSVCRT.dll__CIpow
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x1c]
mov ecx, eax
imul ecx, eax
faddp st(1)
neg ecx
shl ecx, 1
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x2c]
fild dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
add edx, eax
inc eax
fdivr st(1)
mov dword [esp + 0x2c], eax
fldl2e
fmulp st(1)
fld st(0)
frndint
fxch st(1)
fsub st(1)
f2xm1
fld1
faddp st(1)
fscale
fstp st(1)
fld qword [esp + 0x6c]
fadd qword [0x420560]
fmulp st(1)
fmul qword [0x420698]
fstp qword [ecx + edx*8]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
fstp st(0)
jl 0x414939
mov ebx, dword [esp + 0x60]
mov edi, ecx
xor ecx, ecx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
inc eax
add edx, edi
cmp eax, ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], edx
jl 0x41492d
mov edx, ebx
imul edx, ebx
shl edx, 3
push edx
call sub.MFC42.DLL_operatornew
mov esi, eax
mov eax, dword [esp + 0x3c]
push eax
mov dword [esp + 0x30], esi
call sub.MFC42.DLL_operatornew
mov ecx, edi
mov dword [esp + 0x14], eax
imul ecx, edi
shl ecx, 3
push ecx
call sub.MFC42.DLL_operatornew
add esp, 0xc
cmp ebx, edi
mov dword [esp + 0x2c], eax
mov ecx, ebx
jg 0x414c33
mov ecx, edi
mov edx, dword [esp + 0x34]
inc ecx
push ecx
mov ecx, dword [esp + 0x24]
push 0x3ee4f8b5
push 0x88e368f1
push eax
push esi
push edi
push ebx
push edx
call fcn.00415310
cmp ebx, edi
mov ecx, ebx
jl 0x414c59
mov ecx, edi
xor esi, esi
cmp ecx, esi
jle 0x414c78
mov eax, dword [esp + 0x34]
lea edx, [edi*8 + 8]
mov dword [eax], esi
mov dword [eax + 4], 0x3ff00000
add eax, edx
dec ecx
jne 0x414c6a
mov eax, dword [esp + 0x38]
push eax
call sub.MFC42.DLL_operatornew
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x24]
push edi
push ebx
push ebx
push edx
push eax
call fcn.004169a0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x24]
push edi
push edi
push ebx
push edx
push eax
call fcn.004169a0
mov eax, 0x421080
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa0], eax
mov dword [esp + 0xb0], esi
mov dword [esp + 0xac], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], esi
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xbc], esi
test ebx, ebx
mov byte [esp + 0xd0], 1
mov dword [esp + 0x24], esi
jle 0x414f70
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
fld qword [0x4210b0]
xor edx, edx
mov dword [esp + 0x3c], 0
test edi, edi
mov dword [esp + 0x40], 0xc09f3c00
jle 0x414d77
mov ecx, dword [esp + 0x1c]
fld qword [ecx]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x414d6f
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
inc edx
add ecx, 8
cmp edx, edi
jl 0x414d4d
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
xor ecx, ecx
lea edx, [eax + edx*8]
fcom qword [edx]
fnstsw ax
test ah, 1
je 0x414d95
fstp st(0)
fld qword [edx]
mov dword [esp + 0x4c], ecx
lea eax, [edi*8]
inc ecx
add edx, eax
cmp ecx, ebx
jl 0x414d84
cmp dword [esp + 0x4c], esi
fstp st(0)
jne 0x414f52
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x20]
push 0xffffffffffffffff
mov edx, dword [ecx + 4]
mov eax, dword [edx + esi*8]
mov dword [esp + 0x58], eax
mov ecx, dword [edx + esi*8 + 4]
mov esi, dword [ebx + 8]
mov dword [esp + 0x5c], ecx
mov ecx, ebx
lea edx, [esi + 1]
push edx
call fcn.00416c20
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x38]
mov edx, dword [ecx + eax*8]
mov dword [esp + 0x44], edx
mov eax, dword [ecx + eax*8 + 4]
mov ecx, dword [esi + 8]
mov ebx, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esi + 4]
mov dword [esp + 0xc], ebx
inc ebx
test ebx, ebx
jne 0x414e3b
test eax, eax
je 0x414e2e
push eax
mov dword [esp + 0x18], ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esi + 4], 0
xor eax, eax
mov dword [esi + 0xc], eax
mov dword [esi + 8], eax
jmp 0x414f34
test eax, eax
jne 0x414e64
lea ecx, [ebx*8]
push ecx
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esi + 4], eax
push ebx
push eax
call fcn.00416d50
mov dword [esi + 0xc], ebx
mov dword [esi + 8], ebx
jmp 0x414f34
cmp ebx, dword [esi + 0xc]
jg 0x414e93
cmp ecx, ebx
jge 0x414e83
mov edx, ebx
lea eax, [eax + ecx*8]
sub edx, ecx
push edx
push eax
call fcn.00416d50
mov dword [esi + 8], ebx
jmp 0x414f34
jle 0x414e8b
sub ecx, ebx
mov dword [esp + 0x14], ecx
mov dword [esi + 8], ebx
jmp 0x414f34
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x414ebd
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x414eb1
mov eax, 4
jmp 0x414ebd
cmp eax, 0x400
jle 0x414ebd
mov eax, 0x400
mov ecx, dword [esi + 0xc]
add eax, ecx
cmp ebx, eax
mov dword [esp + 0x20], eax
jl 0x414ece
mov dword [esp + 0x20], ebx
mov ecx, dword [esp + 0x20]
lea edx, [ecx*8]
push edx
call sub.MFC42.DLL_operatornew
mov ecx, dword [esi + 8]
mov esi, dword [esi + 4]
shl ecx, 3
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, ebx
and ecx, 3
add esp, 4
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x24]
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
sub edx, ecx
lea eax, [eax + ecx*8]
push edx
push eax
call fcn.00416d50
mov ecx, dword [esi + 4]
push ecx
call sub.MFC42.DLL_operatordelete
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x54]
add esp, 4
mov dword [esi + 4], edx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x60]
mov dword [ecx + eax*8], edx
mov edx, dword [esp + 0x48]
mov dword [ecx + eax*8 + 4], edx
mov ecx, dword [esp + 0x1c]
lea eax, [edi*8]
inc esi
add ecx, eax
cmp esi, ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ecx
jl 0x414d2d
mov eax, dword [esp + 0x28]
push eax
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0x30]
push ecx
call sub.MFC42.DLL_operatordelete
mov edx, dword [esp + 0x3c]
push edx
call sub.MFC42.DLL_operatordelete
mov eax, dword [esp + 0x1c]
push eax
call sub.MFC42.DLL_operatordelete
mov ecx, dword [esp + 0xd8]
add esp, 0x10
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20