Function at 0x401dca
Capabilities:
Read file on windows

Disassembly:
jmp 0x43f850
sub esp, 0x2c
mov eax, dword [0x4a83b0]
push esi
xor esi, esi
cmp eax, esi
mov dword [esp + 8], esi
mov dword [esp + 0x10], esi
jl 0x43f87f
mov ecx, dword [esp + 0x38]
mov byte [ecx], al
lea eax, [esi + 1]
mov dword [0x4a83b0], 0xffffffff
pop esi
add esp, 0x2c
ret
mov eax, dword [esp + 0x3c]
shr eax, 1
push ebx
mov dword [esp + 0x40], eax
jne 0x43f8f6
mov dword [esp + 0x40], 1
mov dword [esp + 0x10], 0x489fe0
mov ebx, dword [esp + 0x10]
push ebp
mov ebp, dword [esp + 0x40]
push edi
jmp 0x43f8b0
mov eax, dword [0x4a83a4]
mov ecx, dword [0x4a83a8]
mov edx, dword [0x4a83ac]
mov edi, dword [esp + 0x40]
push 0xffffffffffffffff
mov dword [esp + 0x30], eax
push 0
lea eax, [esp + 0x34]
push eax
push 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
test eax, eax
jne 0x43f93e
push 0xa
call fcn.00401451
add esp, 4
jmp 0x43f950
cmp eax, 0x800
jbe 0x43f894
lea edx, [eax + eax*4]
add edx, edx
add edx, edx
push edx
push 8
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ebx, eax
cmp ebx, esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 1
jne 0x43f8a0
call fcn.0044ad41
pop ebx
mov dword [eax], 0xc
or eax, 0xffffffff
pop esi
add esp, 0x2c
ret
cmp eax, 1
je 0x43fadc
cmp eax, 2
je 0x43faf3
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x24]
push ecx
push edx
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_ReadConsoleInputA]
test eax, eax
je 0x43fb0a
xor eax, eax
cmp dword [esp + 0x24], eax
mov word [0x4a83a0], ax
mov dword [esp + 0x20], eax
jbe 0x43f8b0
lea edi, [ebx + 0xa]
movzx eax, word [edi - 0xa]
sub eax, 1
jne 0x43fa8d
cmp dword [edi - 6], eax
je 0x43fa8d
mov cl, byte [edi + 4]
movzx eax, word [edi]
mov byte [esp + 0x13], cl
mov ebx, dword [edi + 6]
test bl, 2
jne 0x43f9b9
test bl, 1
je 0x43f9c1
cmp dword [0x496398], 0
je 0x43f9c1
mov dword [esp + 0x14], 1
mov edx, 1
cmp word [0x4a839c], dx
jne 0x43fa03
cmp ax, 0x70
jb 0x43f9df
cmp ax, 0x87
jbe 0x43fb45
cmp ax, 0x21
jb 0x43f9ef
cmp ax, 0x28
jbe 0x43fb4c
cmp ax, 0x2d
je 0x43fbb9
cmp ax, 0x2e
je 0x43fc27
cmp ax, 0x1b
je 0x43fa7b
test cl, cl
je 0x43fa81
cmp dword [0x489fd0], edx
jne 0x43fa3b
cmp cl, 0xd
jne 0x43fa3b
push 0
lea eax, [esp + 0x2c]
push eax
push edx
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x1f]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov cl, byte [esp + 0x13]
mov edx, 1
cmp dword [0x496398], 0
je 0x43fa59
cmp cl, 0x20
je 0x43fa4e
cmp cl, 0x40
jne 0x43fa59
test bl, 0xc
je 0x43fa59
xor cl, cl
mov byte [esp + 0x13], cl
cmp dword [esp + 0x14], 0
je 0x43fa76
mov byte [esi + ebp], 0x1b
add esi, edx
cmp dword [esp + 0x48], edx
jne 0x43fa76
movzx eax, cl
mov dword [0x4a83b0], eax
jmp 0x43fa81
mov byte [esi + ebp], cl
jmp 0x43fa7f
mov byte [esi + ebp], 0x1b
add esi, edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x20]
add eax, 1
add edi, 0x14
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
jb 0x43f983
test esi, esi
je 0x43f8b0
cmp dword [esp + 0x48], esi
jae 0x43fab7
mov byte [esi + ebp], 0
cmp dword [esp + 0x1c], 0
je 0x43face
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
je 0x43fb3a
pop edi
pop ebp
pop ebx
mov eax, esi
pop esi
add esp, 0x2c
ret
call fcn.0044ad41
push 1
mov dword [eax], 4
call fcn.00401451
add esp, 4
jmp 0x43fab7
call fcn.0044ad41
push 3
mov dword [eax], 4
call fcn.00401451
add esp, 4
jmp 0x43fab7
call dword [sym.imp.KERNEL32.dll_GetLastError]
add eax, 0xfffffffb
cmp eax, 1
ja 0x43fb23
call fcn.0044ad41
mov dword [eax], 9
cmp dword [esp + 0x1c], 0
je 0x43fb3a
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop ebp
pop ebx
or eax, 0xffffffff
pop esi
add esp, 0x2c
ret
add eax, 0x90
jmp 0x43fb51
add eax, 0xf7
test bl, 0xc
mov word [0x4a83a0], ax
je 0x43fb77
add word [0x4a83a0], 0x22
pop edi
pop ebp
pop ebx
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
cmp dword [esp + 0x14], 0
je 0x43fb99
add word [0x4a83a0], 0x44
pop edi
pop ebp
pop ebx
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
test bl, 0x10
je 0x43fba6
add word [0x4a83a0], 0x66
pop edi
pop ebp
pop ebx
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
test bl, 0xc
mov word [0x4a83a0], 0x120
je 0x43fbe3
pop edi
pop ebp
pop ebx
mov word [0x4a83a0], 0x142
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
cmp dword [esp + 0x14], 0
je 0x43fc06
pop edi
pop ebp
pop ebx
mov word [0x4a83a0], 0x164
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
test bl, 0x10
je 0x43fc14
mov word [0x4a83a0], 0x186
pop edi
pop ebp
pop ebx
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
test bl, 0xc
mov word [0x4a83a0], 0x121
je 0x43fc51
pop edi
pop ebp
pop ebx
mov word [0x4a83a0], 0x143
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
cmp dword [esp + 0x14], 0
je 0x43fc74
pop edi
pop ebp
pop ebx
mov word [0x4a83a0], 0x165
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret
test bl, 0x10
je 0x43fc82
mov word [0x4a83a0], 0x187
pop edi
pop ebp
pop ebx
mov word [0x4a839c], 2
mov eax, edx
pop esi
add esp, 0x2c
ret