Function at 0x403498
Capabilities:
Read file on windows

Disassembly:
push edi
push esi
push ebp
push ebx
push ecx
push edx
push eax
mov eax, 0x1278
call fcn.004475a0
mov ecx, dword [esp + 0x1280]
mov edx, dword [esp + 0x127c]
mov eax, dword [esp + 0x1278]
mov dword [esp + 0x1278], ecx
mov ebp, edx
mov ebx, eax
mov eax, dword [esp + 0x12a4]
mov dword [esp + 0x127c], eax
mov eax, dword [0x482908]
mov dword [esp + 0x1280], eax
xor eax, eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
call fcn.0040eed0
lea eax, [esp + 0x1210]
push ebx
push 4
push 1
push eax
call fcn.00446f60
add esp, 0x10
cmp eax, 4
jne 0x403aff
movzx eax, byte [esp + 0x1210]
cmp eax, 0x49
jne 0x40365f
movzx eax, byte [esp + 0x1211]
cmp eax, 0x44
jne 0x40365f
movzx eax, byte [esp + 0x1212]
cmp eax, 0x33
jne 0x40365f
mov eax, dword [0x49e848]
cmp eax, 0xa
jge 0x40356e
push str.ID3v2_found._Be_aware_that_the_ID3_tag_is_currently_lost_when_transcoding._n
call fcn.00401c30
pop ecx
lea eax, [esp + 0x1210]
push ebx
push 6
push 1
push eax
call fcn.00446f60
add esp, 0x10
cmp eax, 6
je 0x4035a4
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
movzx eax, byte [esp + 0x1212]
and eax, 0x7f
mov dword [esp + 0x20], eax
mov edx, eax
mov byte [esp + 0x1212], al
movzx eax, byte [esp + 0x1213]
and eax, 0x7f
shl edx, 0x15
mov ecx, 1
mov dword [esp + 0x1274], eax
mov byte [esp + 0x1213], al
movzx eax, byte [esp + 0x1214]
and eax, 0x7f
mov dword [esp + 0x1c], eax
mov byte [esp + 0x1214], al
movzx eax, byte [esp + 0x1215]
and eax, 0x7f
mov dword [esp + 0x14], eax
mov byte [esp + 0x1215], al
mov eax, dword [esp + 0x1274]
shl eax, 0xe
add edx, eax
mov eax, dword [esp + 0x1c]
shl eax, 7
add eax, dword [esp + 0x14]
add edx, eax
mov eax, ebx
call fcn.004024a4
lea eax, [esp + 0x1210]
push ebx
push 4
push 1
push eax
call fcn.00446f60
add esp, 0x10
cmp eax, 4
je 0x40365f
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
lea esi, [esp + 0x1210]
mov edi, 0x45a7e0
mov ecx, 4
xor eax, eax
test ecx, ecx
je 0x403687
mov al, byte [esi]
sub al, byte [edi]
jne 0x403687
add esi, 1
add edi, 1
sub ecx, 1
jne 0x403676
seta al
setb cl
sub al, cl
movsx eax, al
test eax, eax
jne 0x403748
lea eax, [esp + 0x1210]
push ebx
push 2
push 1
push eax
call fcn.00446f60
add esp, 0x10
cmp eax, 2
jne 0x40372c
movzx edx, byte [esp + 0x1210]
mov esi, dword [0x49e848]
lea eax, [esp + 0x1211]
movzx ecx, byte [eax]
shl ecx, 8
cmp esi, 0xa
mov dword [esp + 0x1274], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
lea eax, [edx + ecx]
jge 0x4036f4
push eax
push str.Album_ID_found.__length_i__n
call fcn.00401c30
add esp, 8
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
lea edx, [esi + edi - 6]
mov eax, ebx
mov ecx, 1
call fcn.004024a4
lea eax, [esp + 0x1210]
push ebx
push 4
push 1
push eax
call fcn.00446f60
add esp, 0x10
cmp eax, 4
jne 0x403c1c
jmp 0x403756
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
lea eax, [esp + 0x1211]
mov dword [esp + 0x1274], eax
movzx eax, byte [esp + 0x1210]
cmp eax, 0xff
je 0x403786
mov esi, dword [esp + 0x1274]
lea edi, [esp + 0x1212]
movzx eax, byte [esi]
mov dword [esp + 0x1c], eax
lea esi, [esp + 0x1213]
jmp 0x403826
mov esi, dword [esp + 0x1274]
movzx eax, byte [esi]
mov dword [esp + 0x1c], eax
and eax, 0xe0
cmp eax, 0xe0
jne 0x403818
mov edx, dword [esp + 0x1c]
and edx, 0x18
cmp edx, 8
je 0x403818
mov eax, dword [esp + 0x1c]
and eax, 6
cmp eax, 2
je 0x403800
cmp eax, 4
jne 0x4037dc
mov ecx, dword [0x49e864]
cmp ecx, 5
je 0x4037cd
cmp ecx, 7
jne 0x403818
mov dword [0x49e864], 5
jmp 0x403964
cmp eax, 6
jne 0x403818
mov ecx, dword [0x49e864]
cmp ecx, 4
je 0x4037f1
cmp ecx, 7
jne 0x403818
mov dword [0x49e864], 4
jmp 0x403964
mov ecx, dword [0x49e864]
cmp ecx, 6
je 0x40395a
cmp ecx, 7
je 0x40395a
lea edi, [esp + 0x1212]
lea esi, [esp + 0x1213]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x1274]
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x1210], al
push ecx
movzx eax, byte [edi]
mov byte [ebx], al
movzx edx, byte [esi]
mov byte [edi], dl
mov ebp, 1
push ebp
push ebp
push esi
call fcn.00446f60
add esp, 0x10
cmp eax, 1
jne 0x403be4
movzx eax, byte [esp + 0x1210]
cmp eax, 0xff
je 0x40387c
movzx eax, byte [ebx]
jmp 0x403839
movzx eax, byte [ebx]
mov edx, eax
and edx, 0xe0
cmp edx, 0xe0
jne 0x403839
mov ecx, eax
and ecx, 0x18
cmp ecx, 8
je 0x403839
mov edx, eax
and edx, 6
cmp edx, 2
je 0x4038ed
cmp edx, 4
jne 0x4038c4
mov ebp, dword [0x49e864]
cmp ebp, 5
je 0x4038b8
cmp ebp, 7
jne 0x403839
mov dword [0x49e864], 5
jmp 0x40390b
cmp edx, 6
jne 0x403839
mov ebp, dword [0x49e864]
cmp ebp, 4
je 0x4038e1
cmp ebp, 7
jne 0x403839
mov dword [0x49e864], 4
jmp 0x40390b
mov ebp, dword [0x49e864]
cmp ebp, 6
je 0x403901
cmp ebp, 7
jne 0x403839
mov dword [0x49e864], 6
movzx ebp, byte [edi]
mov dword [esp + 0x14], ebp
and ebp, 0xf0
cmp ebp, 0xf0
mov dword [esp + 0x20], ebp
je 0x403839
mov ebp, dword [esp + 0x14]
and ebp, 0xc
cmp ebp, 0xc
je 0x403839
cmp ecx, 0x18
je 0x403b1b
movzx edx, byte [esi]
and edx, 3
cmp edx, 2
je 0x403839
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
jmp 0x4039bf
mov dword [0x49e864], 6
lea edi, [esp + 0x1212]
movzx ecx, byte [edi]
mov dword [esp + 0x10], ecx
and ecx, 0xf0
cmp ecx, 0xf0
mov dword [esp + 0x20], ecx
je 0x403ba0
mov ecx, dword [esp + 0x10]
and ecx, 0xc
cmp ecx, 0xc
je 0x403ba0
cmp edx, 0x18
je 0x403b64
lea esi, [esp + 0x1213]
movzx eax, byte [esi]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
and eax, 3
cmp eax, 2
je 0x403826
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4039e3
mov eax, dword [0x49e848]
cmp eax, 0xa
jge 0x4039dc
push str.Input_file_is_freeformat._n
call fcn.00401c30
pop ecx
mov esi, 1
jmp 0x4039e5
xor esi, esi
mov edi, dword [esp + 0x127c]
lea ecx, [esp + 0x1210]
lea edx, [esp + 0x910]
lea eax, [esp + 0x10]
push edi
mov edi, dword [esp + 0x127c]
push edi
push ebp
push eax
push edx
push 4
push ecx
call fcn.0040eab0
add esp, 0x1c
cmp eax, 0xffffffff
je 0x403c00
mov eax, dword [ebp]
test eax, eax
jne 0x403a89
mov dword [esp + 0x1274], esi
mov esi, dword [esp + 0x127c]
lea eax, [esp + 0x1210]
push ebx
push 0x64
push 1
push eax
call fcn.00446f60
add esp, 0x10
cmp eax, 0x64
jne 0x403bc8
lea ecx, [esp + 0x910]
lea edx, [esp + 0x10]
push esi
push edi
push ebp
push edx
push ecx
push eax
lea eax, [esp + 0x1228]
push eax
call fcn.0040eab0
add esp, 0x1c
cmp eax, 0xffffffff
je 0x403bac
mov eax, dword [ebp]
test eax, eax
je 0x403a33
mov esi, dword [esp + 0x1274]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x403ad8
test esi, esi
jne 0x403ad8
mov eax, dword [0x49e848]
cmp eax, 0xa
jl 0x403b54
mov esi, dword [esp + 0x127c]
mov ecx, dword [esp + 0x1278]
mov dword [esp + 0xc], esi
mov eax, ebx
mov edx, ebp
call fcn.00403498
mov ebx, eax
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, ebx
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [ebp + 0x20]
test eax, eax
jg 0x403ae6
mov dword [ebp + 0x1c], 0xffffffff
mov ecx, dword [esp + 0x1280]
call fcn.00446571
xor eax, eax
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
cmp edx, 4
jne 0x403941
mov ebp, dword [esp + 0x14]
movzx ecx, byte [esi]
mov dword [esp + 0x10], ecx
shr ebp, 4
movsx edx, byte [ebp + 0x45a36c]
shr ecx, 6
mov ebp, 1
shl ebp, cl
test ebp, edx
mov edx, dword [esp + 0x10]
je 0x403944
jmp 0x403839
push str.fail_to_sync..._n
call fcn.00401d80
pop ecx
jmp 0x403aa2
cmp eax, 4
jne 0x4039a1
mov edx, dword [esp + 0x10]
lea esi, [esp + 0x1213]
movzx ecx, byte [esi]
mov dword [esp + 0x14], ecx
shr edx, 4
movsx eax, byte [edx + 0x45a36c]
shr ecx, 6
mov edx, 1
shl edx, cl
test edx, eax
jne 0x403826
jmp 0x4039af
lea esi, [esp + 0x1213]
jmp 0x403826
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret
mov ecx, dword [esp + 0x1280]
call fcn.00446571
mov eax, 0xffffffff
add esp, 0x1284
pop ebx
pop ebp
pop esi
pop edi
ret