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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x20
mov ecx, dword [0x4667c4]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
xor ecx, esp
mov dword [esp + 0x1c], ecx
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x41332c47
mov dword [esp + 8], eax
mov dword [esp + 4], eax
jmp 0x40a3bd
push dword [esp + 8]
call ebp
mov ecx, 0x552e3783
mov al, 1
mov dword [esp], eax
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
push dword [esp + 8]
call ebp
mov ecx, 0x552e3783
mov dword [esp], 0
nop
cmp ecx, 0x2f3e5285
jg 0x40a4b0
cmp ecx, 0xdb9ed0d0
jle 0x40a460
cmp ecx, 0xf7c6a4c4
jg 0x40a590
cmp ecx, 0xddf1115f
jg 0x40a67d
cmp ecx, 0xdb9ed0d1
je 0x40a7a4
cmp ecx, 0xdc20cc9d
jne 0x40a3e0
push dword [esp + 8]
call ebp
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0x1a26485c
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov ecx, 0x1a26485c
mov edx, 0x76f6f4a8
sete bl
je 0x40aa8f
mov esi, 0x76f6f4a8
jmp 0x40aa8f
cmp ecx, 0x9fbbd53d
jle 0x40a5da
cmp ecx, 0xcd49f067
jg 0x40a6cd
cmp ecx, 0x9fbbd53e
je 0x40a3b0
cmp ecx, 0xc4effb8b
jne 0x40a3e0
mov ecx, 0xdc20cc9d
cmp ecx, 0x2f3e5285
jle 0x40a3ec
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp ecx, 0x552e3782
jg 0x40a510
cmp ecx, 0x3fc8182d
jle 0x40a603
cmp ecx, 0x50222cca
jg 0x40a707
cmp ecx, 0x3fc8182e
je 0x40a7df
cmp ecx, 0x41332c47
jne 0x40a3e0
mov eax, dword [esp + 8]
mov ecx, 0x50222ccb
cmp eax, 0xffffffff
je 0x40a3e0
mov ecx, 0xe82b920b
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0x6b68504e
jle 0x40a63d
cmp ecx, 0x733dddf6
jg 0x40a735
cmp ecx, 0x6b68504f
je 0x40a811
cmp ecx, 0x6d9f7632
jne 0x40a3e0
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov ebx, 0xf7c6a4c5
lea edx, [ecx - 1]
imul edx, ecx
mov esi, edx
xor esi, 0xfffffffe
test esi, edx
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xf7c6a4c5
jne 0x40a574
mov ebx, 0x53208ba9
test esi, edx
cmovne ecx, ebx
cmp eax, 0xa
cmovge ecx, ebx
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0x1a26485b
jle 0x40a787
cmp ecx, 0x1a26485c
je 0x40a3d3
cmp ecx, 0x244a4848
jne 0x40a3e0
cmp byte [esp + 0x13], 0
mov ecx, 0x9fbbd53e
jne 0x40a3e0
mov ecx, 0x2f3e5286
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0x906181cf
je 0x40aab3
cmp ecx, 0x92510a5f
je 0x40a827
cmp ecx, 0x94767a91
jne 0x40a3e0
jmp 0x40a3cd
cmp ecx, 0x2f3e5286
je 0x40a879
cmp ecx, 0x31c4623b
je 0x40a8a5
cmp ecx, 0x38811b61
jne 0x40a3e0
mov ecx, 0x5a0f63df
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0x552e3783
je 0x40a922
cmp ecx, 0x5a0f63df
je 0x40a965
cmp ecx, 0x633eaf9f
jne 0x40a3e0
push dword [esp + 8]
call ebp
mov ecx, 0xddf11160
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0xddf11160
je 0x40a9ad
cmp ecx, 0xe82b920b
jne 0x40a3e0
push 0
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esp + 0xc], eax
mov ecx, 0x94767a91
mov eax, dword [esp + 0xc]
cmp eax, 0xffffffff
je 0x40a3e0
mov ecx, 0x6d9f7632
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0xcd49f068
je 0x40a9ed
cmp ecx, 0xd2652561
jne 0x40a3e0
push dword [esp + 0x14]
call fcn.0043f0bc
add esp, 4
mov ecx, 0x92510a5f
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0x50222ccb
je 0x40aa0c
cmp ecx, 0x53208ba9
jne 0x40a3e0
mov ecx, 0xf7c6a4c5
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
cmp ecx, 0x733dddf7
je 0x40aa2a
cmp ecx, 0x76f6f4a8
jne 0x40a3e0
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0xddf11160
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov ecx, 0xddf11160
mov edx, 0x633eaf9f
sete bl
je 0x40a997
mov esi, 0x633eaf9f
jmp 0x40a997
cmp ecx, 0xf7c6a4c5
je 0x40aa5d
cmp ecx, 0xf9c516ef
jne 0x40a3e0
jmp 0x40aaec
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0x31c4623b
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, 0x31c4623b
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, 0x906181cf
sete bl
je 0x40aa8f
mov esi, 0x906181cf
jmp 0x40aa8f
mov ecx, dword [0x4674b0]
mov eax, dword [esp + 4]
and al, 1
mov esi, 0x733dddf7
mov byte [esp + 0x1b], al
mov eax, dword [0x4674b4]
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, 0x733dddf7
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
jmp 0x40aa4c
mov ecx, 0x733dddf7
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0xdc20cc9d
lea edx, [ecx - 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp eax, 0xa
setl ch
xor ch, cl
mov ecx, 0xdc20cc9d
jne 0x40a85c
mov esi, 0x76f6f4a8
cmp edx, 0xffffffff
cmovne ecx, esi
cmp eax, 0xa
cmovge ecx, esi
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
mov eax, dword [edi]
mov ecx, 0x92510a5f
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x40a3e0
mov ecx, 0xd2652561
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
push dword [esp + 0xc]
call fcn.0043f0b3
add esp, 4
mov dword [edi], eax
push 0
push dword [esp + 0x40]
push dword [esp + 0x14]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [0x4674b0]
mov edx, dword [0x4674b4]
mov ebx, 0x244a4848
lea esi, [ecx - 1]
imul esi, ecx
not esi
or esi, 0xfffffffe
cmp esi, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov ecx, 0x244a4848
jne 0x40a8fe
mov ebx, 0x906181cf
cmp esi, 0xffffffff
cmovne ecx, ebx
cmp edx, 0xa
cmovge ecx, ebx
test eax, eax
setne byte [esp + 0x13]
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
mov ecx, dword [0x4674b0]
mov eax, dword [esp]
and al, 1
mov esi, 0x5a0f63df
mov byte [esp + 0x1a], al
mov eax, dword [0x4674b4]
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov ecx, 0x5a0f63df
mov edx, 0x38811b61
sete bl
je 0x40aa8f
mov esi, 0x38811b61
jmp 0x40aa8f
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0xcd49f068
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, 0xcd49f068
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, 0x38811b61
sete bl
je 0x40a997
mov esi, 0x38811b61
cmp eax, 0xa
setl al
cmovl edx, esi
xor al, bl
jne 0x40a3e0
jmp 0x40aaa0
push dword [esp + 8]
call ebp
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0xc4effb8b
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov ecx, 0xc4effb8b
mov edx, 0x633eaf9f
sete bl
je 0x40aa8f
mov esi, 0x633eaf9f
jmp 0x40aa8f
movzx eax, byte [esp + 0x1a]
mov ecx, 0x3fc8182e
mov dword [esp + 4], eax
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
mov ecx, 0x3fc8182e
mov dword [esp + 4], 0
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0xf9c516ef
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov ecx, 0xf9c516ef
mov edx, 0x6b68504f
sete bl
je 0x40aa8f
mov esi, 0x6b68504f
jmp 0x40aa8f
mov ecx, dword [0x4674b0]
mov eax, dword [0x4674b4]
mov esi, 0xdb9ed0d1
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, 0xdb9ed0d1
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
mov edx, 0x53208ba9
sete bl
je 0x40aa8f
mov esi, 0x53208ba9
cmp eax, 0xa
setl al
cmovl edx, esi
xor bl, al
jne 0x40a3e0
mov ecx, edx
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
push dword [esp + 0xc]
call fcn.0043f0b3
add esp, 4
mov dword [edi], eax
push 0
push dword [esp + 0x40]
push dword [esp + 0x14]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, 0x31c4623b
cmp ecx, 0x2f3e5285
jle 0x40a3ec
jmp 0x40a4b0
mov bl, byte [esp + 0x1b]
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.0043f0c1
mov eax, ebx
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret