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

Disassembly:
sub esp, 0xc4
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x3aa02279
mov edx, dword [esi + 4]
lea ecx, [esi + 0x654]
inc edx
mov dword [esi + 4], edx
call fcn.0043b390
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, 0x140
xor ebp, ebp
div ecx
test edx, edx
jne 0x4147a7
xor edi, edi
mov eax, edi
push edi
and eax, 0xffff
mov ecx, esi
lea eax, [eax + eax*4]
lea ebx, [eax + eax*4]
call fcn.00415330
fsub dword [0x48546c]
fcomp dword [esi + ebx*4 + 0x9a8]
fnstsw ax
and eax, 0x4100
je 0x41474f
inc edi
cmp di, 6
jb 0x41471b
jmp 0x4147a7
mov eax, edi
and eax, 0xffff
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
lea ebx, [esi + edx*4 + 0x974]
mov ecx, ebx
call fcn.0043b290
push edi
mov ecx, esi
call fcn.00415360
push ecx
mov ecx, esi
fstp dword [esp]
push edi
call fcn.00415330
fadd dword [0x485468]
push ecx
mov ecx, esi
fstp dword [esp]
push edi
call fcn.00415300
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.0043b5a0
push 0x3f400000
mov ecx, ebx
call fcn.0043b640
xor ebx, ebx
lea edi, [esi + 0x974]
push ebx
mov ecx, esi
call fcn.00415330
fadd dword [0x4851d0]
fcomp dword [edi + 0x34]
fnstsw ax
test ah, 5
jp 0x4148d8
push ebp
push 0xbf000000
push ebp
mov ecx, edi
call fcn.0043b5a0
mov eax, dword [esi + 4]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], eax
push ecx
fild qword [esp + 0x14]
mov ecx, edi
fmul dword [0x485248]
fsin
fmul qword [0x485410]
fstp dword [esp]
call fcn.0043b440
push 0x3d0f5c29
mov ecx, edi
call fcn.0043b390
push ebx
mov ecx, esi
call fcn.00415330
fadd dword [0x4851d0]
fcomp dword [edi + 0x34]
fnstsw ax
and eax, 0x100
jne 0x414927
mov ecx, edi
call fcn.0043b290
push ebx
mov ecx, esi
call fcn.00415360
push ecx
mov ecx, esi
fstp dword [esp]
push ebx
call fcn.00415330
push ecx
mov ecx, esi
fstp dword [esp]
push ebx
call fcn.00415300
push ecx
mov ecx, edi
fstp dword [esp]
call fcn.0043b5a0
push ebx
mov ecx, esi
call fcn.00415360
push ecx
mov ecx, esi
fstp dword [esp]
push ebx
call fcn.00415330
fadd dword [0x4851dc]
push ecx
mov ecx, esi
fstp dword [esp]
push ebx
call fcn.00415300
push ecx
mov ecx, dword [esi]
add ecx, 0x28cdf4
fstp dword [esp]
call fcn.00409770
mov ecx, dword [esi]
push 0x48b7fc
add ecx, 0x1e43c0
call fcn.0043bb80
push 0x3f400000
push 0x3f800000
push 0x3f400000
mov ecx, edi
mov word [edi + 0x60], ax
call fcn.0043b6f0
mov ecx, dword [esi]
push 0x48b80c
add ecx, 0x1e43b0
call fcn.00449fc0
mov word [edi + 0x46], ax
jmp 0x414927
push ebx
mov ecx, esi
call fcn.00415330
fsub dword [0x4851d0]
fcomp dword [edi + 0x34]
fnstsw ax
test ah, 5
jp 0x414927
fld dword [edi + 0x34]
fsub dword [0x485464]
push ebx
mov ecx, esi
fstp dword [edi + 0x34]
call fcn.00415330
fsub dword [0x4851d8]
fcomp dword [edi + 0x34]
fnstsw ax
and eax, 0x4100
jne 0x414927
push ebx
mov ecx, esi
call fcn.00415330
fsub dword [0x485460]
fstp dword [edi + 0x34]
inc ebx
add edi, 0x64
cmp bx, 6
jb 0x4147af
mov dword [esp + 0x1c], ebp
lea edi, [esi + 0xbcc]
mov ebx, 6
mov ebp, 0x42200000
call fcn.004798e5
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x48545c]
fsubr dword [0x485458]
fadd dword [edi + 0x30]
fstp dword [edi + 0x30]
call fcn.004798e5
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x485454]
fadd dword [0x485450]
fsubr dword [edi + 0x34]
fstp dword [edi + 0x34]
call fcn.004798e5
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x48545c]
fsubr dword [0x485458]
fadd dword [edi + 0x38]
fstp dword [edi + 0x38]
fld dword [edi + 0x34]
fcomp dword [0x48538c]
fnstsw ax
test ah, 5
jp 0x414a2f
mov ecx, edi
call fcn.0043b290
call fcn.004798e5
mov dword [esp + 0x10], eax
sub esp, 8
fild dword [esp + 0x18]
mov ecx, edi
fmul dword [0x4853f8]
fstp dword [esp + 4]
fild dword [esp + 0x24]
fmul dword [0x48544c]
fsub dword [0x48544c]
fstp dword [esp]
push 0xc32a0000
call fcn.0043b5a0
call fcn.004798e5
mov dword [esp + 0x10], eax
push ecx
fild dword [esp + 0x14]
mov ecx, edi
fmul dword [0x485448]
fsubr dword [0x485444]
fmul dword [0x4851fc]
fstp dword [esp]
call fcn.0043b390
push 0x3f400000
mov ecx, edi
call fcn.0043b640
mov dword [edi + 0x34], ebp
mov edx, dword [esp + 0x1c]
add edi, 0x64
inc edx
dec ebx
mov dword [esp + 0x1c], edx
jne 0x414949
xor ebp, ebp
xor ebx, ebx
lea edi, [esi + 0xa]
cmp word [edi - 2], bp
je 0x414a82
dec word [edi]
cmp word [edi], bp
jne 0x414a82
call fcn.004798e5
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x485440]
fadd dword [0x4853d8]
call fcn.00479904
add eax, eax
push ebx
mov ecx, esi
mov word [edi], ax
call fcn.00414500
inc ebx
add edi, 6
cmp bx, 8
jb 0x414a49
lea edi, [esi + 0x50]
mov dword [esp + 0x1c], 0x18
mov ebx, 4
mov ax, word [edi - 0x18]
cmp ax, bp
je 0x414d8c
fld dword [edi - 4]
fadd dword [edi - 0x10]
dec word [edi - 0x14]
cmp word [edi - 0x14], bp
fstp dword [edi - 0x10]
fld dword [edi]
fadd dword [edi - 0xc]
fstp dword [edi - 0xc]
fld dword [edi + 4]
fadd dword [edi - 8]
fstp dword [edi - 8]
jne 0x414c6b
mov cx, word [edi - 0x16]
dec eax
push ecx
push eax
mov ecx, esi
call fcn.004146d0
mov edx, dword [edi - 8]
mov eax, dword [edi - 0xc]
mov ecx, dword [edi - 0x10]
push 1
push edx
push eax
mov word [edi - 0x18], bp
push ecx
mov ecx, dword [esi]
add ecx, 0x28cdf4
call fcn.0040b100
mov edx, dword [edi - 8]
mov eax, dword [edi - 0xc]
mov ecx, dword [edi - 0x10]
push 1
push edx
push eax
push ecx
mov ecx, dword [esi]
add ecx, 0x28cdf4
call fcn.004092c0
mov word [esp + 0xcc], 8
mov word [esp + 0xce], 0xd
mov dword [esp + 0xc0], 0x40e00000
mov dword [esp + 0xbc], 0x40e00000
mov dword [esp + 0xc4], 0x3f8147ae
mov dword [esp + 0xc8], 0x3f8147ae
mov word [esp + 0xd0], bx
mov word [esp + 0xd2], 0x18
call fcn.004798e5
mov dword [esp + 0x10], eax
mov edx, dword [edi - 0xc]
fild dword [esp + 0x10]
mov dword [esp + 0x8c], edx
fmul dword [0x4851e0]
fld dword [edi - 0x10]
fsub dword [0x4851d4]
faddp st(1)
fstp dword [esp + 0x88]
call fcn.004798e5
mov dword [esp + 0x10], eax
mov dword [esp + 0xac], 0
fild dword [esp + 0x10]
mov dword [esp + 0xb0], 0x3e4ccccd
mov dword [esp + 0xb4], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
fmul dword [0x4851e0]
fld dword [edi - 8]
fsub dword [0x4851d4]
mov dword [esp + 0x9c], 0
faddp st(1)
fstp dword [esp + 0x90]
call fcn.004798e5
mov dword [esp + 0x10], eax
mov dword [esp + 0xa4], 0
fild dword [esp + 0x10]
fmul dword [0x48523c]
fsubr dword [0x4851e8]
fstp dword [esp + 0xa0]
call fcn.004798e5
mov dword [esp + 0x10], eax
mov ecx, dword [esi]
fild dword [esp + 0x10]
lea eax, [esp + 0x88]
add ecx, 0x1f70ec
push eax
fmul dword [0x48523c]
fsubr dword [0x4851e8]
fstp dword [esp + 0xac]
call fcn.00448dc0
cmp word [edi - 0x14], bp
je 0x414d8c
call fcn.004798e5
mov dword [esp + 0x10], eax
mov ecx, dword [edi - 0xc]
fild dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
fmul dword [0x4851e0]
fld dword [edi - 0x10]
fsub dword [0x4851d4]
faddp st(1)
fstp dword [esp + 0x38]
call fcn.004798e5
mov dword [esp + 0x10], eax
mov dword [esp + 0x70], 0x41200000
fild dword [esp + 0x10]
mov dword [esp + 0x6c], 0x41200000
mov word [esp + 0x7c], 0x24
mov word [esp + 0x7e], 0x27
fmul dword [0x4851e0]
fld dword [edi - 8]
fsub dword [0x4851d4]
faddp st(1)
fstp dword [esp + 0x40]
call fcn.004798e5
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x48543c]
call fcn.00479904
mov edx, 0x12
sub edx, eax
mov word [esp + 0x82], dx
mov eax, dword [esp + 0x82]
and eax, 0xffff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul dword [0x485248]
call fcn.00479904
lea ecx, [esp + 0x38]
mov word [esp + 0x80], ax
push ecx
mov ecx, dword [esi]
add ecx, 0x1f70ec
mov dword [esp + 0x78], 0x3f7851ec
mov dword [esp + 0x7c], 0x3f7851ec
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0x3d4ccccd
mov dword [esp + 0x68], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
call fcn.00448dc0
mov eax, dword [esp + 0x1c]
add edi, 0x24
dec eax
mov dword [esp + 0x1c], eax
jne 0x414a9c
cmp dword [esi + 4], 0xf00
jbe 0x414db1
mov ecx, dword [esi]
call fcn.004353f0
mov dword [esi + 4], ebp
mov edx, dword [esi + 4]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], edx
mov ecx, dword [esi]
fild qword [esp + 0x10]
push 0x44228000
push 0x42480000
push 0x3f99999a
push 0x3f1aa9bd
fmul dword [0x485438]
add ecx, 0x1e38f8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
fld st(0)
fsin
mov dword [esp + 0x40], 0x42340000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0x3f800000
mov dword [esp + 0x28], 0
fmul qword [0x485430]
fstp dword [esp + 0x3c]
fcos
fmul qword [0x485430]
fstp dword [esp + 0x44]
call fcn.004412e0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
sub esp, 0xc
mov edi, dword [esp + 0x38]
mov eax, esp
sub esp, 0xc
mov ebx, dword [esp + 0x4c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov edx, esp
sub esp, 0xc
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 4], ecx
mov ecx, esp
mov dword [edx + 8], eax
mov edx, dword [esp + 0x54]
mov dword [ecx], edi
mov dword [ecx + 4], edx
mov dword [ecx + 8], ebx
mov ecx, dword [esi]
add ecx, 0x1e38f8
call fcn.00441230
mov ecx, dword [esi]
push ebx
push 0x42340000
push edi
add ecx, 0x1f70ec
call fcn.00449470
mov ecx, esi
call fcn.00414ed0
mov ecx, esi
call fcn.00414ed0
mov ecx, esi
call fcn.00414ed0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret