Function at 0x4747a0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x4c
mov eax, dword [esp + 0x58]
push ebx
mov ebx, dword [eax + 0x48]
push ebp
mov ebp, ecx
mov ecx, dword [eax + 0x50]
add ecx, 1
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 4]
sub ecx, dword [esp + 0x68]
mov edx, 0x120
mov dword [esp + 0x68], ecx
mov ecx, dword [eax + 8]
sub edx, ecx
sar edx, 1
push esi
mov esi, dword [eax + 0x44]
mov dword [esp + 0x28], edx
xor edx, edx
cmp ecx, esi
push edi
mov edi, dword [esp + 0x60]
jg 0x4747f0
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edx
jmp 0x474814
cmp ecx, ebx
mov dword [esp + 0x40], esi
jg 0x474804
sub ecx, esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
jmp 0x474814
mov edx, ebx
sub edx, esi
sub ecx, ebx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
xor edx, edx
mov ecx, 2
cmp dword [eax + 0x10], ecx
jne 0x474d87
cmp dword [eax + 0x14], edx
fldz
fst dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edx
je 0x474867
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + ecx*2]
mov esi, dword [ebp + ecx*4 + 0x12610]
lea ecx, [ebp + ecx*4]
mov ecx, dword [ecx + 0x1267c]
mov dword [esp + 0x58], 0xffffffff
jmp 0x474892
or ecx, 0xffffffff
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + ecx*2]
mov esi, dword [ebp + ecx*4 + 0x12614]
lea ecx, [ebp + ecx*4]
mov ecx, dword [ecx + 0x12680]
fld dword [esp + 0x10]
add eax, 0x18
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + edx*4 + 0x40]
test eax, eax
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
lea ecx, [edx*8 + 0x4dc338]
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], ecx
je 0x474b18
cmp dword [esp + 0x14], 0
jne 0x474959
mov edx, dword [esi]
fstp st(0)
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x60]
add esi, 4
add esi, 4
lea edi, [ecx + eax*4]
mov eax, dword [esi]
mov ecx, dword [esp + 0x28]
add esi, 4
mov dword [esp + 0x14], edx
mov edx, dword [esi]
add esi, 4
cmp eax, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
jne 0x47492f
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
shl edx, cl
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x64]
add eax, 4
fld dword [ecx + edx*4]
mov dword [esp + 0x64], eax
mov dword [esp + 0x1c], 1
jmp 0x474951
mov edx, dword [esp + 0x64]
mov ebx, dword [edx]
shl ebx, cl
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx + eax*4 + 0x58]
add edx, 4
fld dword [eax + ebx*4]
mov dword [esp + 0x64], edx
mov dword [esp + 0x1c], 3
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 4]
movsx ebx, word [eax]
test ebx, ebx
mov dword [esp + 0x10], eax
jge 0x474998
add dword [esp + 0x10], 2
mov ecx, ebp
call fcn.004733f0
test eax, eax
je 0x474988
mov edx, dword [esp + 0x10]
neg ebx
lea eax, [edx + ebx*2]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
movsx ebx, word [ecx]
sub dword [esp + 0x70], 1
test ebx, ebx
jl 0x47496b
mov eax, ebx
sar eax, 4
and ebx, 0xf
cmp eax, 0xf
mov dword [esp + 0x10], eax
jne 0x474a02
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov dword [esp + eax*4 + 0x4c], edx
mov eax, dword [ecx]
or edx, 0xffffffff
sub edx, eax
add dword [esp + 0x70], edx
push eax
mov ecx, ebp
call fcn.00472e10
add eax, 0xf
mov ecx, ebp
mov dword [esp + 0x10], eax
call fcn.004733f0
test eax, eax
je 0x4749f1
mov eax, dword [esp + 0x10]
fld dword [ebp + eax*4 + 0x62fc]
fchs
fmul st(1)
fstp dword [edi]
jmp 0x474a51
mov ecx, dword [esp + 0x10]
fld dword [ebp + ecx*4 + 0x62fc]
fmul st(1)
fstp dword [edi]
jmp 0x474a51
test eax, eax
je 0x474a4b
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, ebp
mov dword [esp + eax*4 + 0x4c], edx
call fcn.004733f0
test eax, eax
je 0x474a35
mov ecx, dword [esp + 0x10]
fld dword [ebp + ecx*4 + 0x62fc]
sub dword [esp + 0x70], 1
fchs
fmul st(1)
fstp dword [edi]
jmp 0x474a51
mov edx, dword [esp + 0x10]
fld dword [ebp + edx*4 + 0x62fc]
sub dword [esp + 0x70], 1
fmul st(1)
fstp dword [edi]
jmp 0x474a51
fxch st(1)
fst dword [edi]
fxch st(1)
mov eax, dword [esp + 0x1c]
add eax, eax
add eax, eax
add edi, eax
cmp ebx, 0xf
jne 0x474aaf
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
mov dword [esp + ecx*4 + 0x4c], eax
mov eax, dword [edx]
or ecx, 0xffffffff
sub ecx, eax
add dword [esp + 0x70], ecx
push eax
mov ecx, ebp
call fcn.00472e10
mov ebx, eax
mov ecx, ebp
add ebx, 0xf
call fcn.004733f0
test eax, eax
je 0x474aa2
fld dword [ebp + ebx*4 + 0x62fc]
fchs
fmul st(1)
fstp dword [edi]
jmp 0x474af6
fld dword [ebp + ebx*4 + 0x62fc]
fmul st(1)
fstp dword [edi]
jmp 0x474af6
test ebx, ebx
je 0x474af0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, ebp
mov dword [esp + eax*4 + 0x4c], edx
call fcn.004733f0
test eax, eax
je 0x474ade
fld dword [ebp + ebx*4 + 0x62fc]
sub dword [esp + 0x70], 1
fchs
fmul st(1)
fstp dword [edi]
jmp 0x474af6
fld dword [ebp + ebx*4 + 0x62fc]
sub dword [esp + 0x70], 1
fmul st(1)
fstp dword [edi]
jmp 0x474af6
fxch st(1)
fst dword [edi]
fxch st(1)
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x14], 1
add eax, eax
add eax, eax
add edi, eax
mov eax, dword [esp + 0x38]
sub eax, 1
test eax, eax
mov dword [esp + 0x38], eax
jne 0x4748ce
mov eax, dword [esp + 0x24]
add dword [esp + 0x34], 4
add eax, 1
cmp eax, 2
mov dword [esp + 0x24], eax
jl 0x4748a9
cmp dword [esp + 0x2c], 0
je 0x474cc2
cmp dword [esp + 0x70], 0
jle 0x474cc2
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x54]
mov ebx, dword [edx*8 + 0x4dc43c]
movzx eax, word [ebx]
test ax, ax
mov dword [esp + 0x10], eax
jge 0x474b9e
mov eax, 1
add ebx, 2
sub dword [esp + 0x70], eax
js 0x474b92
mov ecx, ebp
call fcn.004733f0
test eax, eax
je 0x474b84
movsx eax, word [esp + 0x10]
neg eax
lea ebx, [ebx + eax*2]
movzx eax, word [ebx]
test ax, ax
mov dword [esp + 0x10], eax
jl 0x474b61
jmp 0x474b9e
add dword [esp + 0x70], eax
mov dword [esp + 0x10], 0
movsx ecx, word [esp + 0x10]
xor ebx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], ecx
test bl, 1
jne 0x474c55
cmp dword [esp + 0x14], 0
jne 0x474c4a
mov edx, dword [esi]
fstp st(0)
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x60]
add esi, 4
add esi, 4
lea edi, [ecx + eax*4]
mov eax, dword [esi]
mov ecx, dword [esp + 0x28]
add esi, 4
mov dword [esp + 0x14], edx
mov edx, dword [esi]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x64]
mov ebx, dword [edx]
shl ebx, cl
mov ecx, dword [esp + 0x68]
add edx, 4
add esi, 4
cmp eax, 3
mov dword [esp + 0x18], eax
mov dword [esp + 0x64], edx
jne 0x474c28
mov ecx, dword [ecx + 0x64]
fld dword [ecx + ebx*4]
mov ebx, dword [esp + 0x24]
sub dword [esp + 0x14], 1
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [esp + 0x1c], 1
jmp 0x474c59
mov ecx, dword [ecx + eax*4 + 0x58]
fld dword [ecx + ebx*4]
mov ebx, dword [esp + 0x24]
sub dword [esp + 0x14], 1
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
mov dword [esp + 0x1c], 3
jmp 0x474c59
mov eax, dword [esp + 0x18]
sub dword [esp + 0x14], 1
jmp 0x474c59
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov edx, 8
sar edx, cl
mov ecx, dword [esp + 0x38]
test ecx, edx
je 0x474c94
mov edx, dword [esp + 0x20]
mov dword [esp + eax*4 + 0x4c], edx
mov eax, 1
sub dword [esp + 0x70], eax
js 0x474cb3
mov ecx, ebp
call fcn.004733f0
test eax, eax
je 0x474c90
fld st(0)
fchs
fstp dword [edi]
jmp 0x474c9a
fst dword [edi]
jmp 0x474c9a
fxch st(1)
fst dword [edi]
fxch st(1)
mov eax, dword [esp + 0x1c]
add ebx, 1
cmp ebx, 4
lea edi, [edi + eax*4]
mov dword [esp + 0x24], ebx
jl 0x474bad
jmp 0x474cb7
add dword [esp + 0x70], eax
sub dword [esp + 0x2c], 1
jne 0x474b3c
mov ebx, dword [esp + 0x3c]
fstp st(0)
cmp esi, ebx
jae 0x474d17
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x474d01
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x60]
add esi, 4
add esi, 4
lea edi, [eax + edx*4]
mov edx, dword [esi]
add esi, 4
cmp edx, 3
mov edx, 1
je 0x474cfe
mov edx, 3
add esi, 4
fst dword [edi]
lea eax, [edx*4]
add edi, eax
fst dword [edi]
sub ecx, 1
add edi, eax
cmp esi, ebx
jb 0x474cd4
mov eax, dword [esp + 0x4c]
fstp st(0)
mov edx, dword [esp + 0x68]
lea ecx, [eax + 1]
mov dword [edx + 0x30], ecx
mov ecx, dword [esp + 0x50]
cmp eax, ecx
lea esi, [ecx + 1]
mov dword [edx + 0x34], esi
mov esi, dword [esp + 0x54]
lea edi, [esi + 1]
mov dword [edx + 0x38], edi
mov edi, dword [esp + 0x58]
lea ebx, [edi + 1]
mov dword [edx + 0x3c], ebx
jg 0x474d4b
mov eax, ecx
cmp eax, esi
jg 0x474d51
mov eax, esi
lea ecx, [eax + 1]
test ecx, ecx
mov eax, dword [esp + 0x6c]
je 0x474d76
add eax, 0x455
lea esi, [eax*8]
sub esi, eax
lea eax, [ecx + esi*2]
mov eax, dword [ebp + eax*4]
jmp 0x475165
imul eax, eax, 0x17
add eax, edi
mov eax, dword [ebp + eax*4 + 0xef60]
jmp 0x475165
cmp dword [eax + 0x4c], edx
mov dword [esp + 0x14], 0x4c07d0
jne 0x474d9c
mov dword [esp + 0x14], 0x4c0778
mov ecx, dword [esp + 0x6c]
fldz
lea ecx, [ecx + ecx*2 + 0x4986]
fst dword [esp + 0x10]
mov ecx, dword [ebp + ecx*4]
fld dword [esp + 0x10]
add eax, 0x18
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + edx*4 + 0x40]
test eax, eax
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
lea ecx, [edx*8 + 0x4dc338]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x34], ecx
je 0x474fd7
cmp dword [esp + 0x1c], 0
jne 0x474e4e
mov eax, dword [esp + 0x30]
fstp st(0)
mov edx, dword [eax]
mov esi, dword [esp + 0x64]
mov ebx, dword [esi]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
add ebx, dword [edx]
add edx, 4
shl ebx, cl
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x64]
add eax, 4
fld dword [ecx + ebx*4]
mov dword [esp + 0x14], edx
mov edx, dword [eax]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
add esi, 4
add eax, 4
mov dword [esp + 0x64], esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [eax + 4]
movsx esi, word [ebx]
test esi, esi
jge 0x474e7b
mov ecx, ebp
add ebx, 2
call fcn.004733f0
test eax, eax
je 0x474e6f
neg esi
lea ebx, [ebx + esi*2]
movsx esi, word [ebx]
sub dword [esp + 0x70], 1
test esi, esi
jl 0x474e5c
mov ebx, esi
sar ebx, 4
and esi, 0xf
cmp ebx, 0xf
jne 0x474ed3
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov eax, dword [edx]
mov dword [esp + 0x18], ecx
or ecx, 0xffffffff
sub ecx, eax
add dword [esp + 0x70], ecx
push eax
mov ecx, ebp
call fcn.00472e10
mov ebx, eax
mov ecx, ebp
add ebx, 0xf
call fcn.004733f0
test eax, eax
je 0x474ec6
fld dword [ebp + ebx*4 + 0x62fc]
fchs
fmul st(1)
fstp dword [edi]
jmp 0x474f1e
fld dword [ebp + ebx*4 + 0x62fc]
fmul st(1)
fstp dword [edi]
jmp 0x474f1e
test ebx, ebx
je 0x474f18
mov edx, dword [esp + 0x24]
mov ecx, ebp
mov dword [esp + 0x18], edx
call fcn.004733f0
test eax, eax
je 0x474f02
fld dword [ebp + ebx*4 + 0x62fc]
add edi, 4
sub dword [esp + 0x70], 1
fchs
fmul st(1)
fstp dword [edi - 4]
jmp 0x474f21
fld dword [ebp + ebx*4 + 0x62fc]
add edi, 4
sub dword [esp + 0x70], 1
fmul st(1)
fstp dword [edi - 4]
jmp 0x474f21
fxch st(1)
fst dword [edi]
fxch st(1)
add edi, 4
cmp esi, 0xf
jne 0x474f71
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
or edx, 0xffffffff
sub edx, eax
add dword [esp + 0x70], edx
push eax
mov ecx, ebp
call fcn.00472e10
mov esi, eax
mov ecx, ebp
add esi, 0xf
call fcn.004733f0
test eax, eax
je 0x474f64
fld dword [ebp + esi*4 + 0x62fc]
fchs
fmul st(1)
fstp dword [edi]
jmp 0x474fbc
fld dword [ebp + esi*4 + 0x62fc]
fmul st(1)
fstp dword [edi]
jmp 0x474fbc
test esi, esi
je 0x474fb6
mov eax, dword [esp + 0x24]
mov ecx, ebp
mov dword [esp + 0x18], eax
call fcn.004733f0
test eax, eax
je 0x474fa0
fld dword [ebp + esi*4 + 0x62fc]
add edi, 4
sub dword [esp + 0x70], 1
fchs
fmul st(1)
fstp dword [edi - 4]
jmp 0x474fbf
fld dword [ebp + esi*4 + 0x62fc]
add edi, 4
sub dword [esp + 0x70], 1
fmul st(1)
fstp dword [edi - 4]
jmp 0x474fbf
fxch st(1)
fst dword [edi]
fxch st(1)
add edi, 4
mov eax, dword [esp + 0x3c]
sub dword [esp + 0x1c], 1
sub eax, 1
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x474df9
mov eax, dword [esp + 0x20]
add dword [esp + 0x38], 4
add eax, 1
cmp eax, 3
mov dword [esp + 0x20], eax
jl 0x474dd4
cmp dword [esp + 0x2c], 0
je 0x475124
cmp dword [esp + 0x70], 0
jle 0x475124
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x54]
mov esi, dword [edx*8 + 0x4dc43c]
movzx ebx, word [esi]
test bx, bx
jge 0x47504d
mov eax, 1
add esi, 2
sub dword [esp + 0x70], eax
js 0x475047
mov ecx, ebp
call fcn.004733f0
test eax, eax
je 0x47503d
movsx eax, bx
neg eax
lea esi, [esi + eax*2]
movzx ebx, word [esi]
test bx, bx
jl 0x47501c
jmp 0x47504d
add dword [esp + 0x70], eax
xor ebx, ebx
movsx edx, bx
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x3c], edx
test cl, 1
jne 0x4750bd
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x4750b2
mov eax, dword [esp + 0x30]
fstp st(0)
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov esi, dword [esp + 0x64]
mov ebx, dword [esi]
add eax, 4
add eax, 4
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
add ebx, dword [eax]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x28]
shl ebx, cl
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x64]
add eax, 4
fld dword [ecx + ebx*4]
add esi, 4
fstp dword [esp + 0x10]
mov dword [esp + 0x14], eax
fld dword [esp + 0x10]
mov dword [esp + 0x64], esi
mov ecx, dword [esp + 0x20]
sub edx, 1
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x3c]
mov edx, 8
sar edx, cl
test eax, edx
je 0x4750f6
mov ecx, dword [esp + 0x24]
mov eax, 1
sub dword [esp + 0x70], eax
mov dword [esp + 0x18], ecx
js 0x475115
mov ecx, ebp
call fcn.004733f0
test eax, eax
je 0x4750f2
fld st(0)
fchs
fstp dword [edi]
jmp 0x4750fc
fst dword [edi]
jmp 0x4750fc
fxch st(1)
fst dword [edi]
fxch st(1)
mov ecx, dword [esp + 0x20]
add ecx, 1
add edi, 4
cmp ecx, 4
mov dword [esp + 0x20], ecx
jl 0x47505a
jmp 0x475119
add dword [esp + 0x70], eax
sub dword [esp + 0x2c], 1
jne 0x474ffb
mov eax, dword [esp + 0x60]
fstp st(0)
sub eax, edi
add eax, 0x900
sar eax, 3
je 0x475145
fst dword [edi]
add edi, 4
fst dword [edi]
add edi, 4
sub eax, 1
jne 0x475136
mov eax, dword [esp + 0x6c]
fstp st(0)
mov ecx, dword [esp + 0x18]
imul eax, eax, 0x17
mov edx, dword [esp + 0x68]
add ecx, 1
add eax, ecx
mov dword [edx + 0x3c], ecx
mov eax, dword [ebp + eax*4 + 0xef5c]
cmp dword [esp + 0x70], 0x10
mov dword [edx + 0x40], eax
jle 0x47519e
mov eax, dword [esp + 0x70]
lea esi, [eax - 0x11]
shr esi, 4
add esi, 1
mov ecx, esi
neg ecx
shl ecx, 4
add eax, ecx
mov dword [esp + 0x70], eax
lea esp, [esp]
push 0x10
mov ecx, ebp
call fcn.00472e10
sub esi, 1
jne 0x475190
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x4751ba
push eax
mov ecx, ebp
call fcn.00472e10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x4c
ret 0x14
jge 0x4751ae
push str.mpg123:_Cant_rewind_stream_by_..bits__n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x4c
ret 0x14