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

Disassembly:
mov eax, 0xf370
call fcn.00414f00
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x6c], ecx
push 0xd2f0
mov dword [esp + 0x18], 1
call sub.MFC42.DLL_operatornew
push 0x11940
mov dword [esp + 0x58], eax
call sub.MFC42.DLL_operatornew
mov esi, dword [esp + 0xf38c]
add esp, 8
lea ecx, [esp + 0x110]
mov ebp, eax
mov eax, dword [esi]
push 0x40
xor edi, edi
push ecx
mov ecx, esi
mov dword [esp + 0x20], edi
call dword [eax + 0x3c]
mov eax, dword [esp + 0x114]
mov edx, dword [esi]
push edi
push eax
mov ecx, esi
call dword [edx + 0x30]
cmp word [esp + 0x110], di
mov dword [esp + 0x54], edi
jle 0x404367
mov esi, dword [esp + 0xf384]
lea eax, [esp + 0x70]
push 0x46
push eax
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x3c]
mov ax, word [esp + 0xb4]
xor ebx, ebx
cmp ax, bx
jle 0x403ad7
mov edx, dword [esi]
mov ecx, esi
movsx eax, ax
push eax
push ebp
call dword [edx + 0x3c]
mov eax, dword [esp + 0xa8]
mov edx, dword [esi]
lea ecx, [esp + 0x150]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x3c]
cmp eax, dword [esp + 0xa8]
jne 0x404396
lea edx, [esp + 0x70]
push edx
call fcn.00401b30
movsx esi, word [esp + 0x76]
xor eax, eax
cmp word [esp + 0x74], 1
push 0x38
mov dword [esp + 0x20], ebx
setne al
inc eax
mov edi, eax
call sub.MFC42.DLL_operatornew
add esp, 8
cmp eax, ebx
je 0x403b38
push edi
push 3
mov ecx, eax
call fcn.00402aa0
mov ebx, eax
jmp 0x403b3a
xor ebx, ebx
mov dword [ebx + 0x28], esi
mov ecx, dword [esp + 0x78]
mov dword [ebx + 0xc], ecx
mov edx, dword [esp + 0x74]
mov dword [ebx + 8], edx
lea edi, [ebp + 8]
fild dword [esp + 0x9e]
mov esi, 1
mov dword [esp + 0x1c], ebx
fmul qword [0x416a40]
fstp dword [ebx + 0x14]
mov eax, dword [esp + 0x84]
mov dword [ebp], eax
mov ecx, dword [esp + 0x88]
mov dword [ebp + 4], ecx
mov edx, dword [esp + 0x8c]
mov dword [edi], edx
fld dword [esp + 0x8c]
fchs
fstp dword [edi]
mov ax, word [esp + 0x70]
cmp ax, si
jne 0x404255
cmp word [esp + 0xa6], 0
mov dword [esp + 0x58], 0
jle 0x40433a
lea eax, [esp + 0x20]
lea ecx, [esp + 0x70]
push eax
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x158]
push edx
push eax
call fcn.00401810
add esp, 0x10
test eax, eax
je 0x40420f
mov ecx, dword [esp + 0x20]
mov bl, cl
shr bl, 4
cmp bl, 0xa
mov byte [esp + 0x13], bl
jne 0x403bf6
lea edx, [esp + 0x108]
jmp 0x403c39
cmp bl, 0xb
jne 0x403c2d
lea eax, [esp + 0xb8]
push 1
push eax
push ecx
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x24]
push ecx
lea eax, [esp + 0x160]
push edx
push eax
call fcn.004018b0
add esp, 0x18
test eax, eax
je 0x40420f
jmp 0x4041f6
cmp bl, 0xc
jne 0x403c62
lea edx, [esp + 0x10c]
push edx
push ecx
lea eax, [esp + 0x78]
lea ecx, [esp + 0x20]
push eax
lea edx, [esp + 0x15c]
push ecx
push edx
call fcn.00401a70
add esp, 0x14
test eax, eax
je 0x40420f
jmp 0x4041f6
cmp bl, 0xd
je 0x4041f6
test bl, bl
jne 0x403d73
xor eax, eax
test cl, 1
je 0x403c7f
mov eax, 1
test cl, 2
je 0x403c85
inc eax
test cl, 4
je 0x403c8b
inc eax
test cl, 8
je 0x403c91
inc eax
push eax
lea eax, [esp + 0xbc]
push eax
push ecx
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x24]
push ecx
lea eax, [esp + 0x160]
push edx
push eax
call fcn.004018b0
add esp, 0x18
test eax, eax
je 0x40420f
lea ecx, [esi + esi*2]
lea eax, [ebp + ecx*4]
mov ecx, eax
lea edx, [eax - 0xc]
mov edi, dword [eax - 0xc]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov dl, byte [esp + 0x20]
xor ecx, ecx
test dl, 1
je 0x403cf3
mov ecx, dword [esp + 0xb8]
mov dword [eax], ecx
mov ecx, 1
test byte [esp + 0x20], 2
je 0x403d05
mov edx, dword [esp + ecx*4 + 0xb8]
inc ecx
mov dword [eax + 4], edx
test byte [esp + 0x20], 4
je 0x403d18
fld dword [esp + ecx*4 + 0xb8]
fchs
fstp dword [eax + 8]
inc esi
cmp esi, 0xfa0
jle 0x4041f6
push 0x10
call sub.MFC42.DLL_operatornew
add esp, 4
test eax, eax
je 0x403d3e
mov ecx, eax
call fcn.00402940
mov edi, eax
jmp 0x403d40
xor edi, edi
push esi
push ebp
mov ecx, edi
call fcn.00402970
mov ecx, dword [esp + 0x1c]
push edi
call fcn.00402be0
lea eax, [esi + esi*2]
mov edx, ebp
lea ecx, [ebp + eax*4 - 0xc]
mov eax, dword [ebp + eax*4 - 0xc]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
jmp 0x4041f1
cmp esi, 1
jle 0x403dca
push 0x10
call sub.MFC42.DLL_operatornew
add esp, 4
test eax, eax
je 0x403d91
mov ecx, eax
call fcn.00402940
mov edi, eax
jmp 0x403d93
xor edi, edi
push esi
push ebp
mov ecx, edi
call fcn.00402970
mov ecx, dword [esp + 0x1c]
push edi
call fcn.00402be0
lea edx, [esi + esi*2]
mov ecx, ebp
mov esi, 1
lea eax, [ebp + edx*4 - 0xc]
mov edx, dword [ebp + edx*4 - 0xc]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0x20]
cmp bl, 1
je 0x403dd8
cmp bl, 2
jne 0x4041f6
lea edx, [esi + esi*2]
mov bl, cl
and bl, 7
lea eax, [ebp + edx*4 - 0xc]
mov edx, eax
mov edi, dword [edx]
mov dword [esp + 0x60], edi
mov edi, dword [edx + 4]
mov dword [esp + 0x64], edi
mov edx, dword [edx + 8]
mov dword [esp + 0x68], edx
mov edx, eax
mov edi, dword [edx]
mov dword [esp + 0x24], edi
mov edi, dword [edx + 4]
mov dword [esp + 0x28], edi
mov edx, dword [edx + 8]
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
je 0x403e6c
cmp bl, 1
je 0x403e6c
cmp bl, 2
je 0x403e52
cmp bl, 3
je 0x403e52
cmp bl, 4
je 0x403e3f
cmp bl, 5
jne 0x403e7e
mov eax, 2
mov dword [esp + 0x4c], 1
mov dword [esp + 0x48], eax
jmp 0x403e7a
mov dword [esp + 0x4c], 2
mov dword [esp + 0x48], 0
mov dword [esp + 0x3c], 1
jmp 0x403e7e
xor eax, eax
mov dword [esp + 0x48], 1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x3c], eax
test cl, 8
mov edi, 2
je 0x403e8d
mov edi, 3
cmp byte [esp + 0x13], 2
jne 0x403f64
lea edx, [esp + 0xb8]
push edi
push edx
push ecx
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x160]
push ecx
push edx
call fcn.004018b0
add esp, 0x18
test eax, eax
je 0x40439c
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x403efd
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
cmp edi, 3
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
jne 0x404062
fld dword [esp + 0xc0]
fchs
fstp dword [esp + 0x2c]
jmp 0x404062
cmp eax, 1
jne 0x403f33
fld dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
cmp edi, 3
fchs
fstp dword [esp + 0x38]
mov dword [esp + 0x30], edx
jne 0x404062
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x28], eax
jmp 0x404062
fld dword [esp + 0xbc]
mov ecx, dword [esp + 0xb8]
cmp edi, 3
fchs
fstp dword [esp + 0x38]
mov dword [esp + 0x34], ecx
jne 0x404062
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x24], edx
jmp 0x404062
add edi, 2
lea eax, [esp + 0xb8]
push edi
push eax
push ecx
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x24]
push ecx
lea eax, [esp + 0x160]
push edx
push eax
call fcn.004018b0
add esp, 0x18
test eax, eax
je 0x40420f
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x403fe2
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc4]
cmp edi, 5
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
jne 0x404062
fld dword [esp + 0xc8]
fchs
fstp dword [esp + 0x2c]
jmp 0x404062
mov edx, dword [esp + 0xb8]
cmp eax, 1
jne 0x404029
fld dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
cmp edi, 5
fchs
fstp dword [esp + 0x2c]
fld dword [esp + 0xc4]
fchs
fstp dword [esp + 0x38]
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
jne 0x404062
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x28], ecx
jmp 0x404062
fld dword [esp + 0xbc]
mov eax, dword [esp + 0xc0]
cmp edi, 5
fchs
fstp dword [esp + 0x2c]
fld dword [esp + 0xc4]
fchs
fstp dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], eax
jne 0x404062
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x30]
push 3
lea eax, [esp + 0x64]
push edx
push eax
call fcn.00406db0
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
fstp dword [esp + 0x68]
fld dword [esp + ecx*4 + 0x6c]
fsub dword [esp + ecx*4 + 0x3c]
fld dword [esp + eax*4 + 0x6c]
fsub dword [esp + eax*4 + 0x3c]
lea edx, [esp + ecx*4 + 0x3c]
lea esi, [esp + eax*4 + 0x3c]
add esp, 0xc
fpatan
fst dword [esp + 0x40]
fld dword [esp + ecx*4 + 0x24]
fsub dword [edx]
fld dword [esp + eax*4 + 0x24]
fsub dword [esi]
fpatan
fst dword [esp + 0x44]
fld st(1)
fcomp qword [0x416a30]
fnstsw ax
test ah, 1
je 0x4040e2
fxch st(1)
fadd dword [0x416a38]
fxch st(1)
fld st(1)
fcomp qword [0x416a30]
fnstsw ax
test ah, 1
jne 0x4040c1
fxch st(1)
fst dword [esp + 0x40]
fxch st(1)
fcom qword [0x416a30]
fnstsw ax
test ah, 1
je 0x404106
fadd dword [0x416a38]
fcom qword [0x416a30]
fnstsw ax
test ah, 1
jne 0x4040ef
fst dword [esp + 0x44]
test bl, bl
je 0x404146
cmp bl, 2
je 0x404146
cmp bl, 4
je 0x404146
cmp byte [esp + 0x13], 2
jne 0x404129
fstp st(0)
fadd dword [0x416a38]
fstp dword [esp + 0x44]
jmp 0x40417c
fxch st(1)
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x40417c
fld dword [esp + 0x44]
fadd dword [0x416a38]
fstp dword [esp + 0x44]
jmp 0x40417c
cmp byte [esp + 0x13], 2
jne 0x404161
fstp st(0)
fstp st(0)
fld dword [esp + 0x44]
fsub dword [0x416a38]
fstp dword [esp + 0x40]
jmp 0x40417c
fld st(1)
fcomp st(1)
fnstsw ax
test ah, 1
fstp st(0)
je 0x40417a
fadd dword [0x416a38]
fstp dword [esp + 0x40]
jmp 0x40417c
fstp st(0)
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x60]
push edx
lea eax, [esp + 0x48]
push 0x3c23d70a
push eax
lea edx, [esp + 0x40]
push ecx
push edx
call fcn.00403010
mov edi, eax
add esp, 0x18
cmp edi, 2
jl 0x4041db
push 0x10
call sub.MFC42.DLL_operatornew
add esp, 4
test eax, eax
je 0x4041c2
mov ecx, eax
call fcn.00402940
mov esi, eax
jmp 0x4041c4
xor esi, esi
mov eax, dword [esp + 0x50]
push edi
push eax
mov ecx, esi
call fcn.00402970
mov ecx, dword [esp + 0x1c]
push esi
call fcn.00402be0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, ebp
mov dword [ecx], edx
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], edx
mov esi, 1
mov eax, dword [esp + 0x58]
inc eax
cmp ax, word [esp + 0xa6]
mov dword [esp + 0x58], eax
jl 0x403bb4
jmp 0x404217
mov dword [esp + 0x14], 0
cmp esi, 1
jle 0x404336
push 0x10
call sub.MFC42.DLL_operatornew
add esp, 4
test eax, eax
je 0x404239
mov ecx, eax
call fcn.00402940
mov edi, eax
jmp 0x40423b
xor edi, edi
push esi
push ebp
mov ecx, edi
call fcn.00402970
mov ebx, dword [esp + 0x1c]
push edi
mov ecx, ebx
call fcn.00402be0
jmp 0x40433a
cmp ax, 2
jne 0x40433a
xor ebx, ebx
cmp word [esp + 0xa6], bx
jle 0x404300
mov esi, edi
lea eax, [esp + 0x20]
lea ecx, [esp + 0x70]
push eax
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x158]
push edx
push eax
call fcn.00401810
add esp, 0x10
test eax, eax
je 0x4042f8
mov eax, dword [esp + 0x20]
mov cl, al
and cl, 0xf0
cmp cl, 0x50
jne 0x4042e2
lea edx, [esp + 0xb8]
push 2
push edx
push eax
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x160]
push ecx
push edx
call fcn.004018b0
add esp, 0x18
test eax, eax
je 0x4042f8
mov eax, dword [ebp]
mov dword [esi - 8], eax
mov ecx, dword [ebp + 4]
mov dword [esi - 4], ecx
fld dword [edi]
fsub dword [esp + 0xb8]
fstp dword [esi]
movsx edx, word [esp + 0xa6]
inc ebx
add esi, 0xc
cmp ebx, edx
jl 0x404271
jmp 0x404300
mov dword [esp + 0x14], 0
push 0x10
call sub.MFC42.DLL_operatornew
add esp, 4
test eax, eax
je 0x404319
mov ecx, eax
call fcn.00402940
mov esi, eax
jmp 0x40431b
xor esi, esi
movsx eax, word [esp + 0xa6]
push eax
push ebp
mov ecx, esi
call fcn.00402970
mov ecx, dword [esp + 0x1c]
push esi
call fcn.00402be0
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x404367
test ebx, ebx
je 0x404350
mov ecx, dword [esp + 0x6c]
push ebx
call fcn.00402e80
mov eax, dword [esp + 0x54]
inc eax
cmp ax, word [esp + 0x110]
mov dword [esp + 0x54], eax
jl 0x403aa7
mov eax, dword [esp + 0x50]
test eax, eax
je 0x404378
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
test ebp, ebp
je 0x404385
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf370
ret 4
mov dword [esp + 0x14], ebx
jmp 0x404367
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xf370
ret 4