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

Disassembly:
sub esp, 0x94
mov eax, dword [esp + 0x9c]
push ebx
push ebp
shl eax, 6
push esi
push edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0x2c], eax
add eax, edi
imul eax, eax, 0x74
mov ebp, ecx
mov ecx, dword [eax + ebp + 0x1c0]
test ecx, ecx
lea eax, [eax + ebp + 0x1c0]
mov dword [esp + 0x44], ebp
je 0x4bf925
fld qword [0x5b7490]
fstp dword [ecx + 4]
mov esi, dword [eax]
mov eax, dword [esp + 0xb0]
imul eax, eax, 0x70
lea ebx, [eax + esi + 0x14a54]
mov al, byte [ebx + 1]
test al, al
mov dword [esp + 0x78], esi
mov dword [esp + 0x48], ebx
jne 0x4bf95a
mov eax, dword [0x5415e4]
mov ecx, dword [0x5415e8]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
jmp 0x4bf97b
push 0x5415e4
mov ecx, 0x5415ec
call fcn.004b2710
mov ecx, dword [ebx + 4]
mov dword [0x5415e4], ecx
mov edx, dword [ebx + 8]
mov dword [0x5415e8], edx
mov ecx, ebp
call fcn.004b4ed0
mov ebp, eax
mov dword [ebx + 0x6c], ebp
lea eax, [ebx + 0x68]
mov dword [ebp + 0x4e20c], eax
mov byte [ebp + 0x4e204], 1
mov eax, dword [0x5b7490]
mov ecx, dword [0x5b7494]
mov dword [ebp + 0x4e210], eax
mov eax, dword [esp + 0xb0]
cdq
mov dword [ebp + 0x4e214], ecx
mov ecx, dword [esi + 0x14a50]
idiv ecx
shl edi, 6
mov ecx, 8
mov dword [esp + 0x24], 0x20
shl edx, 5
shl eax, 5
mov ebx, edx
mov edx, eax
mov eax, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x7c], edx
imul edx, edx, 0x41
add edi, ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x5c], eax
or eax, 0xffffffff
lea edi, [esp + 0x84]
add edx, ebx
rep stosd dword es:[edi], eax
lea ecx, [edx + edx*4]
mov dword [esp + 0x6c], ebx
lea esi, [esi + ecx*4 + 0x42]
jmp 0x4bfa10
mov edi, esi
mov ebx, 0x20
jmp 0x4bfa20
movzx edx, word [edi]
xor eax, eax
mov ecx, dword [esp + eax*4 + 0x84]
cmp ecx, edx
je 0x4bfa3b
cmp ecx, 0xffffffff
je 0x4bfa3b
inc eax
cmp eax, 8
jl 0x4bfa25
cmp eax, 8
je 0x4bfa55
mov ecx, dword [esp + eax*4 + 0x84]
cmp ecx, 0xffffffff
lea eax, [esp + eax*4 + 0x84]
jne 0x4bfa55
mov dword [eax], edx
add edi, 0x14
dec ebx
jne 0x4bfa20
mov eax, dword [esp + 0x24]
add esi, 0x514
dec eax
mov dword [esp + 0x24], eax
jne 0x4bfa10
mov ebx, dword [0x5b7474]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
lea esp, [esp]
mov eax, dword [esp + eax*4 + 0x84]
cmp eax, 0xffffffff
mov dword [esp + 0x70], eax
je 0x4bff8b
test eax, eax
jne 0x4bfab3
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [edx + 0x9c36c]
push eax
mov ecx, ebx
call fcn.004abb90
mov ecx, eax
mov dword [esp + 0x3c], ecx
jmp 0x4bfac6
lea ecx, [esp + 0x4f]
push ecx
push eax
mov ecx, ebx
call fcn.004abb90
mov dword [esp + 0x3c], eax
mov ecx, eax
cmp ecx, 0xffffffff
je 0x4bff73
mov esi, dword [0x5415e8]
mov ebx, dword [0x5b7474]
mov dword [esp + 0x34], 0
test ecx, ecx
jl 0x4c00d4
cmp ecx, dword [ebx + 0x54]
jge 0x4c00d4
mov edx, dword [esp + 0x34]
mov eax, ecx
imul eax, eax, 0xf
lea edi, [eax + edx]
lea edi, [edi + edi*4]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x58]
shl edi, 2
cmp dword [eax + edi + 0x54], 0xffffffff
je 0x4bff79
mov eax, esi
imul eax, eax, 0x2455
add eax, 0xc091
xor edx, edx
mov esi, 0x38f40
div esi
mov esi, edx
mov dword [0x5415e8], esi
cmp ecx, dword [ebx + 0x54]
jge 0x4c00ae
xor edx, edx
mov eax, esi
shr eax, 8
mov ecx, 0x42
div ecx
add edx, 0x21
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
mov edx, dword [ebx + 0x58]
fmul dword [edx + edi + 0x58]
call fcn.00514cfc
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
cmp edx, dword [ebx + 0x54]
jge 0x4c0088
mov eax, dword [ebx + 0x58]
mov ecx, dword [eax + edi + 0x54]
cmp ecx, 0xffffffff
mov dword [esp + 0x64], ecx
je 0x4bfbb1
test ecx, ecx
jl 0x4bffec
mov eax, dword [0x5b7470]
cmp ecx, dword [eax + 0x270c]
jge 0x4bffec
mov eax, dword [eax + 0x2710]
imul ecx, ecx, 0x4c
fld dword [eax + ecx + 0x48]
fstp dword [esp + 0x50]
jmp 0x4bfbb9
mov dword [esp + 0x50], 0x3f800000
cmp dword [esp + 0x28], 0x1f40
je 0x4bff66
cmp edx, dword [ebx + 0x54]
mov dword [esp + 0x40], 0x3f800000
jge 0x4c0062
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
lea ecx, [ecx + eax + 5]
mov eax, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*4]
cmp edx, dword [ebx + 0x54]
mov dword [esp + 0x10], ecx
jge 0x4c003c
sub ecx, 0
mov edx, dword [ebx + 0x58]
fld dword [edx + edi + 0x5c]
fstp dword [esp + 0x60]
je 0x4bfc24
dec ecx
je 0x4bfc1a
dec ecx
jne 0x4bfc2c
mov dword [esp + 0x40], 0x3f400000
jmp 0x4bfc2c
mov dword [esp + 0x40], 0x3e99999a
jmp 0x4bfc2c
mov dword [esp + 0x40], 0x3f000000
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x30], 0
jle 0x4bff4a
fild dword [esp + 0x74]
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*4]
shl eax, 3
fstp dword [esp + 0x54]
mov dword [esp + 0x24], eax
fild dword [esp + 0x6c]
fstp dword [esp + 0x80]
fild dword [esp + 0x5c]
fstp dword [esp + 0x58]
fild dword [esp + 0x7c]
fstp dword [esp + 0x68]
mov eax, esi
imul eax, eax, 0x2455
add eax, 0xc091
xor edx, edx
mov ecx, 0x38f40
div ecx
mov esi, 0x2710
mov ecx, edx
xor edx, edx
mov eax, ecx
div esi
test edx, edx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
jge 0x4bfca6
fadd dword [0x522d68]
mov eax, ecx
fmul dword [0x52bd1c]
imul eax, eax, 0x2455
fadd dword [esp + 0x54]
add eax, 0xc091
xor edx, edx
mov ecx, 0x38f40
div ecx
mov esi, edx
test esi, esi
mov dword [esp + 0x14], esi
fild dword [esp + 0x14]
mov dword [0x5415e8], esi
jge 0x4bfce0
fadd dword [0x522d68]
xor edx, edx
fmul dword [0x523040]
mov eax, esi
mov ecx, 0x2710
div ecx
fstp dword [0x5415e4]
test edx, edx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
jge 0x4bfd09
fadd dword [0x522d68]
fmul dword [0x52bd1c]
fadd dword [esp + 0x58]
fstp dword [esp + 0x14]
fld dword [esp + 0x54]
fsubr st(1)
fadd dword [esp + 0x80]
fcom dword [0x521418]
fnstsw ax
test ah, 0x41
jne 0x4bfd39
fadd dword [0x5213d0]
jmp 0x4bfd3f
fsub dword [0x5213d0]
call fcn.00514cfc
fld dword [esp + 0x14]
fsub dword [esp + 0x58]
mov edi, eax
fadd dword [esp + 0x68]
fcom dword [0x521418]
fnstsw ax
test ah, 0x41
jne 0x4bfd67
fadd dword [0x5213d0]
jmp 0x4bfd6d
fsub dword [0x5213d0]
call fcn.00514cfc
imul eax, eax, 0x41
add eax, edi
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x78]
movzx ecx, word [eax + edx*4 + 0x42]
cmp ecx, dword [esp + 0x70]
jne 0x4bff33
fld dword [0x52b964]
mov ecx, dword [esp + 0x44]
fmul st(1)
push 0
push 0
sub esp, 0xc
fstp dword [esp + 0x2c]
mov edi, dword [esp + 0x2c]
mov edx, esp
fstp st(0)
mov dword [edx], edi
fld dword [0x52b964]
mov dword [esp + 0x34], 0
fmul dword [esp + 0x28]
mov eax, dword [esp + 0x34]
fstp dword [esp + 0x30]
mov ebx, dword [esp + 0x30]
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
call fcn.0041b460
fstp dword [esp + 0x20]
mov eax, dword [0x5415e8]
imul eax, eax, 0x2455
add eax, 0xc091
xor edx, edx
mov ecx, 0x38f40
div ecx
mov esi, 0x2710
mov ecx, edx
xor edx, edx
mov eax, ecx
div esi
test edx, edx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
jge 0x4bfe13
fadd dword [0x522d68]
mov eax, ecx
fmul dword [0x52b960]
imul eax, eax, 0x2455
fmul dword [0x52bd18]
add eax, 0xc091
xor edx, edx
mov ecx, 0x38f40
div ecx
mov eax, edx
test eax, eax
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
mov dword [0x5415e8], eax
jge 0x4bfe4e
fadd dword [0x522d68]
xor edx, edx
fmul dword [0x523040]
mov ecx, 0x2710
div ecx
fstp dword [0x5415e4]
test edx, edx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
jge 0x4bfe75
fadd dword [0x522d68]
fmul dword [0x52bd18]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov eax, ecx
fsub dword [0x521590]
mov esi, edx
inc ecx
add edx, 0x28
test eax, eax
fld st(0)
fabs
mov dword [esp + 0x28], ecx
fmulp st(1)
mov dword [esp + 0x24], edx
fmul dword [esp + 0x40]
fadd dword [0x521590]
fmul dword [esp + 0x60]
fst dword [esp + 0x14]
jl 0x4c0012
cmp eax, 0x1f40
jge 0x4c0012
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x10]
mov dword [esi + ebp + 4], edx
mov dword [esi + ebp], eax
mov eax, dword [esp + 0x20]
lea ecx, [esi + ebp + 0x14]
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], eax
fstp dword [esi + ebp + 8]
mov ecx, dword [esp + 0x44]
fld st(0)
sub esp, 0xc
fsin
mov edx, esp
mov dword [edx], edi
mov dword [edx + 4], ebx
mov dword [edx + 8], eax
fstp dword [esi + ebp + 0xc]
fcos
fstp dword [esi + ebp + 0x10]
fld dword [esp + 0x20]
fmul dword [esp + 0x5c]
fstp dword [esi + ebp + 0x20]
call fcn.004b3620
mov dword [esi + ebp + 0x24], eax
cmp dword [esp + 0x24], 0x4e200
je 0x4bff73
mov esi, dword [0x5415e8]
mov ebx, dword [0x5b7474]
jmp 0x4bff35
fstp st(0)
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
inc eax
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x4bfc71
cmp dword [esp + 0x28], 0x1f40
je 0x4bff79
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x34], eax
jmp 0x4bfae3
push 0x52bce8
call fcn.00449670
add esp, 4
mov ebx, dword [0x5b7474]
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, 8
mov dword [esp + 0x2c], eax
jl 0x4bfa80
mov esi, dword [esp + 0x28]
lea edx, [ebp + 0x4e218]
push edx
push esi
lea eax, [ebp + 0x20]
push 0xa
push eax
call fcn.004b18c0
mov dword [ebp + 0x4e208], esi
mov esi, dword [esp + 0x58]
mov byte [esi + 0x68], 1
mov ecx, dword [0x5b7468]
add esp, 0x10
push 0x52bb2c
add ecx, 0x30
call fcn.00404620
mov dword [ebp + 0x57fe8], 0
mov al, byte [esi + 1]
test al, al
jne 0x4c00fa
mov byte [esi + 1], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret 0xc
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0x52145c
call dword [0x521298]
push 0x52fdac
lea ecx, [esp + 0x1c]
push ecx
call fcn.00514dd6
lea edx, [esp + 0x10]
fstp st(0)
push edx
fstp st(0)
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0x52145c
call dword [0x521298]
push 0x52fdac
lea eax, [esp + 0x1c]
push eax
call fcn.00514dd6
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0x52145c
call dword [0x521298]
push 0x52fdac
lea edx, [esp + 0x1c]
push edx
call fcn.00514dd6
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0x52145c
call dword [0x521298]
push 0x52fdac
lea ecx, [esp + 0x1c]
push ecx
call fcn.00514dd6
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0x52145c
call dword [0x521298]
push 0x52fdac
lea eax, [esp + 0x1c]
push eax
call fcn.00514dd6
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0x52145c
call dword [0x521298]
push 0x52fdac
lea edx, [esp + 0x1c]
push edx
call fcn.00514dd6
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0x52145c
call dword [0x521298]
push 0x52fdac
lea ecx, [esp + 0x1c]
push ecx
call fcn.00514dd6
mov ecx, dword [0x54160c]
test ecx, ecx
jge 0x4c0137
push str.XStaticFIFO::Pop_index_is_out_of_range
call fcn.00449670
add esp, 4
lea ecx, [esp + 0x48]
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x4c], 0x52145c
call dword [0x521298]
push 0x52fdac
lea edx, [esp + 0x1c]
push edx
call fcn.00514dd6
lea eax, [ecx*8 + 0x5415ec]
dec ecx
pop edi
mov dword [0x54160c], ecx
mov ecx, dword [eax]
pop esi
mov dword [0x5415e4], ecx
mov edx, dword [eax + 4]
pop ebp
mov dword [0x5415e8], edx
pop ebx
add esp, 0x94
ret 0xc