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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4078f2
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebp, ebp
mov edi, dword [esi + 0x60]
mov byte [esi + 0x54], 0
cmp edi, ebp
je 0x404d3b
mov ecx, edi
call fcn.00405060
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esi + 0x60], ebp
mov eax, dword [esi + 0x6c]
cmp eax, ebp
je 0x404d6b
xor ebx, ebx
mov eax, dword [esi + 0x68]
mov edi, dword [eax + ebx]
cmp edi, ebp
je 0x404d61
mov ecx, edi
call fcn.00405060
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esi + 0x6c]
add ebx, 4
cmp eax, ebp
jne 0x404d47
push 0xffffffffffffffff
push ebp
lea ecx, [esi + 0x64]
call sub.MFC42.DLL_CPtrArray::SetSize
push 0x78
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
cmp edi, ebp
mov dword [esp + 0x20], ebp
je 0x404dd9
lea ecx, [edi + 4]
call fcn.004023c0
lea ecx, [edi + 0x14]
mov byte [esp + 0x20], 1
call fcn.004023c0
lea ecx, [edi + 0x24]
mov byte [esp + 0x20], 2
call fcn.004023c0
lea ecx, [edi + 0x34]
mov byte [esp + 0x20], 3
call fcn.004023c0
lea ecx, [edi + 0x58]
mov byte [esp + 0x20], 4
call fcn.004023c0
lea ecx, [edi + 0x68]
mov byte [esp + 0x20], 5
call fcn.004023c0
jmp 0x404ddb
xor edi, edi
mov dword [esi + 0x60], edi
mov edi, dword [sym.imp.MSVCRT.dll_rand]
mov dword [esp + 0x20], 0xffffffff
call edi
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
sub ecx, ebx
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov edx, dword [esi + 0x60]
mov ebx, dword [esp + 0x30]
fimul dword [esp + 0x10]
fmul dword [0x40825c]
fstp dword [edx + 0x20]
sub ebx, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
call edi
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x60]
fild dword [esp + 0x10]
fimul dword [esp + 0x14]
fmul dword [0x40825c]
fstp dword [eax + 0x1c]
fld qword [esi + 0x58]
fstp dword [esp + 0x10]
call edi
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [esp + 0x10]
fmul dword [0x4082b4]
fld dword [esp + 0x10]
fmul dword [0x408248]
fsubp st(1)
fstp dword [esp + 0x10]
call edi
mov ebp, eax
mov eax, ebx
cdq
and edx, 3
add eax, edx
sar eax, 2
imul ebp, eax
mov eax, 0x80010003
imul ebp
mov ecx, edx
mov eax, ebx
add ecx, ebp
sar ecx, 0xe
mov edx, ecx
shr edx, 0x1f
add ecx, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
add ecx, eax
mov eax, dword [esi + 0x60]
mov dword [eax + 0x4c], ecx
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x3c], ecx
mov edx, dword [eax + 0x20]
mov dword [eax + 0x40], edx
mov ecx, dword [eax + 0x18]
mov dword [eax + 0x38], ecx
call edi
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, 0x80010003
lea ecx, [ecx + ecx*4]
shl ecx, 3
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0xfa
jge 0x404f26
fld dword [esp + 0x10]
fcos
mov ecx, dword [esi + 0x60]
mov edi, dword [esp + 0x30]
mov eax, edi
fstp dword [ecx + 0x2c]
fld dword [esp + 0x10]
fsin
mov edx, dword [esi + 0x60]
mov ecx, dword [esp + 0x28]
sub eax, ecx
mov dword [esp + 0x14], eax
fstp dword [edx + 0x30]
fild dword [esp + 0x14]
mov ecx, dword [esi + 0x60]
fstp dword [ecx + 0x1c]
mov eax, dword [esi + 0x60]
fld dword [eax + 0x2c]
fchs
fstp dword [eax + 0x2c]
mov edx, dword [esi + 0x60]
mov dword [edx + 0x54], 4
jmp 0x404fa1
fld dword [esp + 0x10]
cmp edx, 0x1f4
jge 0x404f5c
fcos
mov eax, dword [esi + 0x60]
fstp dword [eax + 0x2c]
fld dword [esp + 0x10]
fsin
mov ecx, dword [esi + 0x60]
fstp dword [ecx + 0x30]
mov edx, dword [esi + 0x60]
mov dword [edx + 0x1c], 0
mov eax, dword [esi + 0x60]
mov dword [eax + 0x54], 4
jmp 0x404f9d
fsin
mov ecx, dword [esi + 0x60]
mov eax, dword [esp + 0x34]
fstp dword [ecx + 0x2c]
fld dword [esp + 0x10]
fcos
mov edx, dword [esi + 0x60]
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov dword [esp + 0x14], eax
fstp dword [edx + 0x30]
fild dword [esp + 0x14]
mov eax, dword [esi + 0x60]
fstp dword [eax + 0x20]
mov eax, dword [esi + 0x60]
fld dword [eax + 0x30]
fchs
fstp dword [eax + 0x30]
mov ecx, dword [esi + 0x60]
mov dword [ecx + 0x54], 3
mov edi, dword [esp + 0x30]
mov eax, dword [esi + 0x60]
push 0x41200000
push 0x42c80000
mov edx, dword [eax + 0x1c]
mov dword [eax + 0xc], edx
mov ecx, dword [eax + 0x20]
mov dword [eax + 0x10], ecx
mov edx, dword [eax + 0x18]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x60]
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x70], ecx
mov edx, dword [eax + 0x20]
mov dword [eax + 0x74], edx
mov ecx, dword [eax + 0x18]
mov dword [eax + 0x6c], ecx
mov edx, dword [esi + 0x60]
mov ecx, esi
mov dword [edx + 0x48], 0xffffffff
call fcn.00406230
fcom dword [0x4082b0]
fnstsw ax
test ah, 1
je 0x404ff5
fchs
mov eax, dword [esp + 0x28]
sub edi, eax
mov eax, 0x2aaaaaab
imul edi
mov edi, edx
sar edi, 2
mov eax, edi
shr eax, 0x1f
add edi, eax
call sub.MSVCRT.dll__ftol
mov ecx, dword [esi + 0x60]
add edi, eax
mov dword [ecx + 0x50], edi
mov eax, dword [esi + 0x60]
pop edi
mov edx, dword [eax + 0x50]
mov dword [eax + 0x44], edx
mov eax, dword [esi + 0x60]
mov byte [esi + 0x78], 1
mov ecx, dword [eax + 0x4c]
mov dword [eax], ecx
mov esi, dword [esi + 0x60]
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x60], edx
mov eax, dword [esi + 0x20]
mov dword [esi + 0x64], eax
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x5c], ecx
mov ecx, dword [esp + 0x14]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret 0x14