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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
mov ebx, edx
push esi
mov esi, dword [ebp + 8]
push edi
cmp dword [ebx + 0x384], 0
mov edi, dword [ebp + 0xc]
je 0x4aa039
push edi
push esi
push str.TXTH:_reading_key_s__val_s_n
call fcn.0040b9e0
add esp, 0xc
push 5
push str.codec
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa08b
mov al, byte [esi + 5]
test al, al
je 0x4aa058
cmp al, 0x20
jne 0x4aa08b
mov eax, 5
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa076
cmp cl, 0x20
jne 0x4aa08b
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa064
test eax, eax
je 0x4aa08b
mov edx, edi
mov ecx, ebx
call fcn.004a8ef0
mov dword [ebx], eax
cmp eax, 0xff
jmp 0x4ac604
push 0xa
push str.codec_mode
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa0d0
mov al, byte [esi + 0xa]
test al, al
je 0x4aa0aa
cmp al, 0x20
jne 0x4aa0d0
mov eax, 0xa
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa0c8
cmp cl, 0x20
jne 0x4aa0d0
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa0b6
test eax, eax
je 0x4aa0d0
lea eax, [ebx + 4]
jmp 0x4ac5f0
push 9
push str.value_mul
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa112
mov al, byte [esi + 9]
test al, al
je 0x4aa0ef
cmp al, 0x20
jne 0x4aa112
mov eax, 9
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa152
jmp 0x4aa100
cmp cl, 0x20
jne 0x4aa112
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa100
test eax, eax
jne 0x4aa152
push 7
push 0x5f7608
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa187
mov al, byte [esi + 7]
test al, al
je 0x4aa131
cmp al, 0x20
jne 0x4aa187
mov eax, 7
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa152
lea ecx, [ecx]
cmp cl, 0x20
jne 0x4aa187
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa140
test eax, eax
je 0x4aa187
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 8]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
jne 0x4ac60a
push edi
push esi
push str.TXTH:_error_parsing_key_s__val_s_n
call fcn.0040b9e0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 9
push str.value_div
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa1c4
mov al, byte [esi + 9]
test al, al
je 0x4aa1a6
cmp al, 0x20
jne 0x4aa1c4
mov eax, 9
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa202
cmp cl, 0x20
jne 0x4aa1c4
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa1b2
test eax, eax
jne 0x4aa202
push 7
push 0x5f761c
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa20a
mov al, byte [esi + 7]
test al, al
je 0x4aa1e3
cmp al, 0x20
jne 0x4aa20a
mov eax, 7
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa202
nop
cmp cl, 0x20
jne 0x4aa20a
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa1f0
test eax, eax
je 0x4aa20a
lea eax, [ebx + 0xc]
jmp 0x4ac5f0
push 9
push str.value_add
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa247
mov al, byte [esi + 9]
test al, al
je 0x4aa229
cmp al, 0x20
jne 0x4aa247
mov eax, 9
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa284
cmp cl, 0x20
jne 0x4aa247
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa235
test eax, eax
jne 0x4aa284
push 7
push str.value_
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa28c
mov al, byte [esi + 7]
test al, al
je 0x4aa266
cmp al, 0x20
jne 0x4aa28c
mov eax, 7
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa284
cmp cl, 0x20
jne 0x4aa28c
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa272
test eax, eax
je 0x4aa28c
lea eax, [ebx + 0x10]
jmp 0x4ac5f0
push 9
push str.value_sub
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa2c9
mov al, byte [esi + 9]
test al, al
je 0x4aa2ab
cmp al, 0x20
jne 0x4aa2c9
mov eax, 9
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa306
cmp cl, 0x20
jne 0x4aa2c9
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa2b7
test eax, eax
jne 0x4aa306
push 7
push str.value__
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa30e
mov al, byte [esi + 7]
test al, al
je 0x4aa2e8
cmp al, 0x20
jne 0x4aa30e
mov eax, 7
mov cl, byte [eax + esi]
test cl, cl
je 0x4aa306
cmp cl, 0x20
jne 0x4aa30e
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa2f4
test eax, eax
je 0x4aa30e
lea eax, [ebx + 0x14]
jmp 0x4ac5f0
push 8
push str.id_value
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
je 0x4aa32a
lea eax, [esi + 8]
mov dword [ebp - 0x10], eax
jmp 0x4aa366
mov al, byte [esi + 8]
lea ecx, [esi + 8]
test al, al
je 0x4aa33d
cmp al, 0x20
je 0x4aa33d
mov dword [ebp - 0x10], ecx
jmp 0x4aa366
mov eax, 8
mov dword [ebp - 0x10], ecx
mov cl, byte [eax + esi]
test cl, cl
je 0x4ac5ed
cmp cl, 0x20
jne 0x4aa366
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4aa350
test eax, eax
jne 0x4ac5ed
push 8
push str.id_check
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa3a9
mov eax, dword [ebp - 0x10]
mov cl, byte [eax]
test cl, cl
je 0x4aa388
cmp cl, 0x20
jne 0x4aa3a9
mov ecx, 8
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa3f2
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aa3a9
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa397
test ecx, ecx
jne 0x4aa3f2
push 9
push str.id_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa427
mov al, byte [esi + 9]
test al, al
je 0x4aa3c8
cmp al, 0x20
jne 0x4aa427
mov ecx, 9
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa3f2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
lea ebx, [ebx]
cmp dl, 0x20
jne 0x4aa427
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa3e0
test ecx, ecx
je 0x4aa427
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x1c]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov eax, dword [ebx + 0x18]
cmp eax, dword [ebx + 0x1c]
jne 0x4aa16f
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
push str.interleave
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa4db
mov al, byte [esi + 0xa]
test al, al
je 0x4aa44e
cmp al, 0x20
jne 0x4aa4db
mov ecx, 0xa
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa472
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aa4db
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa460
test ecx, ecx
je 0x4aa4db
push 9
push str.half_size
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa4d3
mov al, byte [edi + 9]
test al, al
je 0x4aa491
cmp al, 0x20
jne 0x4aa4d3
mov eax, 9
mov cl, byte [eax + edi]
test cl, cl
je 0x4aa4b2
lea ecx, [ecx]
cmp cl, 0x20
jne 0x4aa4d3
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4aa4a0
test eax, eax
je 0x4aa4d3
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je 0x4aa16f
mov eax, dword [ebx + 0x38]
xor edx, edx
div ecx
mov dword [ebx + 0x20], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x20]
jmp 0x4ac5f0
push 0xf
push str.interleave_last
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa5a4
mov al, byte [esi + 0xf]
test al, al
je 0x4aa502
cmp al, 0x20
jne 0x4aa5a4
mov ecx, 0xf
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa52a
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aa5a4
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa514
test ecx, ecx
je 0x4aa5a4
push 4
push str.auto
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa59c
mov al, byte [edi + 4]
test al, al
je 0x4aa549
cmp al, 0x20
jne 0x4aa59c
mov eax, 4
mov cl, byte [eax + edi]
test cl, cl
je 0x4aa567
cmp cl, 0x20
jne 0x4aa59c
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4aa555
test eax, eax
je 0x4aa59c
mov esi, dword [ebx + 0x30]
test esi, esi
je 0x4ac60a
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x4ac60a
mov eax, dword [ebx + 0x38]
xor edx, edx
imul ecx, esi
div ecx
mov eax, edx
xor edx, edx
div esi
mov dword [ebx + 0x24], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x24]
jmp 0x4ac5f0
push 0x10
push str.interleave_first
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa5ef
mov al, byte [esi + 0x10]
test al, al
je 0x4aa5c3
cmp al, 0x20
jne 0x4aa5ef
mov ecx, 0x10
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa5e7
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aa5ef
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa5d5
test ecx, ecx
je 0x4aa5ef
lea eax, [ebx + 0x28]
jmp 0x4ac5f0
push 0x15
push str.interleave_first_skip
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa688
mov al, byte [esi + 0x15]
test al, al
je 0x4aa612
cmp al, 0x20
jne 0x4aa688
mov ecx, 0x15
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa636
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aa688
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa624
test ecx, ecx
je 0x4aa688
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2c]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
cmp dword [ebx + 0x3c], 0
jne 0x4ac60a
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x4ac60a
mov ecx, dword [ebx + 0x30]
imul ecx, dword [ebx + 0x2c]
cmp eax, ecx
jbe 0x4ac60a
sub eax, ecx
mov dword [ebx + 0x38], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 8
push str.channels
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa6da
mov eax, dword [ebp - 0x10]
mov cl, byte [eax]
test cl, cl
je 0x4aa6aa
cmp cl, 0x20
jne 0x4aa6da
mov ecx, 8
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa6d2
mov dword [ebp - 0x10], eax
lea esp, [esp]
cmp dl, 0x20
jne 0x4aa6da
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa6c0
test ecx, ecx
je 0x4aa6da
lea eax, [ebx + 0x30]
jmp 0x4ac5f0
push 0xb
push str.sample_rate
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa72a
mov al, byte [esi + 0xb]
test al, al
je 0x4aa6f9
cmp al, 0x20
jne 0x4aa72a
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa722
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x4aa710
cmp dl, 0x20
jne 0x4aa72a
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa710
test ecx, ecx
je 0x4aa72a
lea eax, [ebx + 0x34]
jmp 0x4ac5f0
push 0xc
push str.start_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
lea eax, [esi + 0xc]
je 0x4aa746
mov dword [ebp - 0xc], eax
jmp 0x4aa786
mov cl, byte [eax]
test cl, cl
je 0x4aa756
cmp cl, 0x20
je 0x4aa756
mov dword [ebp - 0xc], eax
jmp 0x4aa786
mov ecx, 0xc
mov dword [ebp - 0xc], eax
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac54d
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
nop
cmp dl, 0x20
jne 0x4aa786
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa770
test ecx, ecx
jne 0x4ac54d
push 0xc
push str.padding_size
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa907
mov eax, dword [ebp - 0xc]
mov cl, byte [eax]
test cl, cl
je 0x4aa7b0
cmp cl, 0x20
jne 0x4aa907
mov ecx, 0xc
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa7df
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aa907
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa7c5
test ecx, ecx
je 0x4aa907
push 4
push str.auto
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa83d
mov al, byte [edi + 4]
test al, al
je 0x4aa7fe
cmp al, 0x20
jne 0x4aa83d
mov eax, 4
mov cl, byte [eax + edi]
test cl, cl
je 0x4aa822
lea ebx, [ebx]
cmp cl, 0x20
jne 0x4aa83d
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4aa810
test eax, eax
je 0x4aa83d
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x4aa8ae
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je 0x4aa8ae
cmp dword [ebx], 0
jne 0x4aa8ae
push 0
jmp 0x4aa88f
push 0xa
push str.auto_empty
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa8b7
mov al, byte [edi + 0xa]
test al, al
je 0x4aa85c
cmp al, 0x20
jne 0x4aa8b7
mov eax, 0xa
mov cl, byte [eax + edi]
test cl, cl
je 0x4aa87a
cmp cl, 0x20
jne 0x4aa8b7
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4aa868
test eax, eax
je 0x4aa8b7
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x4aa8ae
mov ecx, dword [ebx + 0x30]
test ecx, ecx
je 0x4aa8ae
cmp dword [ebx], 0
jne 0x4aa8ae
push 1
push dword [ebx + 0x20]
mov edx, dword [ebx + 0x40]
push ecx
mov ecx, dword [ebx + 0x374]
push eax
call fcn.004dc3c0
mov ecx, eax
add esp, 0x10
lea eax, [ebx + 0x48]
mov dword [eax], ecx
jmp 0x4aa8d7
xor ecx, ecx
lea eax, [ebx + 0x48]
mov dword [eax], ecx
jmp 0x4aa8d7
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x48]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
lea eax, [ebx + 0x48]
cmp dword [ebx + 0x3c], 0
jne 0x4ac60a
mov ecx, dword [ebx + 0x38]
test ecx, ecx
je 0x4ac60a
mov eax, dword [eax]
cmp ecx, eax
jbe 0x4ac60a
sub ecx, eax
mov eax, 1
mov dword [ebx + 0x38], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 9
push str.data_size
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa982
mov al, byte [esi + 9]
test al, al
je 0x4aa926
cmp al, 0x20
jne 0x4aa982
mov ecx, 9
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aa952
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov edi, edi
cmp dl, 0x20
jne 0x4aa982
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa940
test ecx, ecx
je 0x4aa982
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x38]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x3c], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xb
push str.sample_type
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
lea eax, [esi + 0xb]
je 0x4aa99e
mov dword [ebp - 8], eax
jmp 0x4aa9e6
mov cl, byte [eax]
test cl, cl
je 0x4aa9ae
cmp cl, 0x20
je 0x4aa9ae
mov dword [ebp - 8], eax
jmp 0x4aa9e6
mov ecx, 0xb
mov dword [ebp - 8], eax
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac444
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
lea ecx, [ecx]
cmp dl, 0x20
jne 0x4aa9e6
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aa9d0
test ecx, ecx
jne 0x4ac444
push 0xb
push str.num_samples
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aaad2
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4aaa10
cmp cl, 0x20
jne 0x4aaad2
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aaa4a
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
jmp 0x4aaa30
cmp dl, 0x20
jne 0x4aaad2
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aaa30
test ecx, ecx
je 0x4aaad2
push 9
push str.data_size
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aaaad
mov al, byte [edi + 9]
test al, al
je 0x4aaa69
cmp al, 0x20
jne 0x4aaaad
mov eax, 9
mov cl, byte [eax + edi]
test cl, cl
je 0x4aaa83
cmp cl, 0x20
jne 0x4aaaad
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4aaa75
lea ecx, [ebx + 0x50]
test eax, eax
je 0x4aaab0
mov edx, dword [ebx + 0x38]
mov ecx, ebx
call fcn.004ae7c0
mov dword [ebx + 0x50], eax
mov eax, 1
mov dword [ebx + 0x29c], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebx + 0x50]
push ecx
mov ecx, dword [ebx + 0x370]
mov edx, ebx
push edi
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
lea esi, [ebx + 0x50]
jmp 0x4aae42
push 0x11
push str.loop_start_sample
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aab25
mov al, byte [esi + 0x11]
test al, al
je 0x4aaaf1
cmp al, 0x20
jne 0x4aab25
mov ecx, 0x11
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aab82
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aab25
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aab13
test ecx, ecx
jne 0x4aab82
push 0xa
push 0x5f774c
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aabe5
mov al, byte [esi + 0xa]
test al, al
je 0x4aab4c
cmp al, 0x20
jne 0x4aabe5
mov ecx, 0xa
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aab82
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
lea ebx, [ebx]
cmp dl, 0x20
jne 0x4aabe5
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aab70
test ecx, ecx
je 0x4aabe5
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x54]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
cmp dword [ebx + 0x4c], 1
lea esi, [ebx + 0x54]
jne 0x4aabb3
mov edx, dword [esi]
mov ecx, ebx
call fcn.004ae7c0
mov dword [esi], eax
cmp dword [ebx + 0x4c], 2
jne 0x4aabcc
mov edx, dword [ebx + 0x30]
mov ecx, ebx
imul edx, dword [ebx + 0x20]
imul edx, dword [esi]
call fcn.004ae7c0
mov dword [esi], eax
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x4ac60a
add dword [esi], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xf
push str.loop_end_sample
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aac38
mov al, byte [esi + 0xf]
test al, al
je 0x4aac04
cmp al, 0x20
jne 0x4aac38
mov ecx, 0xf
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aac9a
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dl, 0x20
jne 0x4aac38
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aac26
test ecx, ecx
jne 0x4aac9a
push 8
push str.loop_end
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aad56
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
test al, al
je 0x4aac61
cmp al, 0x20
jne 0x4aad56
mov ecx, 8
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aac9a
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea esp, [esp]
cmp dl, 0x20
jne 0x4aad56
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aac80
test ecx, ecx
je 0x4aad56
push 9
push str.data_size
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aacec
mov al, byte [edi + 9]
test al, al
je 0x4aacb9
cmp al, 0x20
jne 0x4aacec
mov eax, 9
mov cl, byte [eax + edi]
test cl, cl
je 0x4aacd3
cmp cl, 0x20
jne 0x4aacec
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4aacc5
lea ecx, [ebx + 0x58]
test eax, eax
je 0x4aacef
mov edx, dword [ebx + 0x38]
mov ecx, ebx
call fcn.004ae7c0
mov dword [ebx + 0x58], eax
lea eax, [ebx + 0x58]
jmp 0x4aad3d
lea ecx, [ebx + 0x58]
push ecx
mov dword [ebp - 0x10], ecx
mov edx, ebx
mov ecx, dword [ebx + 0x370]
push edi
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
cmp dword [ebx + 0x4c], 1
mov esi, dword [ebp - 0x10]
jne 0x4aad20
mov edx, dword [esi]
mov ecx, ebx
call fcn.004ae7c0
mov dword [esi], eax
cmp dword [ebx + 0x4c], 2
mov eax, esi
jne 0x4aad3d
mov edx, dword [ebx + 0x30]
mov ecx, ebx
imul edx, dword [ebx + 0x20]
imul edx, dword [esi]
call fcn.004ae7c0
mov dword [esi], eax
mov eax, esi
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
je 0x4ac60a
add dword [eax], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xc
push str.skip_samples
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aadca
mov ecx, dword [ebp - 0xc]
mov al, byte [ecx]
test al, al
je 0x4aad77
cmp al, 0x20
jne 0x4aadca
mov edx, 0xc
cmp byte [edx + esi], 0
je 0x4aada1
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov al, byte [edx + esi]
mov dword [ebp - 0xc], ecx
mov edi, edi
cmp al, 0x20
jne 0x4aadca
mov al, byte [edx + esi + 1]
inc edx
test al, al
jne 0x4aad90
test edx, edx
je 0x4aadca
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x64]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x60], 1
lea esi, [ebx + 0x64]
jmp 0x4aae42
push 0xb
push str.loop_adjust
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aae7c
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4aadf4
cmp cl, 0x20
jne 0x4aae7c
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aae22
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea esp, [esp]
cmp dl, 0x20
jne 0x4aae7c
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aae10
test ecx, ecx
je 0x4aae7c
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x5c]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
lea esi, [ebx + 0x5c]
cmp dword [ebx + 0x4c], 1
jne 0x4aae53
mov edx, dword [esi]
mov ecx, ebx
call fcn.004ae7c0
mov dword [esi], eax
cmp dword [ebx + 0x4c], 2
jne 0x4ac60a
mov edx, dword [ebx + 0x30]
mov ecx, ebx
imul edx, dword [ebx + 0x20]
imul edx, dword [esi]
call fcn.004ae7c0
mov dword [esi], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 9
push str.loop_flag
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab003
mov al, byte [esi + 9]
test al, al
je 0x4aaea3
cmp al, 0x20
jne 0x4ab003
mov ecx, 9
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aaeda
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
jmp 0x4aaec0
cmp dl, 0x20
jne 0x4ab003
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aaec0
test ecx, ecx
je 0x4ab003
push 4
push str.auto
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aaf2a
mov al, byte [edi + 4]
test al, al
je 0x4aaef9
cmp al, 0x20
jne 0x4aaf2a
mov eax, 4
mov cl, byte [eax + edi]
test cl, cl
je 0x4aaf17
cmp cl, 0x20
jne 0x4aaf2a
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4aaf05
test eax, eax
je 0x4aaf2a
mov dword [ebx + 0x74], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x68]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov eax, dword [ebx + 0x6c]
mov dword [ebx + 0x70], 1
test eax, eax
jne 0x4aaf7b
mov eax, dword [ebx + 0x68]
cmp eax, 0xffff
je 0x4aaf68
cmp eax, 0xffffffff
jne 0x4ac60a
mov dword [ebx + 0x68], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x4aafad
mov eax, dword [ebx + 0x68]
cmp eax, 0xff
je 0x4aaf9a
cmp eax, 0xffff
je 0x4aaf9a
cmp eax, 0xffffffff
jne 0x4ac60a
mov dword [ebx + 0x68], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4aafe3
mov ecx, dword [ebx + 0x68]
cmp ecx, 0xff
je 0x4aaf68
cmp ecx, 0xffff
je 0x4aaf68
cmp ecx, 0xffffffff
je 0x4aaf68
test ecx, ecx
jne 0x4ac60a
mov dword [ebx + 0x68], 1
lea eax, [ecx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x4ac60a
xor eax, eax
cmp dword [ebx + 0x68], eax
sete al
mov dword [ebx + 0x68], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xd
push str.loop_behavior
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab1d0
mov al, byte [esi + 0xd]
test al, al
je 0x4ab02a
cmp al, 0x20
jne 0x4ab1d0
mov ecx, 0xd
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab05c
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab1d0
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab042
test ecx, ecx
je 0x4ab1d0
push 7
push str.default
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab0ac
mov al, byte [edi + 7]
test al, al
je 0x4ab07b
cmp al, 0x20
jne 0x4ab0ac
mov eax, 7
mov cl, byte [eax + edi]
test cl, cl
je 0x4ab099
cmp cl, 0x20
jne 0x4ab0ac
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4ab087
test eax, eax
je 0x4ab0ac
mov dword [ebx + 0x6c], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 8
push str.negative
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
je 0x4ab0c8
lea eax, [edi + 8]
mov dword [ebp - 0x10], eax
jmp 0x4ab106
mov al, byte [edi + 8]
lea ecx, [edi + 8]
test al, al
je 0x4ab0db
cmp al, 0x20
je 0x4ab0db
mov dword [ebp - 0x10], ecx
jmp 0x4ab106
mov eax, 8
mov dword [ebp - 0x10], ecx
mov cl, byte [eax + edi]
test cl, cl
je 0x4ab1bd
mov edi, edi
cmp cl, 0x20
jne 0x4ab106
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4ab0f0
test eax, eax
jne 0x4ab1bd
push 8
push str.positive
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab15b
mov edx, dword [ebp - 0x10]
mov al, byte [edx]
test al, al
je 0x4ab127
cmp al, 0x20
jne 0x4ab15b
mov eax, 8
mov cl, byte [eax + edi]
test cl, cl
je 0x4ab148
mov dword [ebp - 0x10], edx
cmp cl, 0x20
jne 0x4ab15b
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4ab136
test eax, eax
je 0x4ab15b
mov dword [ebx + 0x6c], 2
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 8
push str.inverted
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa16f
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
test al, al
je 0x4ab184
cmp al, 0x20
jne 0x4aa16f
mov eax, 8
mov cl, byte [eax + edi]
test cl, cl
je 0x4ab1aa
cmp cl, 0x20
jne 0x4aa16f
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4ab190
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x6c], 3
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x6c], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xf
push str.offset_absolute
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab224
mov al, byte [esi + 0xf]
test al, al
je 0x4ab1ef
cmp al, 0x20
jne 0x4ab224
mov ecx, 0xf
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab219
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab224
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab207
test ecx, ecx
je 0x4ab224
lea eax, [ebx + 0x318]
jmp 0x4ac5f0
push 0xb
push str.coef_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4ab24e
cmp cl, 0x20
jne 0x4ab2d4
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab275
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab2d4
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab263
test ecx, ecx
je 0x4ab2d4
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x78]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov ecx, dword [ebx + 0x314]
add ecx, dword [ebx + 0x78]
mov edx, dword [ebx + 0x2a8]
mov dword [ebx + 0x78], ecx
test edx, edx
je 0x4ac60a
cmp dword [ebx + 0x318], 0
jne 0x4ac60a
mov eax, dword [ebx + 0x2a0]
dec eax
imul eax, edx
add eax, ecx
mov dword [ebx + 0x78], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xc
push str.coef_spacing
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab329
mov ecx, dword [ebp - 0xc]
mov al, byte [ecx]
test al, al
je 0x4ab2f5
cmp al, 0x20
jne 0x4ab329
mov edx, 0xc
cmp byte [edx + esi], 0
je 0x4ab321
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov al, byte [edx + esi]
mov dword [ebp - 0xc], ecx
lea esp, [esp]
cmp al, 0x20
jne 0x4ab329
mov al, byte [edx + esi + 1]
inc edx
test al, al
jne 0x4ab310
test edx, edx
je 0x4ab329
lea eax, [ebx + 0x7c]
jmp 0x4ac5f0
push 0xf
push str.coef_endianness
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab38e
mov al, byte [esi + 0xf]
test al, al
je 0x4ab348
cmp al, 0x20
jne 0x4ab38e
mov ecx, 0xf
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab372
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab38e
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab360
test ecx, ecx
je 0x4ab38e
lea eax, [ebx + 0x84]
mov edx, edi
push eax
lea eax, [ebx + 0x80]
mov ecx, ebx
push eax
call fcn.004a9e70
jmp 0x4ac5ff
push 0xa
push str.coef_table
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab406
mov al, byte [esi + 0xa]
test al, al
je 0x4ab3ad
cmp al, 0x20
jne 0x4ab406
mov ecx, 0xa
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab3d7
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab406
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab3c5
test ecx, ecx
je 0x4ab406
push ecx
lea eax, [ebx + 0x8c]
push eax
push edi
call fcn.004ac940
add esp, 0xc
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x88], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xb
push str.hist_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab4d0
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4ab430
cmp cl, 0x20
jne 0x4ab4d0
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab45f
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab4d0
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab445
test ecx, ecx
je 0x4ab4d0
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x290]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov ecx, dword [ebx + 0x290]
mov edx, dword [ebx + 0x2a8]
add ecx, ecx
mov dword [ebx + 0x28c], 1
mov dword [ebx + 0x290], ecx
test edx, edx
je 0x4ac60a
cmp dword [ebx + 0x318], 0
jne 0x4ac60a
mov eax, dword [ebx + 0x2a0]
dec eax
imul eax, edx
add eax, ecx
mov dword [ebx + 0x290], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xc
push str.hist_spacing
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab524
mov ecx, dword [ebp - 0xc]
mov al, byte [ecx]
test al, al
je 0x4ab4f1
cmp al, 0x20
jne 0x4ab524
mov edx, 0xc
cmp byte [edx + esi], 0
je 0x4ab519
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov al, byte [edx + esi]
mov dword [ebp - 0xc], ecx
cmp al, 0x20
jne 0x4ab524
mov al, byte [edx + esi + 1]
inc edx
test al, al
jne 0x4ab508
test edx, edx
je 0x4ab524
lea eax, [ebx + 0x294]
jmp 0x4ac5f0
push 0xf
push str.hist_endianness
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab589
mov al, byte [esi + 0xf]
test al, al
je 0x4ab543
cmp al, 0x20
jne 0x4ab589
mov ecx, 0xf
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab572
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
jmp 0x4ab560
cmp dl, 0x20
jne 0x4ab589
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab560
test ecx, ecx
je 0x4ab589
lea eax, [ebx + 0x298]
mov edx, edi
push 0
push eax
mov ecx, ebx
call fcn.004a9e70
jmp 0x4ac5ff
push 0xd
push str.subsong_count
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab5dd
mov al, byte [esi + 0xd]
test al, al
je 0x4ab5a8
cmp al, 0x20
jne 0x4ab5dd
mov ecx, 0xd
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab5d2
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab5dd
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab5c0
test ecx, ecx
je 0x4ab5dd
lea eax, [ebx + 0x2a4]
jmp 0x4ac5f0
push 0xf
push str.subsong_spacing
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab626
mov al, byte [esi + 0xf]
test al, al
je 0x4ab5fc
cmp al, 0x20
jne 0x4ab626
mov ecx, 0xf
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab672
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab626
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab614
test ecx, ecx
jne 0x4ab672
push 0xe
push str.subsong_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab67d
mov al, byte [esi + 0xe]
test al, al
je 0x4ab645
cmp al, 0x20
jne 0x4ab67d
mov ecx, 0xe
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab672
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea ecx, [ecx]
cmp dl, 0x20
jne 0x4ab67d
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab660
test ecx, ecx
je 0x4ab67d
lea eax, [ebx + 0x2a8]
jmp 0x4ac5f0
push 0xb
push str.subsong_sum
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab740
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4ab6a7
cmp cl, 0x20
jne 0x4ab740
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab6d2
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea esp, [esp]
cmp dl, 0x20
jne 0x4ab740
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab6c0
test ecx, ecx
je 0x4ab740
mov ecx, dword [ebx + 0x2a0]
xor eax, eax
mov dword [ebp - 0xc], ecx
dec ecx
mov dword [ebp - 0x10], 0
test ecx, ecx
jle 0x4ab72b
lea esp, [esp]
mov ecx, dword [ebx + 0x370]
inc eax
mov dword [ebp - 8], eax
mov edx, ebx
mov dword [ebx + 0x2a0], eax
lea eax, [ebp - 0x10]
push eax
push edi
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
add dword [ebx + 0x2ac], eax
dec ecx
mov eax, dword [ebp - 8]
cmp eax, ecx
jl 0x4ab6f0
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x2a0], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xb
push str.name_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab80b
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4ab76a
cmp cl, 0x20
jne 0x4ab80b
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab796
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
nop
cmp dl, 0x20
jne 0x4ab80b
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab780
test ecx, ecx
je 0x4ab80b
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2b4]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov ecx, dword [ebx + 0x314]
add ecx, dword [ebx + 0x2b4]
mov edx, dword [ebx + 0x2a8]
mov dword [ebx + 0x2b0], 1
mov dword [ebx + 0x2b4], ecx
test edx, edx
je 0x4ac60a
cmp dword [ebx + 0x318], 0
jne 0x4ac60a
mov eax, dword [ebx + 0x2a0]
dec eax
imul eax, edx
add eax, ecx
mov dword [ebx + 0x2b4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x14
push str.name_offset_absolute
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab896
mov al, byte [esi + 0x14]
test al, al
je 0x4ab82a
cmp al, 0x20
jne 0x4ab896
mov ecx, 0x14
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab854
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab896
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab842
test ecx, ecx
je 0x4ab896
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2b4]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov eax, dword [ebx + 0x314]
add dword [ebx + 0x2b4], eax
mov eax, 1
mov dword [ebx + 0x2b0], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 9
push str.name_size
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab8ed
mov al, byte [esi + 9]
test al, al
je 0x4ab8b5
cmp al, 0x20
jne 0x4ab8ed
mov ecx, 9
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab8e2
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea ecx, [ecx]
cmp dl, 0x20
jne 0x4ab8ed
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab8d0
test ecx, ecx
je 0x4ab8ed
lea eax, [ebx + 0x2b8]
jmp 0x4ac5f0
push 0xe
push str.subfile_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab953
mov al, byte [esi + 0xe]
test al, al
je 0x4ab90c
cmp al, 0x20
jne 0x4ab953
mov ecx, 0xe
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ab936
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ab953
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ab924
test ecx, ecx
je 0x4ab953
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2c0]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
jmp 0x4aba23
push 0xc
push str.subfile_size
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ab9c2
mov ecx, dword [ebp - 0xc]
mov al, byte [ecx]
test al, al
je 0x4ab974
cmp al, 0x20
jne 0x4ab9c2
mov edx, 0xc
cmp byte [edx + esi], 0
je 0x4ab9a1
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov al, byte [edx + esi]
mov dword [ebp - 0xc], ecx
jmp 0x4ab990
cmp al, 0x20
jne 0x4ab9c2
mov al, byte [edx + esi + 1]
inc edx
test al, al
jne 0x4ab990
test edx, edx
je 0x4ab9c2
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2c4]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
jne 0x4aba2b
jmp 0x4aa16f
push 0x11
push str.subfile_extension
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aba41
mov al, byte [esi + 0x11]
test al, al
je 0x4ab9e1
cmp al, 0x20
jne 0x4aba41
mov ecx, 0x11
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aba12
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
lea esp, [esp]
cmp dl, 0x20
jne 0x4aba41
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aba00
test ecx, ecx
je 0x4aba41
push ecx
lea eax, [ebx + 0x2c8]
push eax
push edi
call fcn.004ac8f0
add esp, 0xc
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x2bc], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xb
push str.header_file
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4abb8c
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4aba6b
cmp cl, 0x20
jne 0x4abb8c
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4aba9a
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4abb8c
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4aba80
test ecx, ecx
je 0x4abb8c
cmp dword [ebx + 0x37c], 0
je 0x4abaca
mov eax, dword [ebx + 0x370]
test eax, eax
je 0x4abab6
push eax
mov eax, dword [eax + 0x14]
call eax
add esp, 4
mov dword [ebx + 0x370], 0
mov dword [ebx + 0x37c], 0
push 4
push str.null
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4abb2c
mov al, byte [edi + 4]
test al, al
je 0x4abae9
cmp al, 0x20
jne 0x4abb2c
mov eax, 4
mov cl, byte [eax + edi]
test cl, cl
je 0x4abb07
cmp cl, 0x20
jne 0x4abb2c
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4abaf5
test eax, eax
je 0x4abb2c
cmp dword [ebx + 0x368], 0
jne 0x4aa16f
mov eax, dword [ebx + 0x364]
mov dword [ebx + 0x370], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi], 0x2a
jne 0x4abb54
cmp byte [edi + 1], 0x2e
jne 0x4abb54
mov ecx, dword [ebx + 0x364]
lea edx, [edi + 2]
call fcn.0040ae90
mov dword [ebx + 0x370], eax
test eax, eax
jne 0x4abb76
jmp 0x4aa16f
mov ecx, edi
call fcn.004dae30
mov ecx, dword [ebx + 0x364]
mov edx, edi
call fcn.0040afb0
mov dword [ebx + 0x370], eax
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x37c], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 9
push str.body_file
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4abd37
mov al, byte [esi + 9]
test al, al
je 0x4abbb3
cmp al, 0x20
jne 0x4abd37
mov ecx, 9
mov dl, byte [ecx + esi]
test dl, dl
je 0x4abbea
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
jmp 0x4abbd0
cmp dl, 0x20
jne 0x4abd37
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4abbd0
test ecx, ecx
je 0x4abd37
cmp dword [ebx + 0x380], 0
je 0x4abc1a
mov eax, dword [ebx + 0x374]
test eax, eax
je 0x4abc06
push eax
mov eax, dword [eax + 0x14]
call eax
add esp, 4
mov dword [ebx + 0x374], 0
mov dword [ebx + 0x380], 0
push 4
push str.null
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4abc72
mov al, byte [edi + 4]
test al, al
je 0x4abc39
cmp al, 0x20
jne 0x4abc72
mov eax, 4
mov cl, byte [eax + edi]
test cl, cl
je 0x4abc57
cmp cl, 0x20
jne 0x4abc72
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4abc45
test eax, eax
je 0x4abc72
cmp dword [ebx + 0x368], 0
jne 0x4aa16f
mov eax, dword [ebx + 0x364]
mov dword [ebx + 0x374], eax
jmp 0x4abcb9
cmp byte [edi], 0x2a
jne 0x4abc8d
cmp byte [edi + 1], 0x2e
jne 0x4abc8d
mov ecx, dword [ebx + 0x364]
lea edx, [edi + 2]
call fcn.0040ae90
jmp 0x4abca1
mov ecx, edi
call fcn.004dae30
mov ecx, dword [ebx + 0x364]
mov edx, edi
call fcn.0040afb0
mov dword [ebx + 0x374], eax
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x380], 1
cmp dword [ebx + 0x368], 0
je 0x4abcd1
cmp dword [ebx + 0x37c], 0
jne 0x4abcd1
mov dword [ebx + 0x370], eax
cmp dword [ebx + 0x3c], 0
jne 0x4ac60a
push eax
mov eax, dword [eax + 4]
call eax
add esp, 4
mov dword [ebx + 0x38], eax
mov ecx, eax
test eax, eax
je 0x4abcff
mov edx, dword [ebx + 0x44]
cmp eax, edx
jbe 0x4abcff
test edx, edx
je 0x4abcff
mov dword [ebx + 0x38], edx
mov ecx, edx
jmp 0x4abd05
mov eax, ecx
test ecx, ecx
je 0x4abd13
mov edx, dword [ebx + 0x40]
mov eax, ecx
cmp ecx, edx
jbe 0x4abd1b
sub eax, edx
mov dword [ebx + 0x38], eax
test eax, eax
je 0x4ac60a
mov ecx, dword [ebx + 0x48]
cmp eax, ecx
jbe 0x4ac60a
sub eax, ecx
mov dword [ebx + 0x38], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xb
push str.chunk_count
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4abdbf
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4abd59
cmp cl, 0x20
jne 0x4abdbf
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4abd82
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
mov edi, edi
cmp dl, 0x20
jne 0x4abdbf
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4abd70
test ecx, ecx
je 0x4abdbf
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2e4]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov ecx, ebx
mov dword [ebx + 0x308], 1
call fcn.004a8b60
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xb
push str.chunk_start
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4abe45
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4abde1
cmp cl, 0x20
jne 0x4abe45
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4abe08
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4abe45
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4abdf6
test ecx, ecx
je 0x4abe45
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2dc]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov ecx, ebx
mov dword [ebx + 0x300], 1
call fcn.004a8b60
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
push str.chunk_size
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac036
mov al, byte [esi + 0xa]
test al, al
je 0x4abe6c
cmp al, 0x20
jne 0x4ac036
mov ecx, 0xa
mov dl, byte [ecx + esi]
test dl, dl
je 0x4abe9e
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc], eax
cmp dl, 0x20
jne 0x4ac036
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4abe84
test ecx, ecx
je 0x4ac036
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2e0]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
cmp dword [ebx + 0x300], 0
mov dword [ebx + 0x304], 1
je 0x4ac60a
cmp dword [ebx + 0x308], 0
je 0x4ac60a
mov ecx, dword [ebx + 0x2e0]
test ecx, ecx
jne 0x4abf00
cmp dword [ebx + 0x30c], ecx
jne 0x4abf00
cmp dword [ebx + 0x310], ecx
je 0x4ac60a
mov esi, dword [ebx + 0x2dc]
cmp esi, dword [ebx + 0x38]
ja 0x4ac60a
mov edx, dword [ebx + 0x2e4]
test edx, edx
je 0x4ac60a
cmp dword [ebx + 0x374], 0
je 0x4ac60a
mov eax, dword [ebx + 0x2a4]
cmp eax, 1
jbe 0x4abf45
cmp eax, edx
jne 0x4abf45
mov eax, dword [ebx + 0x2a0]
mov dword [ebx + 0x2d8], eax
mov eax, dword [ebx + 0x2d8]
test eax, eax
jne 0x4abf5e
mov dword [ebx + 0x2d8], 1
mov eax, 1
cmp eax, edx
ja 0x4ac60a
dec eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x2c], eax
sub esp, 0x30
mov eax, dword [ebx + 0x2e8]
mov ecx, 0xc
mov dword [ebp - 0x38], eax
mov edi, esp
mov eax, dword [ebx + 0x2ec]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x2f0]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x2f4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x2f8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x2fc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x30c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x310]
mov dword [ebp - 0x40], esi
lea esi, [ebp - 0x40]
mov dword [ebp - 0x30], edx
mov edx, dword [ebx + 0x380]
mov dword [ebp - 0x14], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x374]
call fcn.004a7440
add esp, 0x30
test eax, eax
je 0x4ac60a
cmp dword [ebx + 0x3c], 0
mov dword [ebx + 0x374], eax
mov dword [ebx + 0x380], 1
mov dword [ebx + 0x300], 0
mov dword [ebx + 0x304], 0
mov dword [ebx + 0x308], 0
jne 0x4ac60a
push eax
mov eax, dword [eax + 4]
call eax
mov dword [ebx + 0x38], eax
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xc
push str.chunk_number
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac08d
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
test al, al
je 0x4ac057
cmp al, 0x20
jne 0x4ac08d
mov ecx, 0xc
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac082
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
lea esp, [esp]
cmp dl, 0x20
jne 0x4ac08d
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ac070
test ecx, ecx
je 0x4ac08d
lea eax, [ebx + 0x2d8]
jmp 0x4ac5f0
push 0x11
push str.chunk_header_size
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac0dd
mov al, byte [esi + 0x11]
test al, al
je 0x4ac0ac
cmp al, 0x20
jne 0x4ac0dd
mov ecx, 0x11
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac0d2
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov edi, edi
cmp dl, 0x20
jne 0x4ac0dd
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ac0c0
test ecx, ecx
je 0x4ac0dd
lea eax, [ebx + 0x2e8]
jmp 0x4ac5f0
push 0xf
push str.chunk_data_size
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac12d
mov al, byte [esi + 0xf]
test al, al
je 0x4ac0fc
cmp al, 0x20
jne 0x4ac12d
mov ecx, 0xf
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac122
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov edi, edi
cmp dl, 0x20
jne 0x4ac12d
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ac110
test ecx, ecx
je 0x4ac12d
lea eax, [ebx + 0x2ec]
jmp 0x4ac5f0
push 0xb
push str.chunk_value
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac17d
mov eax, dword [ebp - 8]
mov cl, byte [eax]
test cl, cl
je 0x4ac14f
cmp cl, 0x20
jne 0x4ac17d
mov ecx, 0xb
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac172
mov dword [ebp - 8], eax
mov edi, edi
cmp dl, 0x20
jne 0x4ac17d
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ac160
test ecx, ecx
je 0x4ac17d
lea eax, [ebx + 0x2f0]
jmp 0x4ac5f0
push 0x11
push str.chunk_size_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac202
mov al, byte [esi + 0x11]
test al, al
je 0x4ac19c
cmp al, 0x20
jne 0x4ac202
mov ecx, 0x11
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac1c2
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
mov edi, edi
cmp dl, 0x20
jne 0x4ac202
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ac1b0
test ecx, ecx
je 0x4ac202
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2f4]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x304], 1
mov eax, 1
mov dword [ebx + 0x30c], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x16
push str.chunk_data_size_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac285
mov al, byte [esi + 0x16]
test al, al
je 0x4ac221
cmp al, 0x20
jne 0x4ac285
mov ecx, 0x16
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac245
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
cmp dl, 0x20
jne 0x4ac285
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ac233
test ecx, ecx
je 0x4ac285
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x2f8]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x304], 1
mov eax, 1
mov dword [ebx + 0x310], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10
push str.chunk_endianness
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac2df
mov al, byte [esi + 0x10]
test al, al
je 0x4ac2a4
cmp al, 0x20
jne 0x4ac2df
mov ecx, 0x10
mov dl, byte [ecx + esi]
test dl, dl
je 0x4ac2c8
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
cmp dl, 0x20
jne 0x4ac2df
mov dl, byte [ecx + esi + 1]
inc ecx
test dl, dl
jne 0x4ac2b6
test ecx, ecx
je 0x4ac2df
lea eax, [ebx + 0x2fc]
mov edx, edi
push 0
push eax
mov ecx, ebx
call fcn.004a9e70
jmp 0x4ac5ff
push 0xb
push str.base_offset
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac32d
mov eax, dword [ebp - 8]
mov al, byte [eax]
test al, al
je 0x4ac300
cmp al, 0x20
jne 0x4ac32d
mov eax, 0xb
mov cl, byte [eax + esi]
test cl, cl
je 0x4ac322
lea esp, [esp]
cmp cl, 0x20
jne 0x4ac32d
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4ac310
test eax, eax
je 0x4ac32d
lea eax, [ebx + 0x314]
jmp 0x4ac5f0
push 0xa
push str.name_table
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
je 0x4ac349
lea eax, [esi + 0xa]
mov dword [ebp - 0x10], eax
jmp 0x4ac386
mov al, byte [esi + 0xa]
lea ecx, [esi + 0xa]
test al, al
je 0x4ac35c
cmp al, 0x20
je 0x4ac35c
mov dword [ebp - 0x10], ecx
jmp 0x4ac386
mov eax, 0xa
mov dword [ebp - 0x10], ecx
mov cl, byte [eax + esi]
test cl, cl
je 0x4ac436
nop
cmp cl, 0x20
jne 0x4ac386
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4ac370
test eax, eax
jne 0x4ac436
push 0xa
push str.multi_txth
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac3d3
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
test al, al
je 0x4ac3a7
cmp al, 0x20
jne 0x4ac3d3
mov eax, 0xa
mov cl, byte [eax + esi]
test cl, cl
je 0x4ac3c5
cmp cl, 0x20
jne 0x4ac3d3
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4ac3b3
test eax, eax
je 0x4ac3d3
mov edx, edi
mov ecx, ebx
call fcn.004acdc0
jmp 0x4ac602
push 5
push str.debug
push esi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa16f
mov al, byte [esi + 5]
test al, al
je 0x4ac3fa
cmp al, 0x20
jne 0x4aa16f
mov eax, 5
mov cl, byte [eax + esi]
test cl, cl
je 0x4ac420
cmp cl, 0x20
jne 0x4aa16f
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x4ac406
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x384], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, edi
mov ecx, ebx
call fcn.004ac9c0
jmp 0x4ac602
push 7
push str.samples
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac495
mov al, byte [edi + 7]
test al, al
je 0x4ac463
cmp al, 0x20
jne 0x4ac495
mov eax, 7
mov cl, byte [eax + edi]
test cl, cl
je 0x4ac482
nop
cmp cl, 0x20
jne 0x4ac495
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4ac470
test eax, eax
je 0x4ac495
mov dword [ebx + 0x4c], 0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 5
push str.bytes
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4ac4e5
mov al, byte [edi + 5]
test al, al
je 0x4ac4b4
cmp al, 0x20
jne 0x4ac4e5
mov eax, 5
mov cl, byte [eax + edi]
test cl, cl
je 0x4ac4d2
cmp cl, 0x20
jne 0x4ac4e5
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4ac4c0
test eax, eax
je 0x4ac4e5
mov dword [ebx + 0x4c], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 6
push str.blocks
push edi
call fcn.0050cdc0
add esp, 0xc
test eax, eax
jne 0x4aa16f
mov al, byte [edi + 6]
test al, al
je 0x4ac50c
cmp al, 0x20
jne 0x4aa16f
mov eax, 6
mov cl, byte [eax + edi]
test cl, cl
je 0x4ac53a
jmp 0x4ac520
cmp cl, 0x20
jne 0x4aa16f
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4ac520
test eax, eax
je 0x4aa16f
mov dword [ebx + 0x4c], 2
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x370]
lea eax, [ebx + 0x40]
push eax
push edi
mov edx, ebx
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
cmp dword [ebx + 0x3c], 0
jne 0x4ac60a
mov eax, dword [ebx + 0x2a4]
lea esi, [ebx + 0x44]
mov ecx, dword [ebx + 0x38]
mov dword [esi], ecx
cmp eax, 1
jbe 0x4ac5c1
mov edx, dword [ebx + 0x2a0]
cmp edx, eax
jae 0x4ac5c1
mov ecx, dword [ebx + 0x370]
lea eax, [edx + 1]
push esi
push edi
mov edx, ebx
mov dword [ebx + 0x2a0], eax
call fcn.004acee0
dec dword [ebx + 0x2a0]
add esp, 8
mov ecx, dword [esi]
cmp ecx, dword [ebx + 0x40]
jae 0x4ac5c1
mov dword [esi], 0
xor ecx, ecx
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x4ac60a
cmp eax, ecx
jbe 0x4ac5d5
test ecx, ecx
je 0x4ac5d5
mov dword [ebx + 0x38], ecx
mov eax, ecx
mov ecx, dword [ebx + 0x40]
cmp eax, ecx
jbe 0x4ac60a
sub eax, ecx
mov dword [ebx + 0x38], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x18]
mov ecx, dword [ebx + 0x370]
mov edx, ebx
push eax
push edi
call fcn.004acee0
add esp, 8
test eax, eax
je 0x4aa16f
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret