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

Disassembly:
push ebp
push edi
push esi
push ebx
mov eax, 0x139c
call fcn.647cb908
sub esp, eax
mov ebx, dword [esp + 0x13b4]
mov ebx, dword [ebx + 0x510]
mov dword [esp + 0x20], ebx
mov esi, dword [esp + 0x13b4]
mov esi, dword [esi + 0x508]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x13b4]
mov edi, dword [edi + 0x504]
mov dword [esp + 0x44], edi
cmp edi, 0
jle 0x64731478
lea eax, [esp + 0x7c]
mov edx, edi
shl edx, 2
lea ecx, [eax + edx]
mov dword [eax], 0xffffff38
add eax, 4
cmp eax, ecx
jne 0x64730bbc
lea eax, [esp + 0x180]
lea ecx, [eax + edx]
nop
mov dword [eax], 0xffffff38
add eax, 4
cmp eax, ecx
jne 0x64730bd4
lea eax, [esp + 0x284]
lea ecx, [eax + edx]
nop
mov dword [eax], 0
add eax, 4
cmp eax, ecx
jne 0x64730bec
lea eax, [esp + 0x388]
lea ecx, [eax + edx]
nop
mov dword [eax], 1
add eax, 4
cmp eax, ecx
jne 0x64730c04
lea eax, [esp + 0x48c]
add edx, eax
nop
mov dword [eax], 0xffffffff
add eax, 4
cmp eax, edx
jne 0x64730c1c
mov ebx, dword [esp + 0x44]
dec ebx
mov dword [esp + 0x18], ebx
test ebx, ebx
jle 0x64731451
mov ebx, dword [esp + 0x13b4]
add ebx, 4
lea esi, [esp + 0x590]
mov dword [esp + 0x50], esi
mov edi, esi
xor ebp, ebp
xor esi, esi
mov eax, dword [esp + 0x20]
add eax, 0x458
mov dword [esp + 0x1c], eax
nop
inc esi
mov ecx, dword [ebx - 4]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov eax, dword [ebx]
mov dword [esp], eax
mov edx, dword [esp + 0x13b8]
mov eax, dword [esp + 0x13bc]
call fcn.64730360
add ebp, eax
add ebx, 4
add edi, 0x38
cmp esi, dword [esp + 0x18]
jne 0x64730c64
test ebp, ebp
je 0x64731451
mov dword [esp + 0x64], 0xffffff38
mov dword [esp + 0x68], 0xffffff38
mov ebx, dword [esp + 0x20]
add ebx, 0x454
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x44]
dec edx
mov dword [esp + 4], ebx
lea eax, [esp + 0x68]
mov dword [esp], eax
lea ecx, [esp + 0x64]
mov eax, dword [esp + 0x50]
call fcn.6473059c
mov edi, dword [esp + 0x64]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x180], edi
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x184], ebp
mov dword [esp + 0x80], ebp
cmp dword [esp + 0x44], 2
jle 0x647314c1
mov dword [esp + 0x38], 2
lea esi, [esi]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x13b4]
mov esi, dword [edi + esi*4 + 0x208]
mov dword [esp + 0x40], esi
mov edi, dword [esp + esi*4 + 0x284]
mov dword [esp + 0x30], edi
mov ebx, dword [esp + esi*4 + 0x388]
mov dword [esp + 0x34], ebx
cmp dword [esp + edi*4 + 0x48c], ebx
je 0x64731094
mov esi, dword [esp + 0x13b4]
mov esi, dword [esi + edi*4 + 0x208]
mov dword [esp + 0x48], esi
mov edi, dword [esp + 0x13b4]
mov edi, dword [edi + ebx*4 + 0x208]
mov dword [esp + 0x4c], edi
mov esi, dword [esp + 0x30]
mov dword [esp + esi*4 + 0x48c], ebx
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + esi*4 + 0x344]
mov ebx, dword [edi + ebx*4 + 0x344]
mov dword [esp + 0x18], ebx
mov eax, esi
shl eax, 2
mov esi, dword [esp + eax + 0x7c]
mov dword [esp + 0x2c], esi
mov eax, dword [esp + eax + 0x180]
test esi, esi
js 0x647313f4
test eax, eax
js 0x64730dc2
add dword [esp + 0x2c], eax
sar dword [esp + 0x2c], 1
mov eax, dword [esp + 0x34]
shl eax, 2
mov edi, dword [esp + eax + 0x7c]
mov dword [esp + 0x3c], edi
mov eax, dword [esp + eax + 0x180]
test edi, edi
js 0x64731400
test eax, eax
js 0x64730dec
add dword [esp + 0x3c], eax
sar dword [esp + 0x3c], 1
cmp dword [esp + 0x2c], 0xffffffff
je 0x647314ca
cmp dword [esp + 0x3c], 0xffffffff
je 0x647314ca
mov ebx, dword [esp + 0x3c]
sub ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
sub esi, ecx
mov dword [esp + 0x10], esi
mov eax, ebx
cdq
idiv esi
mov dword [esp + 0x24], eax
test ebx, ebx
js 0x6473140c
mov edx, eax
inc edx
mov dword [esp + 0x28], edx
lea eax, [ecx*4]
mov esi, dword [esp + 0x13bc]
fld dword [esi + eax]
fld dword [0x64813a40]
fmul st(1)
fadd dword [0x64813a44]
fnstcw word [esp + 0x5a]
mov dx, word [esp + 0x5a]
mov dh, 0xc
mov word [esp + 0x58], dx
fldcw word [esp + 0x58]
fistp dword [esp + 0x5c]
fldcw word [esp + 0x5a]
mov edx, dword [esp + 0x5c]
test edx, edx
js 0x64731418
cmp edx, 0x3ff
jle 0x64730e80
mov edx, 0x3ff
mov edi, dword [esp + 0x20]
fld dword [edi + 0x458]
fld st(0)
mov esi, dword [esp + 0x13b8]
fadd dword [esi + eax]
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 5
je 0x6473123c
fld dword [edi + 0x448]
mov edi, dword [esp + 0x2c]
sub edi, edx
mov edx, edi
imul edx, edi
test ebx, ebx
js 0x6473128d
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x24]
test eax, eax
js 0x647312a0
sub ebx, eax
mov dword [esp + 0x1c], ebx
mov edi, dword [esp + 0x2c]
mov ebp, 1
xor esi, esi
fld dword [0x64813a40]
nop
inc ecx
cmp dword [esp + 0x18], ecx
jle 0x647312a8
add esi, dword [esp + 0x1c]
cmp dword [esp + 0x10], esi
jg 0x64731228
sub esi, dword [esp + 0x10]
add edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x13bc]
fld dword [ebx + ecx*4]
fld st(0)
fmul st(2)
fadd dword [0x64813a44]
fldcw word [esp + 0x58]
fistp dword [esp + 0x5c]
fldcw word [esp + 0x5a]
mov ebx, dword [esp + 0x5c]
test ebx, ebx
js 0x64731234
cmp ebx, 0x3ff
jle 0x64730f42
mov ebx, 0x3ff
mov eax, edi
sub eax, ebx
imul eax, eax
add edx, eax
inc ebp
fld st(3)
mov eax, dword [esp + 0x13b8]
fadd dword [eax + ecx*4]
fucompp
fnstsw ax
test ah, 5
jne 0x64730ee8
test ebx, ebx
je 0x64730ee8
mov dword [esp + 0x5c], edi
fild dword [esp + 0x5c]
mov dword [esp + 0x5c], ebx
fild dword [esp + 0x5c]
fld st(1)
fadd st(4)
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x64730fa7
fxch st(1)
mov ebx, dword [esp + 0x20]
fsub dword [ebx + 0x44c]
fucompp
fnstsw ax
test ah, 0x45
jne 0x64730ee8
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x64730fc4
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x64730fc4
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x64730fc4
fstp st(0)
fstp st(0)
nop
mov dword [esp + 0x6c], 0xffffff38
mov dword [esp + 0x70], 0xffffff38
mov dword [esp + 0x74], 0xffffff38
mov dword [esp + 0x78], 0xffffff38
mov edx, dword [esp + 0x40]
sub edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
shl ecx, 3
mov ebx, dword [esp + 0x50]
lea eax, [ebx + ecx*8]
sub eax, ecx
mov esi, dword [esp + 0x54]
mov dword [esp + 4], esi
lea edi, [esp + 0x70]
mov dword [esp], edi
lea ecx, [esp + 0x6c]
call fcn.6473059c
mov ebx, eax
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
shl ecx, 3
mov esi, dword [esp + 0x50]
lea eax, [esi + ecx*8]
sub eax, ecx
mov edi, dword [esp + 0x54]
mov dword [esp + 4], edi
lea ecx, [esp + 0x78]
mov dword [esp], ecx
lea ecx, [esp + 0x74]
call fcn.6473059c
test ebx, ebx
je 0x64731320
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x6c], edi
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
test eax, eax
je 0x6473132c
mov dword [esp + 0x74], edx
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x78], esi
test ebx, ebx
je 0x6473141f
mov edi, dword [esp + 0x38]
mov dword [esp + edi*4 + 0x7c], 0xffffff38
mov dword [esp + edi*4 + 0x180], 0xffffff38
lea esi, [esi]
inc dword [esp + 0x38]
mov edi, dword [esp + 0x44]
cmp dword [esp + 0x38], edi
jne 0x64730d1c
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x180]
mov ebp, dword [esp + 0x80]
mov ebx, dword [esp + 0x184]
mov eax, dword [esp + 0x44]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x13b0]
mov dword [esp], eax
call sym.allegro_5.0.10_monolith_mt.dll__vorbis_block_alloc
mov dword [esp + 0x10], eax
test edi, edi
js 0x647310f1
test esi, esi
js 0x6473146d
add esi, edi
sar esi, 1
mov eax, dword [esp + 0x10]
mov dword [eax], esi
test ebp, ebp
js 0x64731107
test ebx, ebx
js 0x64731462
add ebx, ebp
sar ebx, 1
mov eax, dword [esp + 0x10]
mov dword [eax + 4], ebx
cmp dword [esp + 0x44], 2
jle 0x6473121b
mov ebp, dword [esp + 0x13b4]
add ebp, 0x408
mov ebx, 2
jmp 0x6473116e
add esi, eax
mov edx, dword [esp + ebx*4 + 0x7c]
test edx, edx
js 0x647311ea
mov eax, dword [esp + ebx*4 + 0x180]
test eax, eax
js 0x64731151
add edx, eax
sar edx, 1
test edx, edx
js 0x647311fc
cmp esi, edx
je 0x647311fc
mov eax, dword [esp + 0x10]
mov dword [eax + ebx*4], edx
inc ebx
add ebp, 4
cmp ebx, dword [esp + 0x44]
je 0x64731217
mov eax, dword [ebp]
mov edx, dword [ebp - 0xfc]
mov esi, dword [esp + 0x20]
mov esi, dword [esi + eax*4 + 0x344]
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x10]
mov esi, dword [edi + eax*4]
and esi, 0x7fff
mov ecx, dword [edi + edx*4]
and ecx, 0x7fff
sub ecx, esi
mov dword [esp + 0x18], ecx
test ecx, ecx
js 0x64731444
mov edi, dword [esp + 0x20]
mov eax, dword [edi + ebx*4 + 0x344]
sub eax, dword [esp + 0x14]
imul eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov edi, dword [edi + edx*4 + 0x344]
sub edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cdq
idiv edi
test ecx, ecx
jns 0x6473112c
sub esi, eax
mov edx, dword [esp + ebx*4 + 0x7c]
test edx, edx
jns 0x6473113a
mov edx, dword [esp + ebx*4 + 0x180]
test edx, edx
jns 0x64731151
lea esi, [esi]
or esi, 0x8000
mov eax, dword [esp + 0x10]
mov dword [eax + ebx*4], esi
inc ebx
add ebp, 4
cmp ebx, dword [esp + 0x44]
jne 0x6473116e
mov eax, dword [esp + 0x10]
add esp, 0x139c
pop ebx
pop esi
pop edi
pop ebp
ret
add edi, dword [esp + 0x24]
jmp 0x64730f09
xor ebx, ebx
jmp 0x64730f35
fild dword [esp + 0x2c]
fld dword [edi + 0x448]
mov dword [esp + 0x5c], edx
fild dword [esp + 0x5c]
fld st(2)
fadd st(2)
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x64730fb4
fxch st(2)
fsub dword [edi + 0x44c]
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x45
je 0x64730fbe
mov edi, dword [esp + 0x2c]
sub edi, edx
mov edx, edi
imul edx, edi
test ebx, ebx
jns 0x64730ebe
neg ebx
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x24]
test eax, eax
jns 0x64730ecf
neg eax
jmp 0x64730ecf
fstp st(0)
fstp st(1)
mov dword [esp + 0x5c], ebp
fild dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
fld dword [esi + 0x450]
fxch st(2)
fmul st(0)
fdiv st(1)
fucomp st(2)
fnstsw ax
test ah, 0x45
je 0x647312fc
fld dword [esi + 0x44c]
fmul st(0)
fdivrp st(1)
fucomp st(1)
fnstsw ax
test ah, 0x45
je 0x64731302
mov eax, edx
cdq
idiv ebp
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fucompp
fnstsw ax
test ah, 0x45
jne 0x64731304
jmp 0x64730fc4
fstp st(0)
fstp st(0)
jmp 0x64731304
fstp st(0)
mov ebx, dword [esp + 0x38]
mov dword [esp + ebx*4 + 0x7c], 0xffffff38
mov dword [esp + ebx*4 + 0x180], 0xffffff38
jmp 0x64731094
mov edx, dword [esp + 0x70]
test eax, eax
jne 0x64731066
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x30]
mov dword [esp + esi*4 + 0x180], eax
test esi, esi
jne 0x6473134f
mov dword [esp + 0x7c], eax
mov edi, dword [esp + 0x38]
mov dword [esp + edi*4 + 0x7c], edx
mov dword [esp + edi*4 + 0x180], ecx
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
mov dword [esp + ebx*4 + 0x7c], esi
dec ebx
je 0x64731426
test edx, edx
js 0x64731435
mov edx, dword [esp + 0x40]
dec edx
js 0x647313ab
mov ecx, dword [esp + edx*4 + 0x388]
cmp ecx, dword [esp + 0x34]
jne 0x647313ab
lea eax, [esp + edx*4 + 0x388]
mov ebx, dword [esp + 0x38]
jmp 0x647313a3
sub eax, 4
cmp dword [eax], ecx
jne 0x647313ab
mov dword [eax], ebx
dec edx
cmp edx, 0xffffffff
jne 0x6473139c
mov edx, dword [esp + 0x40]
inc edx
cmp dword [esp + 0x44], edx
jle 0x64731094
mov ecx, dword [esp + edx*4 + 0x284]
cmp ecx, dword [esp + 0x30]
jne 0x64731094
lea eax, [esp + edx*4 + 0x284]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x38]
jmp 0x647313e7
add eax, 4
cmp dword [eax], ecx
jne 0x64731094
mov dword [eax], esi
inc edx
cmp edx, ebx
jne 0x647313dc
jmp 0x64731094
mov dword [esp + 0x2c], eax
jmp 0x64730dc2
mov dword [esp + 0x3c], eax
jmp 0x64730dec
dec eax
mov dword [esp + 0x28], eax
jmp 0x64730e2c
xor edx, edx
jmp 0x64730e73
mov ecx, edx
jmp 0x64731338
mov dword [esp + 0x184], esi
test edx, edx
jns 0x64731379
test ecx, ecx
jns 0x64731379
jmp 0x64731094
mov eax, ecx
neg eax
mov dword [esp + 0x18], eax
jmp 0x647311aa
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
jmp 0x6473121b
mov ebx, ebp
mov eax, dword [esp + 0x10]
jmp 0x64731107
mov esi, edi
mov eax, dword [esp + 0x10]
jmp 0x647310f1
jne 0x64730c29
mov eax, dword [esp + 0x20]
add eax, 0x458
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x10]
mov dword [esp + 8], esi
lea edi, [esp + 0x590]
mov dword [esp + 0x50], edi
mov dword [esp + 4], edi
mov dword [esp], esi
xor ecx, ecx
mov edx, dword [esp + 0x13b8]
mov eax, dword [esp + 0x13bc]
call fcn.64730360
mov ebp, eax
jmp 0x64730ca2
mov ebx, ebp
mov esi, edi
jmp 0x647310bf
mov dword [esp], 1
call fcn.647d44d4
nop