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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], ecx
test ebx, ebx
jne 0x404c13
push 0x57
pop eax
jmp 0x404e4c
push esi
push edi
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test edi, edi
jne 0x404c28
push 0xd
jmp 0x404c3a
lea eax, [edi + 2]
push eax
call fcn.004856fc
mov esi, eax
pop ecx
test esi, esi
jne 0x404c3d
push 8
pop edi
jmp 0x404c5f
push 0
lea eax, [ebp + 8]
push eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x404c6d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov edi, eax
call fcn.004856f7
pop ecx
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x404e4a
push ebx
mov word [esi + edi], 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp edi, dword [ebp + 8]
jbe 0x404c86
push 0x1e
jmp 0x404e40
push 0xd
pop ebx
cmp edi, 3
jbe 0x404e41
mov al, byte [esi]
push 0x32
pop ebx
push 0xfffffffffffffffe
pop edx
test al, al
jne 0x404cb2
cmp byte [esi + 1], al
jne 0x404cb2
cmp byte [esi + 2], dl
jne 0x404cb2
cmp byte [esi + 3], 0xff
je 0x404e41
cmp al, 0xff
jne 0x404ccb
cmp byte [esi + 1], dl
jne 0x404ccb
cmp byte [esi + 2], 0
jne 0x404ccb
cmp byte [esi + 3], 0
je 0x404e41
test al, al
jne 0x404ce3
cmp byte [esi + 1], al
jne 0x404ce3
cmp byte [esi + 2], 0xff
jne 0x404ce3
cmp byte [esi + 3], dl
je 0x404e41
cmp al, dl
jne 0x404cfd
cmp byte [esi + 1], 0xff
jne 0x404cfd
cmp byte [esi + 2], 0
jne 0x404cfd
cmp byte [esi + 3], 0
je 0x404e41
cmp al, 0xef
jne 0x404d15
cmp byte [esi + 1], 0xbb
jne 0x404d15
cmp byte [esi + 2], 0xbf
jne 0x404d15
lea eax, [esi + 3]
jmp 0x404e31
cmp al, dl
jne 0x404d38
lea ecx, [esi + 1]
cmp byte [ecx], 0xff
jne 0x404d38
mov dl, byte [ecx - 1]
test dl, dl
jne 0x404d2c
cmp byte [ecx], dl
je 0x404d41
mov al, byte [ecx]
mov byte [ecx - 1], al
mov byte [ecx], dl
add ecx, 2
jmp 0x404d21
cmp al, 0xff
jne 0x404d4a
cmp byte [esi + 1], dl
jne 0x404d4a
lea eax, [esi + 2]
push eax
jmp 0x404dec
test al, al
jne 0x404d62
cmp byte [esi + 1], al
jne 0x404d62
cmp byte [esi + 2], al
jne 0x404d62
cmp byte [esi + 3], 0x3c
je 0x404e41
cmp al, 0x3c
jne 0x404d7c
cmp byte [esi + 1], 0
jne 0x404d7c
cmp byte [esi + 2], 0
jne 0x404d7c
cmp byte [esi + 3], 0
je 0x404e41
test al, al
jne 0x404dd5
lea ecx, [esi + 1]
mov dl, byte [ecx]
test dl, dl
jne 0x404d98
cmp byte [esi + 2], 0x3c
jne 0x404d98
cmp byte [esi + 3], dl
je 0x404e41
cmp dl, 0x3c
jne 0x404dd5
cmp byte [esi + 2], 0
jne 0x404dad
cmp byte [esi + 3], 0
je 0x404e41
cmp dl, 0x3c
jne 0x404dd5
cmp byte [esi + 2], 0
jne 0x404dd5
cmp byte [esi + 3], 0x3f
jne 0x404dd5
mov dl, byte [ecx - 1]
test dl, dl
jne 0x404dc9
cmp byte [ecx], dl
je 0x404deb
mov al, byte [ecx]
mov byte [ecx - 1], al
mov byte [ecx], dl
add ecx, 2
jmp 0x404dbe
cmp al, 0x3c
jne 0x404e0a
mov cl, byte [esi + 1]
test cl, cl
jne 0x404df6
cmp byte [esi + 2], 0x3f
jne 0x404df6
cmp byte [esi + 3], cl
jne 0x404df6
push esi
mov ecx, dword [ebp - 4]
call fcn.004037ce
jmp 0x404e3a
cmp cl, 0x3f
jne 0x404e0a
cmp byte [esi + 2], 0x78
jne 0x404e0a
cmp byte [esi + 3], 0x6d
jne 0x404e0a
push esi
jmp 0x404e32
cmp al, 0x4c
jne 0x404e20
cmp byte [esi + 1], 0x6f
jne 0x404e20
cmp byte [esi + 2], 0xa7
jne 0x404e20
cmp byte [esi + 3], 0x94
je 0x404e41
push 0x4a2d7c
push esi
call fcn.00482cf0
pop ecx
pop ecx
test eax, eax
je 0x404e3e
push eax
mov ecx, dword [ebp - 4]
call fcn.004036ba
mov ebx, eax
jmp 0x404e41
push 0xd
pop ebx
push esi
call fcn.004856f7
pop ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4