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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d7342
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x234
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov esi, dword [eax]
cmp esi, 4
jl 0x4743d3
xor ebx, ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
cmp esi, 1
mov dword [esp + 0x248], ebx
jb 0x4739ad
lea ecx, [esp + 0x6c]
call fcn.00426aa0
lea ebx, [esi*8]
push ebx
call sub.MFC42.DLL_operatornew
add esp, 4
mov edi, eax
test esi, esi
mov dword [esp + 0x6c], eax
jbe 0x4739a1
mov ecx, esi
and ecx, 0x1fffffff
shl ecx, 1
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x6c]
add ebx, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ebx
xor ebx, ebx
mov esi, dword [ebp + 8]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0xc12e8480
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov eax, dword [ebp + 0x1c]
mov byte [esp + 0x248], 3
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x4c]
push ecx
push edx
lea ecx, [esp + 0x68]
mov dword [esp + 0x4c], eax
call fcn.004051b0
lea eax, [esp + 0x60]
lea ecx, [esp + 0x4c]
push eax
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00405230
mov edi, dword [ebp + 0x14]
lea edx, [esp + 0x3c]
fld dword [eax]
fmul dword [edi]
fld dword [eax + 4]
fmul dword [edi + 4]
push edi
push edx
faddp st(1)
fld dword [eax + 8]
fmul dword [edi + 8]
lea eax, [esp + 0xac]
faddp st(1)
push eax
fstp qword [esp + 0x48]
call fcn.00405980
add esp, 0xc
lea ecx, [esp + 0x94]
push eax
push ecx
lea ecx, [esp + 0x68]
call fcn.004051f0
lea edx, [esp + 0x84]
push eax
push edx
lea ecx, [esp + 0x68]
call fcn.004051b0
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
jle 0x473b77
lea ecx, [esp + 0x60]
lea edx, [esp + 0x3c]
push ecx
push edx
mov ecx, esi
call fcn.00405230
push eax
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x20]
call fcn.004051b0
fld dword [esp + 0x18]
fmul dword [edi + 0xc]
fld dword [esp + 0x1c]
fmul dword [edi + 0x10]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [edi + 0x14]
faddp st(1)
fstp dword [esi]
fld dword [esp + 0x18]
fmul dword [edi + 0x18]
fld dword [esp + 0x1c]
fmul dword [edi + 0x1c]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [edi + 0x20]
faddp st(1)
fstp dword [esi + 4]
fld dword [esp + 0x18]
fmul dword [edi]
fld dword [esp + 0x1c]
fmul dword [edi + 4]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [edi + 8]
faddp st(1)
fstp dword [esi + 8]
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fcom qword [esp + 0x24]
fst qword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x473b53
fstp qword [esp + 0x24]
jmp 0x473b55
fstp st(0)
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0xc]
push ecx
push edx
lea ecx, [esp + 0x74]
call fcn.00472910
mov eax, dword [ebp + 0xc]
inc ebx
add esi, 0xc
cmp ebx, dword [eax]
jl 0x473ab0
fld qword [esp + 0x24]
mov ecx, 0x46
xor eax, eax
lea edi, [esp + 0x128]
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov ebx, dword [esp + 0x70]
fmul qword [0x4e4578]
rep stosd dword es:[edi], eax
fstp qword [esp + 0x24]
mov ecx, 0xa
lea edi, [esp + 0xf8]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
rep stosd dword es:[edi], eax
mov ecx, 0xa
lea edi, [esp + 0xbc]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x6c]
cmp edi, ebx
je 0x473f01
mov ecx, dword [ebp + 8]
lea esi, [ecx + 4]
fld qword [edi]
fmul qword [0x4e4548]
fdiv qword [esp + 0x24]
fldl2e
fmulp st(1)
fld st(0)
frndint
fxch st(1)
fsub st(1)
f2xm1
fld1
faddp st(1)
fscale
fstp st(1)
fstp qword [esp + 0xc]
fld dword [esi - 4]
fld qword [0x4e00d8]
call sub.MSVCRT.dll__CIpow
fmul qword [esp + 0xc]
fadd qword [esp + 0x120]
fstp qword [esp + 0x120]
fld dword [esi]
fld qword [0x4e00d8]
call sub.MSVCRT.dll__CIpow
fmul qword [esp + 0xc]
fadd qword [esp + 0x158]
fstp qword [esp + 0x158]
fld dword [esi]
fld qword [0x4e1c40]
call sub.MSVCRT.dll__CIpow
fstp qword [esp + 0x4c]
fld dword [esi - 4]
fld qword [0x4e1c40]
call sub.MSVCRT.dll__CIpow
fstp qword [esp + 0x3c]
fld qword [esp + 0x4c]
fmul qword [esp + 0x3c]
fmul qword [esp + 0xc]
fld qword [esp + 0x190]
fadd st(1)
fstp qword [esp + 0x190]
fld qword [esp + 0x3c]
fmul qword [esp + 0xc]
fstp qword [esp + 0xa4]
fld qword [esp + 0x1c8]
fadd qword [esp + 0xa4]
fstp qword [esp + 0x1c8]
fld qword [esp + 0x4c]
fmul qword [esp + 0xc]
fst qword [esp + 0x94]
fadd qword [esp + 0x200]
fstp qword [esp + 0x200]
fld qword [esp + 0x238]
fadd qword [esp + 0xc]
fstp qword [esp + 0x238]
fld qword [esp + 0x128]
fadd st(1)
fstp qword [esp + 0x128]
fstp st(0)
fld dword [esi - 4]
fld qword [0x4e4570]
call sub.MSVCRT.dll__CIpow
fld dword [esi]
fmul st(1)
fmul qword [esp + 0xc]
fadd qword [esp + 0x130]
fstp qword [esp + 0x130]
fmul qword [esp + 0xc]
fadd qword [esp + 0x138]
fstp qword [esp + 0x138]
fld dword [esi]
fmul qword [esp + 0x3c]
fmul qword [esp + 0xc]
fstp qword [esp + 0x84]
fld qword [esp + 0x140]
fadd qword [esp + 0x84]
fstp qword [esp + 0x140]
fld qword [esp + 0x148]
fadd qword [esp + 0xa4]
fstp qword [esp + 0x148]
fld dword [esi]
fld qword [0x4e4570]
call sub.MSVCRT.dll__CIpow
fld dword [esi - 4]
fmul st(1)
add edi, 8
add esi, 0xc
cmp edi, ebx
fmul qword [esp + 0xc]
fadd qword [esp + 0x160]
fstp qword [esp + 0x160]
fld dword [esi - 0x10]
fmul qword [esp + 0x4c]
fmul qword [esp + 0xc]
fstp qword [esp + 0xa4]
fld qword [esp + 0x168]
fadd qword [esp + 0xa4]
fstp qword [esp + 0x168]
fmul qword [esp + 0xc]
fadd qword [esp + 0x170]
fstp qword [esp + 0x170]
fld qword [esp + 0x94]
fadd qword [esp + 0x178]
fstp qword [esp + 0x178]
fld qword [esp + 0x198]
fadd qword [esp + 0x84]
fstp qword [esp + 0x198]
fld qword [esp + 0x1a0]
fadd qword [esp + 0xa4]
fstp qword [esp + 0x1a0]
fld dword [esi - 0xc]
fmul dword [esi - 0x10]
fmul qword [esp + 0xc]
fld qword [esp + 0x1a8]
fadd st(1)
fstp qword [esp + 0x1a8]
fld qword [esp + 0x1d0]
fadd st(1)
fstp qword [esp + 0x1d0]
fstp st(0)
fld dword [esi - 0x10]
fmul qword [esp + 0xc]
fadd qword [esp + 0x1d8]
fstp qword [esp + 0x1d8]
fld dword [esi - 0xc]
fmul qword [esp + 0xc]
fadd qword [esp + 0x208]
fstp qword [esp + 0x208]
fld dword [esi - 8]
fmul qword [esp + 0x3c]
fmul qword [esp + 0xc]
fadd qword [esp + 0xb4]
fstp qword [esp + 0xb4]
fld dword [esi - 8]
fmul qword [esp + 0x4c]
fmul qword [esp + 0xc]
fadd qword [esp + 0xbc]
fstp qword [esp + 0xbc]
fld dword [esi - 0xc]
fmul dword [esi - 8]
fld dword [esi - 0x10]
fmul st(1)
fmul qword [esp + 0xc]
fadd qword [esp + 0xc4]
fstp qword [esp + 0xc4]
fld dword [esi - 8]
fmul dword [esi - 0x10]
fmul qword [esp + 0xc]
fadd qword [esp + 0xcc]
fstp qword [esp + 0xcc]
fmul qword [esp + 0xc]
fadd qword [esp + 0xd4]
fstp qword [esp + 0xd4]
fld dword [esi - 8]
fmul qword [esp + 0xc]
fadd qword [esp + 0xdc]
fstp qword [esp + 0xdc]
jne 0x473bf9
xor edi, edi
mov esi, 1
cmp esi, 6
jge 0x473f3b
lea edx, [esi + edi]
lea ecx, [esi + edi]
lea eax, [esp + edx*8 + 0x120]
mov edx, 6
lea ecx, [esp + ecx*8 + 0x148]
sub edx, esi
mov ebx, dword [eax]
add eax, 8
mov dword [ecx], ebx
mov ebx, dword [eax - 4]
mov dword [ecx + 4], ebx
add ecx, 0x30
dec edx
jne 0x473f28
inc esi
add edi, 6
lea edx, [esi - 1]
cmp edx, 6
jl 0x473f08
push 0x120
call sub.MFC42.DLL_operatornew
mov edi, eax
push 0x30
mov dword [esp + 0x40], edi
call sub.MFC42.DLL_operatornew
lea ebx, [esp + 0xbc]
lea ecx, [esp + 0x128]
add esp, 8
sub ebx, eax
sub edi, ecx
mov dword [esp + 0x94], eax
lea edx, [esp + 0x120]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x24], 6
jmp 0x473f93
mov edi, dword [esp + 0x3c]
mov ecx, dword [ebx + eax]
mov esi, edx
mov dword [eax], ecx
mov ecx, dword [ebx + eax + 4]
mov dword [eax + 4], ecx
mov ecx, 0xc
add edi, edx
add eax, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x24]
add edx, 0x30
dec ecx
mov dword [esp + 0x24], ecx
jne 0x473f8f
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x38]
mov ecx, 6
xor esi, esi
mov dword [esp + 0x84], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xa4], ebx
mov eax, dword [esp + 0xa4]
cmp ecx, 0x2a
mov edi, esi
mov edx, esi
fld qword [eax]
jge 0x474079
fld st(0)
fabs
fld qword [ebx]
fabs
fcompp
fnstsw ax
test ah, 0x41
jne 0x474010
fstp st(0)
fld qword [ebx]
mov edi, edx
inc edx
add ebx, 0x30
cmp edx, 6
jl 0x473ff9
cmp edi, esi
fstp st(0)
je 0x47407b
cmp ecx, 0x2a
jge 0x474058
mov eax, dword [esp + 0x38]
lea ecx, [edi + edi*2]
lea edx, [esi + ecx*2]
lea ecx, [eax + edx*8]
mov eax, dword [esp + 0x3c]
mov edx, 6
sub edx, esi
mov ebx, dword [ecx]
add ecx, 8
fld qword [eax]
mov dword [eax], ebx
mov ebx, dword [ecx - 4]
mov dword [eax + 4], ebx
add eax, 8
fstp qword [ecx - 8]
dec edx
jne 0x47403c
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x84]
mov ebx, dword [edx + edi*8]
fld qword [eax]
mov dword [eax], ebx
mov ebx, dword [edx + edi*8 + 4]
mov dword [eax + 4], ebx
fstp qword [edx + edi*8]
jmp 0x47407b
fstp st(0)
lea edx, [esi + 1]
cmp edx, 6
jge 0x47410a
mov eax, dword [esp + 0x84]
mov edi, ecx
lea ebx, [eax + 8]
lea eax, [ecx + esi]
mov esi, dword [esp + 0x38]
lea eax, [esi + eax*8]
mov dword [esp + 0x4c], eax
jmp 0x4740a7
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
cmp edx, 6
fld qword [eax]
mov eax, dword [esp + 0xa4]
fdiv qword [eax]
jge 0x4740e5
lea eax, [edi + edx]
add ecx, edx
lea eax, [esi + eax*8]
lea esi, [esi + ecx*8 - 0x30]
mov ecx, 6
sub ecx, edx
fld st(0)
fmul qword [esi]
add esi, 8
add eax, 8
dec ecx
fsubr qword [eax - 8]
fstp qword [eax - 8]
jne 0x4740ce
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x84]
add edi, 6
add ebx, 8
fmul qword [eax]
mov eax, dword [esp + 0x4c]
add eax, 0x30
cmp edi, 0x24
fsubr qword [ebx - 8]
mov dword [esp + 0x4c], eax
fstp qword [ebx - 8]
jl 0x4740a3
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0xa4]
mov esi, edx
mov edx, dword [esp + 0x84]
add ecx, 6
add ebx, 0x38
add eax, 0x38
add edx, 8
cmp ecx, 0x24
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xa4], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x84], edx
jl 0x473fe3
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x38]
mov esi, ecx
mov ebx, 0x18
fld qword [ecx + 0x28]
fdiv qword [edx + 0x118]
lea edi, [edx + 0xe0]
mov eax, 5
mov dword [esp + 0x24], edi
lea edi, [esp + 0xf8]
sub edi, esi
lea ecx, [esi + 0x20]
mov dword [esp + 0x3c], edi
lea edi, [esp + 0xf0]
sub edi, esi
mov dword [esp + 0x4c], edi
fstp qword [esp + 0x118]
fld qword [0x4e00c0]
cmp eax, 6
jge 0x4741d0
mov esi, dword [esp + 0x3c]
lea edi, [esi + ecx]
lea esi, [eax + ebx]
lea esi, [edx + esi*8]
mov edx, 6
sub edx, eax
fld qword [edi]
fmul qword [esi]
add esi, 8
add edi, 8
dec edx
faddp st(1)
jne 0x4741b6
mov esi, dword [esp + 0x94]
mov edx, dword [esp + 0x38]
fld qword [ecx]
mov edi, dword [esp + 0x24]
dec eax
fsub st(1)
sub ebx, 6
sub ecx, 8
fdiv qword [edi]
mov edi, dword [esp + 0x4c]
fstp qword [edi + ecx + 8]
mov edi, dword [esp + 0x24]
sub edi, 0x38
mov dword [esp + 0x24], edi
lea edi, [eax - 1]
cmp edi, 0xffffffff
fstp st(0)
jg 0x474197
push edx
call sub.MFC42.DLL_operatordelete
push esi
call sub.MFC42.DLL_operatordelete
mov edi, dword [ebp + 0x1c]
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x30]
push edi
push ecx
call fcn.0041a670
add esp, 0x14
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x78]
push eax
push edx
call fcn.004051b0
mov ebx, dword [ebp + 0x14]
lea ecx, [esp + 0x3c]
fld dword [esp + 0x78]
fmul dword [ebx + 0xc]
fld dword [esp + 0x7c]
fmul dword [ebx + 0x10]
lea esi, [ebx + 0xc]
lea eax, [ebx + 0x18]
faddp st(1)
fld dword [esp + 0x80]
fmul dword [esi + 8]
push eax
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x7c]
fmul dword [eax]
fld dword [esp + 0x80]
fmul dword [eax + 4]
faddp st(1)
fld dword [esp + 0x84]
fmul dword [eax + 8]
lea eax, [esp + 0x20]
faddp st(1)
push eax
push ecx
fst dword [esp + 0x28]
fmul qword [esp + 0x104]
fld dword [esp + 0x24]
fmul qword [esp + 0x10c]
faddp st(1)
fadd qword [esp + 0x11c]
fmul dword [esp + 0x28]
fld dword [esp + 0x24]
fmul qword [esp + 0xfc]
fadd qword [esp + 0x114]
fmul dword [esp + 0x24]
faddp st(1)
fadd qword [esp + 0x124]
fstp dword [esp + 0x2c]
call fcn.00405860
mov dword [esp + 0x30], eax
lea edx, [esp + 0x24]
push esi
lea eax, [esp + 0x5c]
push edx
push eax
call fcn.00405860
lea ecx, [esp + 0x38]
push ebx
lea edx, [esp + 0xc0]
push ecx
push edx
mov esi, eax
call fcn.00405860
add esp, 0x24
lea ecx, [esp + 0x94]
push esi
push ecx
mov ecx, eax
call fcn.004051f0
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x84]
push edx
push ecx
mov ecx, eax
call fcn.004051f0
lea edx, [esp + 0xe4]
push eax
push edx
lea ecx, [esp + 0x80]
call fcn.004051b0
lea eax, [esp + 0x60]
lea ecx, [esp + 0xe4]
push eax
push ecx
lea ecx, [esp + 0x80]
call fcn.004051f0
lea edx, [esp + 0x24]
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.004051b0
mov esi, dword [ebp + 0x18]
lea eax, [esp + 0x24]
push edi
lea ecx, [esp + 0xa8]
fld dword [esi]
fsubr qword [0x4e1438]
push eax
push ecx
fstp qword [esp + 0x30]
call fcn.00475c60
mov ebx, eax
lea edx, [esp + 0x24]
lea eax, [esp + 0xf0]
push edx
push esi
push eax
call fcn.00405860
push ebx
lea ecx, [esp + 0x58]
push eax
push ecx
mov byte [esp + 0x26c], 5
call fcn.004059c0
add esp, 0x24
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x60]
push eax
push edx
call fcn.004051b0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x68]
mov dword [edi + 4], ecx
lea ecx, [esp + 0x6c]
mov dword [edi], eax
mov dword [edi + 8], edx
call fcn.00426aa0
mov ecx, dword [esp + 0x240]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret