Function at 0x404a80
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa4
push 0x64
push 0
lea eax, [ebp - 0x70]
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
mov dword [ebp - 0x7c], 0
push 0x40d4f8
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0
push 4
push 3
push 0
push 1
push 0x80000000
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 0xffffffff
jne 0x404ad6
jmp 0x404e07
push 0
mov eax, dword [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 5
ja 0x404af0
jmp 0x404e07
mov ecx, dword [ebp - 0x74]
push ecx
call fcn.00405404
add esp, 4
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x74]
push eax
call fcn.00405404
add esp, 4
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x88], ecx
push 0
lea edx, [ebp - 0x80]
push edx
mov eax, dword [ebp - 0x74]
push eax
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0x78]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 4], 0
mov dword [ebp - 0x90], 0
jmp 0x404b69
mov eax, dword [ebp - 0x90]
add eax, 1
mov dword [ebp - 0x90], eax
mov ecx, dword [ebp - 0x74]
sub ecx, 1
cmp dword [ebp - 0x90], ecx
jae 0x404bb0
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x90]
movsx eax, byte [edx]
test eax, eax
jne 0x404b8c
jmp 0x404bae
mov ecx, dword [ebp - 0x88]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x90]
mov al, byte [edx]
mov byte [ecx], al
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
jmp 0x404b5a
mov edx, dword [ebp - 0x88]
push edx
mov eax, dword [ebp - 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0xa4]
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov dword [ebp - 0x94], 0
jmp 0x404bfa
mov eax, dword [ebp - 0x94]
add eax, 1
mov dword [ebp - 0x94], eax
mov ecx, dword [ebp - 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
sub eax, 2
cmp dword [ebp - 0x94], eax
jg 0x404e07
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x94]
movsx eax, byte [edx]
cmp eax, 0x53
jne 0x404e02
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0x94]
movsx edx, byte [ecx + 1]
cmp edx, 0x74
jne 0x404e02
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0x94]
movsx ecx, byte [eax + 2]
cmp ecx, 0x6f
jne 0x404e02
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x94]
movsx eax, byte [edx + 3]
cmp eax, 0x72
jne 0x404e02
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0x94]
movsx edx, byte [ecx + 4]
cmp edx, 0x65
jne 0x404e02
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0x94]
movsx ecx, byte [eax + 5]
cmp ecx, 0x64
jne 0x404e02
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x94]
movsx eax, byte [edx + 6]
cmp eax, 0x50
jne 0x404e02
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0x94]
movsx edx, byte [ecx + 7]
cmp edx, 0x61
jne 0x404e02
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0x94]
movsx ecx, byte [eax + 8]
cmp ecx, 0x73
jne 0x404e02
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x94]
movsx eax, byte [edx + 9]
cmp eax, 0x73
jne 0x404e02
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0x94]
movsx edx, byte [ecx + 0xa]
cmp edx, 0x77
jne 0x404e02
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0x94]
movsx ecx, byte [eax + 0xb]
cmp ecx, 0x6f
jne 0x404e02
mov edx, dword [ebp - 0x84]
add edx, dword [ebp - 0x94]
movsx eax, byte [edx + 0xc]
cmp eax, 0x72
jne 0x404e02
mov ecx, dword [ebp - 0x84]
add ecx, dword [ebp - 0x94]
movsx edx, byte [ecx + 0xd]
cmp edx, 0x64
jne 0x404e02
mov eax, dword [ebp - 0x94]
add eax, 0xf
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x98], 0
mov ecx, 1
test ecx, ecx
je 0x404de3
mov edx, dword [ebp - 0x94]
add edx, 1
mov dword [ebp - 0x94], edx
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x98]
mov dl, byte [eax]
mov byte [ebp + ecx - 0x70], dl
mov eax, dword [ebp - 0x84]
add eax, dword [ebp - 0x94]
movsx ecx, byte [eax]
cmp ecx, 0x3d
jne 0x404dd2
jmp 0x404de3
mov edx, dword [ebp - 0x98]
add edx, 1
mov dword [ebp - 0x98], edx
jmp 0x404d8c
mov eax, dword [ebp - 0x98]
add eax, 1
mov dword [ebp - 0x98], eax
lea ecx, [ebp - 0x70]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x404e07
jmp 0x404beb
mov esp, ebp
pop ebp
ret