Function at 0x10018e00
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1004f516
push eax
mov eax, dword [ebp + 8]
mov dword fs:[0], esp
sub esp, 0x558
push ebx
push esi
push edi
test eax, eax
jne 0x10018e43
or eax, 0xffffffff
mov ecx, dword [esp + 0x564]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x180
push 0x8000
push eax
call dword [sym.imp.MSVCR120.dll_int___cdecl__wopen_wchar_t_const___int__int_]
mov ebx, dword [sym.imp.MSVCR120.dll__errno]
add esp, 0xc
mov edi, eax
mov dword [esp + 0x18], edi
call ebx
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x56c], 0
test edi, edi
jns 0x10018e90
call ebx
cmp dword [eax], 0
je 0x10018ed8
call ebx
mov ebx, dword [sym.imp.MSVCR120.dll__close]
mov esi, dword [eax]
jmp 0x10018fbc
push 0x400
lea eax, [esp + 0x164]
push eax
push edi
call dword [sym.imp.MSVCR120.dll__read]
add esp, 0xc
cmp eax, 0x400
je 0x10018ec4
call ebx
cmp dword [eax], 0
je 0x10018ed8
call ebx
mov ebx, dword [sym.imp.MSVCR120.dll__close]
mov esi, dword [eax]
jmp 0x10018fbc
lea eax, [esp + 0x160]
push eax
call sym.KwLib.dll_bool___cdecl_Music_KFInfoValiate_struct_KFInfoHead__
add esp, 4
test al, al
jne 0x10018ee6
mov ebx, dword [sym.imp.MSVCR120.dll__close]
or esi, 0xffffffff
jmp 0x10018fbc
xor eax, eax
mov dword [esp + 0x74], 7
mov dword [esp + 0x70], 0
mov word [esp + 0x60], ax
lea eax, [esp + 0x38]
mov byte [esp + 0x56c], 1
push eax
lea edx, [esp + 0x64]
lea ecx, [esp + 0x194]
call fcn.10006180
add esp, 4
test al, al
jne 0x10018f3f
call ebx
cmp dword [eax], 0
je 0x10018f34
call ebx
mov ebx, dword [sym.imp.MSVCR120.dll__close]
mov esi, dword [eax]
jmp 0x10018fb3
mov ebx, dword [sym.imp.MSVCR120.dll__close]
or esi, 0xffffffff
jmp 0x10018fb3
mov esi, dword [ebp + 0xc]
lea ecx, [esp + 0x80]
push 0x100539d0
mov edx, esi
call fcn.10006020
add esp, 4
lea ecx, [esp + 0x60]
mov byte [esp + 0x56c], 2
push ecx
mov edx, eax
lea ecx, [esp + 0x4c]
call fcn.100062b0
add esp, 4
lea ecx, [esp + 0x80]
mov byte [esp + 0x56c], 4
call fcn.100021f0
mov eax, dword [ebp + 0x10]
test al, 1
je 0x10018fdd
lea ecx, [esp + 0x48]
call fcn.10006330
test al, al
je 0x1001909a
mov esi, 0x11
mov ebx, dword [sym.imp.MSVCR120.dll__close]
lea ecx, [esp + 0x48]
call fcn.100021f0
lea ecx, [esp + 0x60]
call fcn.100021f0
test edi, edi
js 0x10018fc6
push edi
call ebx
add esp, 4
mov ecx, dword [esp + 0x564]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
test al, 4
je 0x1001909a
lea ecx, [esp + 0x48]
call fcn.10006330
test al, al
je 0x1001909a
xor edi, edi
jmp 0x10019000
inc edi
lea eax, [esp + 0x98]
push edi
push 0x100539d4
push eax
call fcn.10006390
add esp, 0xc
push eax
mov edx, esi
mov byte [esp + 0x570], 5
lea ecx, [esp + 0xcc]
call fcn.10006400
add esp, 4
lea ecx, [esp + 0x60]
mov byte [esp + 0x56c], 6
push ecx
mov edx, eax
lea ecx, [esp + 0xb4]
call fcn.100062b0
add esp, 4
lea ecx, [esp + 0x48]
push eax
call fcn.100021b0
lea ecx, [esp + 0xb0]
call fcn.100021f0
lea ecx, [esp + 0xc8]
call fcn.100021f0
lea ecx, [esp + 0x98]
mov byte [esp + 0x56c], 4
call fcn.100021f0
lea ecx, [esp + 0x48]
call fcn.10006330
test al, al
jne 0x10019000
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x48]
cmp esi, eax
je 0x100190ae
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.10002450
cmp dword [esi + 0x14], 8
jb 0x100190b6
mov esi, dword [esi]
push ecx
push 0x8301
push esi
lea ecx, [esp + 0x4c]
call fcn.10005f20
mov byte [esp + 0x56c], 7
cmp dword [esp + 0x40], 0
jge 0x100190ed
call ebx
cmp dword [eax], 0
je 0x100190e5
call ebx
mov esi, dword [eax]
jmp 0x10019277
or esi, 0xffffffff
jmp 0x10019277
push 0x7f
lea eax, [esp + 0xe5]
mov byte [esp + 0xe4], 0
push 0
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
lea eax, [esp + 0xe0]
push dword [esp + 0x17c]
push dword [esp + 0x17c]
push str._I64d
push 0x7f
push eax
call dword [sym.imp.MSVCR120.dll__snprintf]
add esp, 0x14
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], 0
mov byte [esp + 0x20], 0
push 0xa00000
lea ecx, [esp + 0x24]
mov byte [esp + 0x570], 8
call fcn.10003c50
push dword [esp + 0x18]
xor edi, edi
mov dword [esp + 0x10], edi
call dword [sym.imp.MSVCR120.dll__filelengthi64]
add esp, 4
mov esi, eax
sub esi, 0x400
mov eax, edx
mov dword [esp + 0x14], esi
sbb eax, edi
push dword [esp + 0x174]
mov dword [esp + 0x14], eax
push dword [esp + 0x174]
call sym.KwLib.dll_struct_MusicEncryptPolicy___cdecl_Music_GetEncryptByVer_unsigned_long_long_unsigned___int64__
add esp, 8
mov dword [esp + 0x38], eax
mov dword [esp + 0x38], edx
cmp dword [esp + 0x10], edi
jl 0x10019268
jg 0x100191b3
test esi, esi
je 0x10019268
xor eax, eax
xor edx, edx
mov ecx, esi
sub ecx, eax
mov eax, dword [esp + 0x10]
sbb eax, edx
mov dword [esp + 0x7c], eax
js 0x100191d8
jg 0x100191d1
cmp ecx, 0xa00000
jbe 0x100191d8
mov esi, 0xa00000
jmp 0x100191da
sub esi, edi
cmp dword [esp + 0x34], 0x10
lea eax, [esp + 0x20]
push esi
cmovae eax, dword [esp + 0x24]
push eax
push dword [esp + 0x20]
call dword [sym.imp.MSVCR120.dll__read]
mov edi, eax
add esp, 0xc
cmp edi, esi
jne 0x10019294
cmp dword [esp + 0x34], 0x10
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x24]
cmovae ecx, dword [esp + 0x24]
push edi
push ecx
call dword [esp + 0x44]
add esp, 0xc
lea eax, [esp + 0x20]
cmp dword [esp + 0x34], 0x10
cmovae eax, dword [esp + 0x20]
push edi
push eax
push dword [esp + 0x48]
call dword [sym.imp.MSVCR120.dll__write]
add esp, 0xc
cmp edi, eax
jne 0x10019294
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0xc]
cdq
cmp edx, dword [esp + 0x10]
jl 0x100191b7
jg 0x10019268
cmp eax, esi
jb 0x100191b7
xor esi, esi
lea ecx, [esp + 0x20]
call fcn.10001850
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
test eax, eax
js 0x10018fa4
mov ebx, dword [sym.imp.MSVCR120.dll__close]
push eax
call ebx
add esp, 4
jmp 0x10018faa
call ebx
cmp dword [eax], 0
je 0x100192a1
call ebx
mov esi, dword [eax]
jmp 0x1001926a
or esi, 0xffffffff
jmp 0x1001926a