Function at 0x5ea0d0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x654af3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x170
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x30], edi
call fcn.005eaf80
mov eax, dword [edi + 0x1c]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x188], ebx
jg 0x5ea141
jl 0x5ea119
cmp dword [edi + 0x18], 0x80
jae 0x5ea141
mov esi, dword [edi + 0x14]
lea ecx, [esp + 0x38]
neg esi
sbb esi, esi
mov dword [esp + 0x188], 0xffffffff
and esi, 0xfffffffe
add esi, 3
call fcn.005eb080
mov eax, esi
jmp 0x5ea944
mov eax, dword [edi + 0x10]
push 2
push ebx
push 0xffffffffffffff80
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
or ebp, 0xffffffff
cmp eax, ebp
jne 0x5ea16e
call esi
cmp eax, ebx
je 0x5ea16e
push eax
push str.SetFilePointer___error__ld_in_CFormatParsing::GetLastMp3___r_n
jmp 0x5ea928
mov eax, dword [edi + 0x10]
lea ecx, [esp + 0x34]
push ebx
push ecx
lea edx, [esp + 0xf0]
push 0x80
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp eax, ebx
je 0x5ea920
cmp dword [esp + 0x34], ebx
je 0x5ea920
lea ecx, [esp + 0x38]
call fcn.005eb0f0
cmp eax, 0x51
jne 0x5ea92f
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], ebx
mov word [esp + 0x20], bx
lea ecx, [esp + 0x88]
mov byte [esp + 0x188], 1
call fcn.0061faf4
mov ecx, dword [esp + 0x88]
cmp dword [ecx - 8], ebx
je 0x5ea39a
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebx
mov word [esp + 0x14], bx
mov ebp, dword [0x6fca90]
mov esi, dword [0x6fda34]
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], 2
call fcn.00401070
cmp esi, ebx
je 0x5ea25b
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5ea25b
push ebx
push ebx
push 0xffffffffffffffff
push esi
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x5ea25b
lea edx, [eax + eax + 2]
push edx
call fcn.00622acb
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x5ea263
mov ecx, dword [esp + 0x18]
push ecx
push eax
push 0xffffffffffffffff
push esi
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x10]
cmp edi, ebx
jne 0x5ea26b
lea edi, [esp + 0x14]
cmp edi, ebx
je 0x5ea2e9
push edi
call fcn.00609a4e
add esp, 4
test eax, eax
je 0x5ea2e9
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea28d
push eax
call fcn.00609a4e
add esp, 4
mov esi, eax
jmp 0x5ea28f
xor esi, esi
push edi
call fcn.00609a4e
add eax, esi
lea edx, [eax + eax + 2]
push edx
call fcn.00622acb
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x5ea2e9
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea2c5
push eax
push esi
call fcn.00609a95
push edi
push esi
call fcn.00609a6b
add esp, 0x10
jmp 0x5ea2cf
push edi
push esi
call fcn.00609a95
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.00401070
push esi
mov dword [esp + 0x20], esi
call fcn.00609a4e
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x88]
push ebx
push eax
lea ecx, [esp + 0x18]
call fcn.004027e0
mov edi, dword [esp + 0x10]
cmp edi, ebx
jne 0x5ea30b
lea edi, [esp + 0x14]
cmp edi, ebx
je 0x5ea389
push edi
call fcn.00609a4e
add esp, 4
test eax, eax
je 0x5ea389
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea32d
push eax
call fcn.00609a4e
add esp, 4
mov esi, eax
jmp 0x5ea32f
xor esi, esi
push edi
call fcn.00609a4e
add eax, esi
lea ecx, [eax + eax + 2]
push ecx
call fcn.00622acb
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x5ea389
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea365
push eax
push esi
call fcn.00609a95
push edi
push esi
call fcn.00609a6b
add esp, 0x10
jmp 0x5ea36f
push edi
push esi
call fcn.00609a95
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.00401070
push esi
mov dword [esp + 0x20], esi
call fcn.00609a4e
add esp, 4
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], 1
call fcn.00401070
lea ecx, [esp + 0x90]
call fcn.0061faf4
mov edx, dword [esp + 0x90]
cmp dword [edx - 8], ebx
je 0x5ea570
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebx
mov word [esp + 0x14], bx
mov ebp, dword [0x6fca90]
mov esi, dword [0x6fda30]
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], 3
call fcn.00401070
cmp esi, ebx
je 0x5ea431
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5ea431
push ebx
push ebx
push 0xffffffffffffffff
push esi
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x5ea431
lea eax, [eax + eax + 2]
push eax
call fcn.00622acb
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x5ea439
mov ecx, dword [esp + 0x18]
push ecx
push eax
push 0xffffffffffffffff
push esi
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x10]
cmp edi, ebx
jne 0x5ea441
lea edi, [esp + 0x14]
cmp edi, ebx
je 0x5ea4bf
push edi
call fcn.00609a4e
add esp, 4
test eax, eax
je 0x5ea4bf
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea463
push eax
call fcn.00609a4e
add esp, 4
mov esi, eax
jmp 0x5ea465
xor esi, esi
push edi
call fcn.00609a4e
add eax, esi
lea edx, [eax + eax + 2]
push edx
call fcn.00622acb
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x5ea4bf
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea49b
push eax
push esi
call fcn.00609a95
push edi
push esi
call fcn.00609a6b
add esp, 0x10
jmp 0x5ea4a5
push edi
push esi
call fcn.00609a95
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.00401070
push esi
mov dword [esp + 0x20], esi
call fcn.00609a4e
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x90]
push ebx
push eax
lea ecx, [esp + 0x18]
call fcn.004027e0
mov edi, dword [esp + 0x10]
cmp edi, ebx
jne 0x5ea4e1
lea edi, [esp + 0x14]
cmp edi, ebx
je 0x5ea55f
push edi
call fcn.00609a4e
add esp, 4
test eax, eax
je 0x5ea55f
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea503
push eax
call fcn.00609a4e
add esp, 4
mov esi, eax
jmp 0x5ea505
xor esi, esi
push edi
call fcn.00609a4e
add eax, esi
lea ecx, [eax + eax + 2]
push ecx
call fcn.00622acb
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x5ea55f
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea53b
push eax
push esi
call fcn.00609a95
push edi
push esi
call fcn.00609a6b
add esp, 0x10
jmp 0x5ea545
push edi
push esi
call fcn.00609a95
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.00401070
push esi
mov dword [esp + 0x20], esi
call fcn.00609a4e
add esp, 4
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], 1
call fcn.00401070
lea ecx, [esp + 0x8c]
call fcn.0061faf4
mov edx, dword [esp + 0x8c]
cmp dword [edx - 8], ebx
je 0x5ea744
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebx
mov word [esp + 0x14], bx
mov ebp, dword [0x6fca90]
mov esi, dword [0x6fda2c]
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], 4
call fcn.00401070
cmp esi, ebx
je 0x5ea605
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5ea605
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
push ebx
push 0xffffffffffffffff
push esi
push ebx
push ebp
call edi
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x5ea605
lea eax, [eax + eax + 2]
push eax
call fcn.00622acb
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x5ea60d
mov ecx, dword [esp + 0x18]
push ecx
push eax
push 0xffffffffffffffff
push esi
push ebx
push ebp
call edi
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x10]
cmp edi, ebx
jne 0x5ea615
lea edi, [esp + 0x14]
cmp edi, ebx
je 0x5ea693
push edi
call fcn.00609a4e
add esp, 4
test eax, eax
je 0x5ea693
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea637
push eax
call fcn.00609a4e
add esp, 4
mov esi, eax
jmp 0x5ea639
xor esi, esi
push edi
call fcn.00609a4e
add eax, esi
lea edx, [eax + eax + 2]
push edx
call fcn.00622acb
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x5ea693
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea66f
push eax
push esi
call fcn.00609a95
push edi
push esi
call fcn.00609a6b
add esp, 0x10
jmp 0x5ea679
push edi
push esi
call fcn.00609a95
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.00401070
push esi
mov dword [esp + 0x20], esi
call fcn.00609a4e
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x8c]
push ebx
push eax
lea ecx, [esp + 0x18]
call fcn.004027e0
mov edi, dword [esp + 0x10]
cmp edi, ebx
jne 0x5ea6b5
lea edi, [esp + 0x14]
cmp edi, ebx
je 0x5ea733
push edi
call fcn.00609a4e
add esp, 4
test eax, eax
je 0x5ea733
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea6d7
push eax
call fcn.00609a4e
add esp, 4
mov esi, eax
jmp 0x5ea6d9
xor esi, esi
push edi
call fcn.00609a4e
add eax, esi
lea ecx, [eax + eax + 2]
push ecx
call fcn.00622acb
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x5ea733
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x5ea70f
push eax
push esi
call fcn.00609a95
push edi
push esi
call fcn.00609a6b
add esp, 0x10
jmp 0x5ea719
push edi
push esi
call fcn.00609a95
add esp, 8
lea ecx, [esp + 0x1c]
call fcn.00401070
push esi
mov dword [esp + 0x20], esi
call fcn.00609a4e
add esp, 4
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], 1
call fcn.00401070
lea edx, [esp + 0x80]
lea ecx, [esp + 0x28]
push edx
call fcn.00622df8
mov bl, 5
lea ecx, [esp + 0x28]
mov byte [esp + 0x188], bl
call fcn.0061faf4
mov eax, dword [esp + 0x28]
mov ecx, dword [eax - 8]
test ecx, ecx
je 0x5ea7cf
lea ecx, [esp + 0x1c]
call fcn.00401f10
push eax
call fcn.00609a4e
add esp, 4
test eax, eax
je 0x5ea796
push 0x6f0f0c
lea ecx, [esp + 0x20]
call fcn.0046c750
mov ecx, dword [esp + 0x28]
push ecx
lea ecx, [esp + 0x14]
call fcn.00469830
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], 6
call fcn.00401f10
push eax
lea ecx, [esp + 0x20]
call fcn.0046c750
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], bl
call fcn.00401070
lea ecx, [esp + 0x94]
call fcn.0061faf4
mov edx, dword [esp + 0x94]
mov eax, dword [edx - 8]
test eax, eax
je 0x5ea859
lea ecx, [esp + 0x10]
call fcn.004027c0
mov eax, dword [0x6fca90]
mov ecx, dword [0x6fda28]
push eax
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x190], 7
call fcn.004027e0
lea ecx, [esp + 0x10]
call fcn.00401f10
push eax
lea ecx, [esp + 0x20]
call fcn.0046c750
mov edx, dword [esp + 0x94]
push 0
push edx
lea ecx, [esp + 0x18]
call fcn.004027e0
lea ecx, [esp + 0x10]
call fcn.00401f10
push eax
lea ecx, [esp + 0x20]
call fcn.0046c750
lea ecx, [esp + 0x10]
mov byte [esp + 0x188], bl
call fcn.00401070
mov eax, dword [0x6f7b78]
mov dword [esp + 0x2c], eax
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], 8
call fcn.00401f10
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push eax
push 0
push 0xfde9
call edi
mov esi, eax
test esi, esi
jle 0x5ea8d6
push esi
lea ecx, [esp + 0x30]
call fcn.00623157
push 0
push 0
push esi
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x30]
call fcn.00401f10
push eax
push 0
push 0xfde9
call edi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push ecx
push 0x6c910c
mov byte [eax + 0xc], 1
add eax, 8
push eax
call fcn.0061fae1
add esp, 0xc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x188], bl
call fcn.00622d8a
lea ecx, [esp + 0x28]
mov byte [esp + 0x188], 1
call fcn.00622d8a
lea ecx, [esp + 0x1c]
mov byte [esp + 0x188], 0
call fcn.00401070
lea ecx, [esp + 0x38]
mov dword [esp + 0x188], 0xffffffff
call fcn.005eb080
xor eax, eax
jmp 0x5ea944
call esi
push eax
push str.ReadFile___error__ld_in_CFormatParsing::GetLastMp3___r_n
mov ecx, edi
call fcn.005ea960
lea ecx, [esp + 0x38]
mov dword [esp + 0x188], ebp
call fcn.005eb080
mov eax, 1
mov ecx, dword [esp + 0x180]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x17c
ret