Function at 0x404a0a
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x33c
mov eax, dword [0x412020]
xor eax, esp
mov dword [esp + 0x338], eax
mov eax, dword [esp + 0x344]
push ebp
push esi
push edi
mov edi, dword [esp + 0x34c]
xor esi, esi
push esi
push esi
push 3
push esi
push 1
push 0x80000000
push edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x2f], 0
call fcn.004036c2
cmp eax, 0xffffffff
mov dword [esp + 0x28], eax
jne 0x404abc
cmp byte [0x414024], 0
jne 0x404ab5
mov esi, 0x400
push esi
mov ebp, 0x413008
push ebp
push 0x7f2
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404ab5
push edi
push ebp
push esi
mov edi, 0x413808
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404ab5
push edi
call fcn.0040378f
xor al, al
jmp 0x404e65
push ebx
push esi
lea eax, [esp + 0x20]
push eax
call dword [0x414008]
mov ebx, eax
cmp ebx, esi
mov ebp, 0x413008
mov edi, 0x413808
mov esi, 0x400
jge 0x404b09
cmp byte [0x414024], 0
jne 0x404b03
push esi
push edi
push 0x7e6
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404b03
push edi
call fcn.0040378f
push ebx
jmp 0x404f33
lea ebx, [esp + 0x3c]
mov byte [esp + 0x3c], 0
lea eax, [esp + 0x140]
cmp ebx, eax
je 0x404e7f
push 0
lea eax, [esp + 0x28]
push eax
push 1
push ebx
push dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x404ea8
cmp dword [esp + 0x24], 0
je 0x404b61
mov al, byte [ebx]
cmp al, 0xa
je 0x404b69
cmp al, 0xd
je 0x404b12
cmp al, 0x20
je 0x404b56
cmp al, 9
jne 0x404b5e
lea eax, [esp + 0x3c]
cmp ebx, eax
je 0x404b12
inc ebx
jmp 0x404b12
mov dword [esp + 0x20], 1
lea eax, [esp + 0x3c]
push eax
mov byte [ebx], 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x404d83
push 0x104
lea eax, [esp + 0x144]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x48]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x404ef1
cmp byte [0x414024], 0
jne 0x404be1
push esi
push ebp
push 0x7fe
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404be1
lea eax, [esp + 0x140]
push eax
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404be1
push edi
call fcn.0040378f
mov ebx, dword [esp + 0x30]
inc dword [esp + 0x18]
push ebx
call fcn.00403f40
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push ebx
lea edx, [esp + 0x148]
push edx
push 0
push eax
call dword [ecx + 0xc]
test eax, eax
mov dword [esp + 0x38], eax
jge 0x404c5f
inc dword [esp + 0x10]
cmp byte [0x414024], 0
jne 0x404c51
push esi
push ebp
push 0x7e7
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404c51
lea eax, [esp + 0x140]
push eax
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404c51
push edi
call fcn.0040378f
push dword [esp + 0x38]
call fcn.00403c94
jmp 0x404d83
cmp eax, 1
jne 0x404d47
mov eax, dword [esp + 0x28]
sub eax, 3
je 0x404d05
dec eax
dec eax
je 0x404cb0
dec eax
jne 0x404d41
cmp byte [0x414024], 0
jne 0x404ca5
push esi
push edi
push 0x7e2
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404ca5
push edi
call fcn.0040378f
push ebx
call fcn.00403f40
jmp 0x404d41
test ebx, ebx
je 0x404ce4
cmp byte [0x414024], 0
jne 0x404cd9
push esi
push edi
push 0x7e3
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404cd9
push edi
call fcn.0040378f
push ebx
call fcn.00403f40
jmp 0x404d83
cmp byte [0x414024], 0
jne 0x404d41
push esi
push edi
push 0x7e4
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404d41
jmp 0x404d3b
cmp byte [0x414024], 0
jne 0x404d41
push esi
push ebp
push 0x800
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404d41
lea eax, [esp + 0x140]
push eax
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404d41
push edi
call fcn.0040378f
inc dword [esp + 0x10]
jmp 0x404d83
cmp byte [0x414024], 0
jne 0x404d83
push esi
push ebp
push 0x7ff
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404d83
lea eax, [esp + 0x140]
push eax
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404d83
push edi
call fcn.0040378f
cmp dword [esp + 0x20], 0
je 0x404b09
cmp dword [esp + 0x10], 0
jne 0x404d9a
mov byte [esp + 0x17], 1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x404da8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [esp + 0x2c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0x414024], 0
jne 0x404e60
push esi
push ebp
push 0x7f8
push dword [0x414020]
call fcn.0040340e
test eax, eax
mov ebx, dword [esp + 0x18]
je 0x404def
push ebx
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404def
push edi
call fcn.0040378f
cmp byte [0x414024], 0
jne 0x404e60
push esi
push ebp
push 0x7fa
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404e28
sub ebx, dword [esp + 0x10]
push ebx
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404e28
push edi
call fcn.0040378f
cmp byte [0x414024], 0
jne 0x404e60
push esi
push ebp
push 0x7fb
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404e60
push dword [esp + 0x10]
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404e60
push edi
call fcn.0040378f
mov al, byte [esp + 0x17]
pop ebx
mov ecx, dword [esp + 0x344]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.004067fe
add esp, 0x33c
ret 8
cmp byte [0x414024], 0
jne 0x404d9a
push esi
push edi
push 0x7ea
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404d9a
jmp 0x404ee6
cmp byte [0x414024], 0
jne 0x404d9a
push esi
push ebp
push 0x7f3
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404d9a
push dword [esp + 0x34]
push ebp
push esi
push edi
call fcn.00403c6d
add esp, 0x10
test eax, eax
jl 0x404d9a
push edi
call fcn.0040378f
jmp 0x404d9a
cmp byte [0x414024], 0
jne 0x404f16
push esi
push edi
push 0x7da
push dword [0x414020]
call fcn.0040340e
test eax, eax
je 0x404f16
push edi
call fcn.0040378f
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
test eax, eax
jg 0x404f26
call ebx
jmp 0x404f32
call ebx
and eax, 0xffff
or eax, 0x80070000
push eax
call fcn.00403c94
jmp 0x404d9a