Function at 0x401810
Capabilities:
Accept command line arguments
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48c
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push str.conf.ini
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x4018e3
mov dword [ebp - 8], 0
push 0
lea eax, [ebp - 0x484]
push eax
push 0x400
lea ecx, [ebp - 0x478]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4018d9
lea eax, [ebp - 0x478]
mov dword [ebp - 0x488], eax
mov ecx, dword [ebp - 0x484]
lea edx, [ebp + ecx - 0x478]
cmp dword [ebp - 0x488], edx
jae 0x4018d4
mov eax, dword [ebp - 0x488]
movzx ecx, byte [eax]
cmp ecx, 0xd
jne 0x4018c3
mov edx, dword [ebp - 0x488]
movzx eax, byte [edx + 1]
cmp eax, 0xa
jne 0x4018c3
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x488]
add edx, 1
mov dword [ebp - 0x488], edx
mov eax, dword [ebp - 0x488]
add eax, 1
mov dword [ebp - 0x488], eax
jmp 0x401879
jmp 0x40184a
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [0x4043b8], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp - 0x480], eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp + 8], eax
mov edx, dword [ebp - 0x480]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x480]
mov dword [ebp - 4], eax
push 0x3fc
push 0
mov ecx, dword [0x4043b8]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0x47c], eax
mov dword [ebp - 8], 0
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx]
test eax, eax
je 0x401a14
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx]
cmp edx, 0x20
je 0x40195f
mov eax, dword [ebp - 0xc]
mov byte [eax], 0
xor ecx, ecx
je 0x401a06
mov edx, dword [ebp - 0xc]
sub edx, dword [ebp - 4]
cmp edx, 1
jle 0x401a06
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 4]
add eax, 1
push eax
push 0
mov ecx, dword [0x4043b8]
push ecx
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x47c]
mov dword [ecx + edx*4], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x47c]
mov ecx, dword [eax + edx*4]
mov dword [ebp - 0x48c], ecx
mov edx, dword [ebp - 4]
cmp edx, dword [ebp - 0xc]
jae 0x4019d4
mov eax, dword [ebp - 0x48c]
mov ecx, dword [ebp - 4]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [ebp - 0x48c]
add eax, 1
mov dword [ebp - 0x48c], eax
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
jmp 0x4019a5
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xc]
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4019e9
jmp 0x401a14
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xff
jne 0x401a06
jmp 0x401a14
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x401938
push 0xc8
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp + 8]
push eax
call fcn.004011a0
add esp, 4
push 0
mov ecx, dword [ebp + 8]
push ecx
call fcn.00401790
add esp, 8
test eax, eax
jne 0x401a55
mov eax, dword [0x4043a8]
call fcn.004028f0
xor eax, eax
jmp 0x401aad
push 0
push 0
push 0
lea edx, [ebp - 0x278]
push edx
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x401aa7
lea eax, [ebp - 0x278]
push eax
mov ecx, dword [ebp - 0x25c]
push ecx
mov edx, dword [ebp - 0x278]
push edx
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x401aa5
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea ecx, [ebp - 0x278]
push ecx
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x401a55
mov eax, dword [ebp - 0x270]
mov esp, ebp
pop ebp
ret 0x10