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

Disassembly:
push 0xffffffffffffffff
push 0x510c67
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
push ebx
push ebp
push esi
push edi
push ecx
mov eax, esp
mov dword [esp + 0x28], esp
push ecx
mov dword [esp + 0x2c], esp
mov edi, esp
push ecx
mov esi, ecx
mov dword [esp + 0x30], esp
mov dword [eax], 0x40400000
mov eax, dword [esi + 0x308]
mov ebx, esp
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push str.Wave__d
call fcn.00402110
mov ecx, dword [0x55cd0c]
push ebx
push ecx
call fcn.004a7680
add esp, 0x10
mov ecx, edi
call fcn.00456810
push ecx
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
xor ebx, ebx
mov dword [eax], ebx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x34], esp
mov dword [eax], 1
call fcn.00456ba0
push ecx
mov dword [esp + 0x28], esp
mov eax, esp
push ecx
mov dword [esp + 0x2c], esp
mov edi, esp
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x52b8d4
mov dword [eax], 0x40400000
call fcn.00402110
mov ecx, edi
call fcn.00456810
push ecx
mov eax, esp
mov dword [esp + 0x30], esp
push ecx
mov dword [eax], ebx
mov eax, esp
mov ecx, esi
mov dword [esp + 0x34], esp
mov dword [eax], 2
call fcn.00456ba0
push 0x350
call fcn.004fd765
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebx
mov dword [esp + 0x70], ebx
je 0x45c6c8
mov ecx, eax
call fcn.0046e930
mov esi, eax
mov dword [esp + 0x10], esi
jmp 0x45c6ce
mov dword [esp + 0x10], ebx
mov esi, ebx
mov edx, dword [0x55b9cc]
mov ecx, dword [edx + 0xcb0]
push ebx
or edi, 0xffffffff
push esi
mov dword [esp + 0x78], edi
call fcn.00486190
push ecx
mov ecx, dword [esp + 0x80]
mov eax, esp
mov dword [eax], ecx
mov ecx, esi
mov dword [esp + 0x28], esp
call fcn.0046ea30
mov ecx, esi
call fcn.004ab460
mov eax, dword [esp + 0x78]
cmp eax, ebx
mov dword [esp + 0x7c], ebx
jle 0x45cc06
mov dword [esp + 0x34], 0
mov dword [esp + 0x24], eax
push 0x348
call fcn.004fd765
add esp, 4
mov dword [esp + 0x78], eax
test eax, eax
mov dword [esp + 0x70], 1
je 0x45c74a
mov ecx, eax
call fcn.0044c800
mov ebx, eax
jmp 0x45c74c
xor ebx, ebx
mov edx, dword [0x55b9cc]
mov ecx, dword [edx + 0xcb0]
push 0
push ebx
mov dword [esp + 0x78], edi
call fcn.00486190
mov ecx, ebx
call fcn.0044c910
mov ecx, ebx
call fcn.004ab460
push 0xa0
call fcn.004fd765
add esp, 4
mov dword [esp + 0x78], eax
test eax, eax
mov dword [esp + 0x70], 2
je 0x45c79a
mov ecx, eax
call fcn.0047edc0
mov esi, eax
jmp 0x45c79c
xor esi, esi
mov eax, dword [0x55b9cc]
mov ecx, dword [eax + 0xcb0]
push 0
push esi
mov dword [esp + 0x78], edi
call fcn.00486190
push ecx
mov eax, esp
mov dword [esp + 0x7c], esp
push ecx
mov dword [eax], 0x3f000000
mov eax, esp
mov ecx, esi
mov dword [esp + 0x80], esp
mov dword [eax], 0
call fcn.0047ef70
mov ecx, esi
call fcn.004ab460
push ecx
mov eax, esp
mov dword [eax], esi
mov ecx, dword [ebx + 0x290]
mov dword [esp + 0x7c], esp
call fcn.004ab980
mov ecx, dword [0x55b9cc]
mov ecx, dword [ecx + 0xcb0]
add ecx, 0x268
push 0x3fc00000
call fcn.00483eb0
fsub dword [0x520bb0]
mov edx, dword [0x55cd0c]
mov eax, dword [edx + 0x868]
mov eax, dword [eax + 0x38]
mov ecx, dword [0x55b9cc]
mov ecx, dword [ecx + 0xcb0]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x78], eax
fimul dword [esp + 0x78]
add ecx, 0x268
push 0x3f800000
fstp dword [esp + 0x24]
call fcn.00483eb0
mov edx, dword [0x55cd0c]
fsub dword [0x521904]
mov eax, dword [edx + 0x868]
mov eax, dword [eax + 0x3c]
cdq
sub eax, edx
push ecx
sar eax, 1
mov dword [esp + 0x7c], eax
fimul dword [esp + 0x7c]
mov eax, esp
mov dword [eax], 0
mov dword [esp + 0x7c], esp
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], 0
mov dword [esp + 0x80], esp
fstp dword [esp + 0x38]
sub esp, 0xc
mov edx, ecx
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov ecx, dword [ebx + 0x290]
mov dword [esp + 0x8c], esp
call fcn.0047f310
mov eax, dword [esp + 0x80]
xor ebp, ebp
test eax, eax
mov dword [esp + 0x78], ebp
jle 0x45cbcc
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], 0xc3480000
fild dword [esp + 0x18]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x58], ebp
fstp dword [esp + 0x1c]
mov dword [esp + 0x64], ebp
fild dword [esp + 0x80]
fstp dword [esp + 0x20]
lea ecx, [ecx]
fild dword [esp + 0x78]
push 0x7a0
fst dword [esp + 0x7c]
fdiv dword [esp + 0x24]
fmul dword [0x520830]
fstp dword [esp + 0x18]
call fcn.004fd765
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x70], 3
je 0x45c94e
mov ecx, eax
call fcn.004192b0
mov edi, eax
jmp 0x45c950
xor edi, edi
mov eax, dword [0x55b9cc]
mov ecx, dword [eax + 0xcb0]
push 0
push edi
mov dword [esp + 0x78], 0xffffffff
call fcn.00486190
mov ecx, edi
call fcn.00418b10
mov ecx, edi
call fcn.004ab460
push ecx
mov eax, esp
mov ecx, edi
mov dword [esp + 0x2c], esp
mov byte [eax], 1
call fcn.00418cc0
push ecx
mov ecx, dword [esp + 0x80]
mov eax, esp
mov dword [eax], ecx
mov ecx, edi
mov dword [esp + 0x2c], esp
call fcn.00418e90
push ecx
mov eax, esp
mov ecx, ebx
mov dword [esp + 0x2c], esp
mov dword [eax], edi
call fcn.0044cca0
push 0x1c0
call fcn.004fd765
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
mov dword [esp + 0x70], 4
je 0x45c9d9
mov ecx, eax
call fcn.0047dae0
mov esi, eax
jmp 0x45c9db
xor esi, esi
mov edx, dword [0x55b9cc]
mov ecx, dword [edx + 0xcb0]
push 0
push esi
mov dword [esp + 0x78], 0xffffffff
call fcn.00486190
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
push ecx
mov byte [eax], 1
mov eax, esp
mov ecx, esi
mov dword [esp + 0x30], esp
mov dword [eax], 0x3eb33333
call fcn.0047d9b0
mov ecx, esi
call fcn.004ab460
cmp ebp, dword [esp + 0x18]
jge 0x45ca38
fld dword [esp + 0x78]
fdiv dword [esp + 0x1c]
fmul dword [0x52b8d0]
fsubr dword [0x52b8cc]
jmp 0x45ca58
fld dword [esp + 0x1c]
fld dword [esp + 0x78]
fsub st(1)
fld dword [esp + 0x20]
fsub st(2)
fdivp st(1)
fmul dword [0x52b8d0]
fsub dword [0x52b8cc]
fstp st(1)
fld dword [0x51fcc8]
mov edx, dword [esp + 0x3c]
fmul st(1)
sub esp, 0xc
mov eax, esp
mov dword [esp + 0x84], esp
fstp dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
mov dword [eax], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov edx, dword [0x55cd0c]
mov ecx, dword [edx + 0x868]
mov eax, dword [ecx + 0x3c]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x84], eax
mov eax, dword [ecx + 0x38]
fild dword [esp + 0x84]
cdq
sub eax, edx
fmul qword [0x527a98]
sar eax, 1
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x84], eax
sub esp, 0xc
fild dword [esp + 0x90]
mov eax, esp
mov dword [esp + 0x90], esp
fmul st(2)
fstp dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
fstp dword [esp + 0x60]
mov edx, dword [esp + 0x60]
mov dword [eax + 4], edx
fstp st(0)
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.0047dc40
fld dword [esp + 0x14]
fadd dword [0x51fb04]
sub esp, 0xc
mov eax, esp
fld st(0)
fsin
fstp dword [esp + 0x84]
fcos
fld dword [esp + 0x84]
fmul dword [0x51fcc8]
fxch st(1)
mov dword [esp + 0x84], esp
fmul dword [0x51fcc8]
sub esp, 0xc
mov dword [esp + 0x90], esp
fstp dword [esp + 0x68]
mov edx, dword [esp + 0x68]
mov dword [eax], edx
fstp dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
fld dword [esp + 0x2c]
mov edx, dword [esp + 0x70]
fsin
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov eax, esp
fmul dword [esp + 0x9c]
fld dword [esp + 0x2c]
fcos
fmul dword [esp + 0x9c]
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
mov dword [eax], ecx
fstp dword [esp + 0x78]
mov edx, dword [esp + 0x78]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.0047dc40
push ecx
mov dword [esi + 0x94], 0x3f800000
mov eax, esp
mov dword [eax], esi
mov ecx, dword [edi + 0x290]
mov dword [esp + 0x7c], esp
call fcn.004ab980
mov eax, dword [esp + 0x80]
inc ebp
cmp ebp, eax
mov dword [esp + 0x78], ebp
jl 0x45c910
or edi, 0xffffffff
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x7c], esp
mov dword [eax], ebx
call fcn.0046ed30
mov eax, dword [esp + 0x7c]
add eax, 3
cmp eax, 0x18
mov dword [esp + 0x7c], eax
jl 0x45cbf6
mov dword [esp + 0x7c], 1
dec dword [esp + 0x24]
jne 0x45c722
mov eax, dword [esp + 0x10]
jmp 0x45cc08
mov eax, esi
mov ecx, dword [esp + 0x68]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x64
ret 0x10