Function at 0x4154b0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x30
xor eax, eax
push ebx
mov dword [esp + 5], eax
push ebp
mov dword [esp + 0xd], eax
push esi
mov dword [esp + 0x15], eax
push edi
mov word [esp + 0x1d], ax
mov ecx, 7
lea edi, [esp + 0x21]
mov byte [esp + 0x1f], al
mov byte [esp + 0x20], al
mov byte [esp + 0x10], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4156e8
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4156e8
push 0
push 0x80
push 3
push 0
push 3
push connect
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x41552d
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x10
push 0x100
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebp, eax
test ebp, ebp
jne 0x41555b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x10
lea ecx, [esp + 0x48]
push 0
push ecx
push 0x100
push ebp
push ebx
mov dword [esp + 0x5c], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x415612
cmp dword [esp + 0x48], 0x100
jne 0x41559b
cmp dword [ebp], 0x46434746
jne 0x41559b
cmp dword [ebp + 4], 0x10001
je 0x4155b8
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x30
ret 0x10
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4155cd
lea edx, [esp + 0x10]
push edx
push 0x20
push eax
call fcn.004093d0
mov ecx, 4
lea edi, [esp + 0x10]
lea esi, [ebp + 0xbc]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x4155ff
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
mov eax, 0x17
pop ebx
add esp, 0x30
ret 0x10
push 0x280
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
jne 0x415634
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebp
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0x10
mov dword [esi], 0x280
mov dword [esi + 4], ebx
mov ecx, dword [ebp + 0xcc]
lea eax, [ebp + 0xd0]
mov dword [esi + 0x24c], ecx
mov edx, dword [ebp + 0x78]
mov dword [esi + 0x238], edx
mov edx, dword [eax]
lea ecx, [esi + 0x250]
mov edi, dword [esp + 0x50]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, edi
xor eax, eax
sub ecx, 0x427a68
test edi, edi
je 0x415696
mov dl, byte [ecx + eax + 0x427a68]
mov bl, byte [eax + ebp + 0xe0]
jmp 0x4156a3
mov dl, byte [eax + ebp + 0xe0]
mov bl, byte [eax + 0x427a68]
xor dl, bl
mov byte [esp + eax + 0x20], dl
inc eax
cmp eax, 0x20
jl 0x415682
lea eax, [esp + 0x20]
push 0x20
lea ecx, [esi + 8]
push eax
push ecx
call fcn.004175b0
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4156cf
mov edx, dword [ebp + 0xcc]
mov dword [eax], edx
mov eax, dword [esp + 0x44]
push ebp
mov dword [eax], esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret 0x10
pop edi
pop esi
pop ebp
mov eax, 0x57
pop ebx
add esp, 0x30
ret 0x10