Function at 0x404e60
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x64
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 8]
push ebx
push ebp
push esi
push edi
mov edi, 0x684d18
mov ebp, dword [esp + 0x78]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x18]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x80
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x20]
and ecx, 3
push 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x421ccc
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
push eax
and ecx, 3
lea eax, [esp + 0x2c]
push closesocket
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x405168
lea ecx, [esp + 0x14]
push 0
push ecx
push 0x80
push 0x430e58
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [esp + 0x14], 0x80
jne 0x40515c
cmp byte [0x430e58], 0xa
jne 0x405150
cmp byte [0x430e59], 5
jne 0x405150
movsx edx, word [0x430e5c]
movsx ecx, word [0x430e60]
movsx eax, word [0x430e62]
sub ecx, edx
push 0x421cc8
movsx edx, word [0x430e5e]
sub eax, edx
inc ecx
inc eax
push 0x36
mov dword [0x430dc8], eax
imul eax, ecx
movsx edx, word [0x430e9a]
lea eax, [eax + eax + 4]
push 0x421c9c
push eax
mov dword [0x430e50], ecx
mov dword [0x430dcc], edx
call fcn.00415350
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x404fb7
push ebp
push 0x421c80
call fcn.00401470
add esp, 8
mov eax, dword [0x430dc8]
push 0x421c7c
imul eax, dword [0x430e50]
push 0x38
push 0x421c9c
lea ecx, [eax + eax*2]
push ecx
call fcn.00415350
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x404ff1
push ebp
push 0x421c80
call fcn.00401470
add esp, 8
mov eax, dword [0x430dc8]
push 0x421c78
imul eax, dword [0x430e50]
push 0x3a
push 0x421c9c
lea edx, [eax + eax*2]
push edx
call fcn.00415350
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x40502d
mov eax, dword [esp + 0x78]
push eax
push 0x421c80
call fcn.00401470
add esp, 8
mov cl, byte [0x430e50]
push 2
mov byte [ebx], cl
mov edx, dword [0x430e50]
shr edx, 8
mov byte [ebx + 1], dl
mov al, byte [0x430dc8]
mov byte [ebx + 2], al
mov ecx, dword [0x430dc8]
push 0
push 0
shr ecx, 8
push esi
mov byte [ebx + 3], cl
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x421c6c
add eax, 0xffffff80
push 0x42
push 0x421c9c
push eax
mov dword [esp + 0x88], eax
call fcn.00415350
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x405099
push 0x421c60
push 0x421c48
call fcn.00401470
add esp, 8
push 0
push 0
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x78]
lea edx, [esp + 0x14]
push 0
push edx
push eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [0x430e50]
mov ecx, dword [0x430dc8]
push ecx
lea edx, [eax + eax*2]
push edx
push ebp
push edi
call fcn.004125c8
mov eax, dword [0x430dc8]
mov ecx, dword [0x430e50]
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
push ebp
call 0x412673
mov eax, dword [0x430dc8]
mov ecx, dword [0x430e50]
push eax
mov eax, dword [esp + 0x34]
lea edx, [ebx + 4]
push ecx
push edx
push eax
call 0x4126a9
push 0x421c34
push 0x49
push 0x421c9c
push edi
call fcn.00415390
add esp, 0x40
push 0x421c28
push 0x4a
push 0x421c9c
push ebp
call fcn.00415390
mov ecx, dword [esp + 0x20]
push 0x421c1c
push 0x4b
push 0x421c9c
push ecx
call fcn.00415390
add esp, 0x20
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x405181
lea edx, [esp + 0x18]
push edx
push 0x421c00
jmp 0x405172
lea eax, [esp + 0x18]
push eax
push 0x421be8
jmp 0x405172
lea ecx, [esp + 0x18]
push ecx
push 0x421bd0
call fcn.00401470
mov ebx, dword [esp + 0x80]
add esp, 8
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x40519a
mov ecx, 0x20
mov esi, 0x430e58
mov edi, 0x430dd0
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x64
ret