Function at 0x110086f0
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x2518
call fcn.11019dc0
mov eax, dword [esp + 0x251c]
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp eax, edi
je 0x110089d0
cmp byte [eax], 0
je 0x110089d0
push edi
push 0x80
push 3
push edi
push 1
push 0x80000000
push eax
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x11008f1e
lea eax, [esp + 0x10]
push edi
push eax
lea ecx, [esp + 0x530]
push 0x2000
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov al, byte [esp + 0x528]
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp al, 0x49
jne 0x11008838
cmp byte [esp + 0x529], 0x44
jne 0x11008838
cmp byte [esp + 0x52a], 0x33
jne 0x11008838
cmp byte [esp + 0x52b], 0xff
je 0x11008838
cmp byte [esp + 0x52c], 0xff
je 0x11008838
mov eax, dword [esp + 0x52e]
cmp al, 0x80
jae 0x11008838
mov ebx, dword [esp + 0x52f]
cmp bl, 0x80
jae 0x11008838
mov edx, dword [esp + 0x530]
cmp dl, 0x80
jae 0x11008838
mov ecx, dword [esp + 0x531]
cmp cl, 0x80
jae 0x11008838
and eax, 0xff
and ebx, 0xff
shl eax, 7
add eax, ebx
and edx, 0xff
shl eax, 7
add eax, edx
push 2
shl eax, 7
and ecx, 0xff
push edi
push edi
push ebp
lea ebx, [eax + ecx + 0xa]
call esi
cmp ebx, eax
jae 0x11008815
mov edi, ebx
mov dword [esp + 0x18], edi
push 0
push 0
push edi
push ebp
call esi
lea edx, [esp + 0x10]
push 0
push edx
lea eax, [esp + 0x530]
push 0x2000
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x2c]
mov dword [esp + 0x28], 0
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x528]
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.11004450
add esp, 8
test eax, eax
je 0x110088bd
test byte [esp + 0x30], 1
je 0x110088bd
mov edi, dword [esp + 0x2534]
test edi, edi
je 0x110088af
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
push eax
neg ecx
sbb ecx, ecx
and ecx, 0x240
add ecx, 0x240
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ecx, [eax*8 - 0x1f4]
mov dword [edi], ecx
push 2
push 0
push 0xffffffffffffff80
push ebp
call esi
jmp 0x110089ac
mov eax, dword [esp + 0x10]
sub eax, 4
mov edx, eax
dec eax
test edx, edx
mov dword [esp + 0x10], eax
jl 0x11008977
lea eax, [esp + 0x52a]
xor ecx, ecx
xor edx, edx
mov ch, byte [eax - 2]
mov dl, byte [eax]
mov cl, byte [eax - 1]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
inc eax
mov edx, ecx
mov esi, ecx
mov edi, ecx
mov ebx, ecx
shr edx, 0xc
shr esi, 0x13
shr edi, 0x11
and ebx, 0xffe00000
and edx, 0xf
and esi, 1
and edi, 3
cmp ebx, 0xffe00000
jne 0x11008947
cmp edx, 0xf
je 0x11008947
test edx, edx
je 0x11008947
test edi, edi
je 0x11008947
mov ebx, ecx
and ebx, 0xc00
cmp ebx, 0xc00
je 0x11008947
test ecx, 0x100000
jne 0x11008958
test esi, esi
je 0x11008958
mov ecx, dword [esp + 0x10]
mov edx, ecx
dec ecx
test edx, edx
mov dword [esp + 0x10], ecx
jge 0x110088da
jmp 0x11008971
lea eax, [esi + esi*2]
sub eax, edi
lea eax, [eax + eax*2]
lea ecx, [edx + eax*4]
add eax, ecx
movsx edx, word [eax*2 + 0x11028b52]
mov dword [esp + 0x14], edx
mov esi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 2
push 0
push 0xffffffffffffff80
push ebp
call esi
mov edi, dword [esp + 0x18]
mov ecx, 0x80
sub ecx, edi
add eax, ecx
mov ecx, dword [esp + 0x14]
test ecx, ecx
mov dword [esp + 0x1c], eax
je 0x110089ac
mov esi, dword [esp + 0x2534]
test esi, esi
je 0x110089ac
shl eax, 3
cdq
idiv ecx
mov dword [esi], eax
lea edx, [esp + 0x1c]
push 0
push edx
lea eax, [esp + 0xb0]
push 0x80
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x11008a17
mov ecx, dword [esp + 0x2534]
cmp ecx, edi
je 0x110089f2
mov eax, dword [0x11026078]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
lea eax, [edx*8 - 0x1f4]
mov dword [ecx], eax
cmp dword [0x11048e24], edi
jne 0x11008a0f
mov ecx, 0x20
mov esi, 0x11048e40
lea edi, [esp + 0xa8]
rep movsd dword es:[edi], dword [esi]
jmp 0x11008a17
mov byte [esp + 0xa8], 0
mov ecx, 3
mov edi, 0x11026234
lea esi, [esp + 0xa8]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x11008f1e
mov esi, 0x110270b8
mov eax, str._1____2
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x11008a64
test cl, cl
je 0x11008a60
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x11008a64
add eax, 2
add esi, 2
test cl, cl
jne 0x11008a3c
xor eax, eax
jmp 0x11008a69
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x11008f1e
mov al, byte [str._1____2]
test al, al
je 0x11008f1e
mov ecx, 7
lea esi, [esp + 0xab]
lea edi, [esp + 0x68]
mov eax, 0x1d
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cmp byte [esp + eax + 0x68], 0x20
jne 0x11008aa1
dec eax
jns 0x11008a97
mov ecx, 7
lea esi, [esp + 0xc9]
lea edi, [esp + 0x48]
mov byte [esp + eax + 0x69], 0
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, 0x1d
cmp byte [esp + eax + 0x48], 0x20
jne 0x11008ac9
dec eax
jns 0x11008abf
mov ecx, 7
lea esi, [esp + 0xe7]
lea edi, [esp + 0x28]
mov byte [esp + eax + 0x49], 0
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, 0x1d
cmp byte [esp + eax + 0x28], 0x20
jne 0x11008af1
dec eax
jns 0x11008ae7
mov byte [esp + eax + 0x29], 0
mov eax, dword [esp + 0x105]
mov dword [esp + 0x20], eax
mov eax, 3
cmp byte [esp + eax + 0x20], 0x20
jne 0x11008b10
dec eax
jns 0x11008b06
mov ecx, 7
lea esi, [esp + 0x109]
lea edi, [esp + 0x88]
mov byte [esp + eax + 0x21], 0
rep movsd dword es:[edi], dword [esi]
mov eax, 0x1d
movsw word es:[edi], word [esi]
mov dword [esp + 0x1c], eax
cmp byte [esp + eax + 0x88], 0x20
jne 0x11008b42
dec eax
jns 0x11008b35
mov cl, byte [esp + 0x127]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
mov dword [esp + 0x1c], eax
mov byte [esp + eax + 0x89], 0
mov al, byte [esp + 0x68]
mov byte [esp + 0x14], cl
test al, al
jne 0x11008b76
lea edx, [esp + 0x68]
push str.Untitled
push edx
call esi
add esp, 8
mov al, byte [esp + 0x48]
test al, al
jne 0x11008b8d
lea eax, [esp + 0x48]
push str.Unknown_Artist
push eax
call esi
add esp, 8
mov al, byte [esp + 0x20]
test al, al
jne 0x11008ba4
lea ecx, [esp + 0x20]
push str.19__
push ecx
call esi
add esp, 8
mov edi, dword [esp + 0x252c]
mov edx, dword [esp + 0x2530]
test edi, edi
mov dword [esp + 0x10], str._1____2
je 0x11008bcc
cmp byte [edi], 0
je 0x11008bcc
lea ebx, [esp + 0x128]
jmp 0x11008bd8
lea ebx, [esp + 0x128]
mov edi, 0x11048ee0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x128]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [esp + ecx + 0x128]
lea ecx, [esp + 0x128]
cmp ebx, ecx
jbe 0x11008c2e
mov al, byte [ebx]
cmp al, 0x5c
je 0x11008c2e
cmp al, 0x2e
je 0x11008c2e
dec ebx
lea eax, [esp + 0x128]
cmp ebx, eax
ja 0x11008c18
mov al, byte [ebx]
cmp al, 0x2e
jne 0x11008c76
mov ebp, ebx
mov byte [ebx], 0
lea ecx, [esp + 0x128]
inc ebx
cmp ebp, ecx
jbe 0x11008c57
cmp byte [ebp], 0x5c
je 0x11008c5d
dec ebp
lea eax, [esp + 0x128]
cmp ebp, eax
ja 0x11008c45
cmp byte [ebp], 0x5c
jne 0x11008c64
mov byte [ebp], 0
inc ebp
jmp 0x11008cac
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
add ebp, ebx
jmp 0x11008cac
cmp al, 0x5c
jne 0x11008c92
lea ebp, [ebx + 1]
or ecx, 0xffffffff
mov edi, ebp
xor eax, eax
mov byte [ebx], 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, ebp
mov ebx, ecx
jmp 0x11008cac
lea edi, [esp + 0x128]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ebx, [esp + ecx + 0x128]
mov ebp, ebx
mov al, byte [str._1____2]
test al, al
je 0x11008f0e
lea ecx, [edx + 0xdc]
mov dword [esp + 0x18], ecx
cmp edx, dword [esp + 0x18]
jae 0x11008f0e
mov ecx, dword [esp + 0x10]
mov al, byte [ecx]
inc ecx
cmp al, 0x25
mov dword [esp + 0x10], ecx
jne 0x11008efe
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
movsx ecx, al
lea esi, [ecx - 0x25]
cmp esi, 0x14
ja case.0x11008cfe.47
xor ecx, ecx
mov cl, byte [esi + 0x11008f5c]
jmp dword [ecx*4 + 0x11008f30]
mov byte [edx], 0x25
jmp 0x11008f00
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
lea edi, [esp + 0x68]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
lea edi, [esp + 0x20]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
lea edi, [esp + 0x88]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
mov al, byte [esp + 0x14]
cmp al, 0xff
je 0x11008e33
cmp al, 0x94
jae 0x11008e33
mov ecx, dword [esp + 0x14]
and ecx, 0xff
mov edi, dword [ecx*4 + 0x1102668c]
jmp 0x11008e38
mov edi, 0x1102a1b0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
lea edi, [esp + 0x128]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, ecx
jmp 0x11008f01
mov byte [edx], 0x25
inc edx
mov byte [edx], al
inc edx
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
jne 0x11008cc3
pop edi
pop esi
pop ebp
mov byte [edx], 0
xor eax, eax
pop ebx
add esp, 0x2518
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2518
ret