Function at 0x40f000
Capabilities:
Create thread
Read file on windows

Disassembly:
sub esp, 0x10
push ebx
push esi
lea eax, [esp + 0xc]
push edi
lea ecx, [esp + 0xc]
push eax
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x18]
push ecx
xor ebx, ebx
push edx
push eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call fcn.00411480
add esp, 0x10
test eax, eax
jne 0x40f037
pop edi
pop esi
pop ebx
add esp, 0x10
ret
cmp dword [esp + 0x14], 2
jne 0x40f202
mov ecx, dword [esp + 0x10]
push ebp
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push ecx
mov dword [esp + 0x44], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x40f1bc
mov eax, dword [esp + 0x30]
test al, 0x80
je 0x40f087
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x450988]
push edx
call fcn.004296b0
jmp 0x40f0f1
test ah, 1
mov eax, dword [esp + 0x2c]
je 0x40f0aa
mov ecx, dword [0x450988]
push eax
call fcn.00436220
mov ecx, dword [0x450988]
push eax
call fcn.00429920
jmp 0x40f0f1
cmp dword [eax], 2
jne 0x40f0d8
mov ecx, dword [0x450988]
mov eax, dword [eax + 8]
push eax
mov edx, dword [ecx + 0x5c]
push edx
call fcn.0042a380
cmp eax, ebx
je 0x40f1df
mov ecx, dword [0x450988]
push eax
call fcn.00429700
jmp 0x40f0f1
mov ecx, dword [0x450988]
push ebx
push eax
call fcn.00436220
mov ecx, dword [0x450988]
push eax
call fcn.00429990
mov edi, eax
cmp edi, ebx
je 0x40f1df
push 0x10000
mov dword [esp + 0x30], ebx
call fcn.0040b0a0
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x40f189
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], 1
push eax
call fcn.00426b80
add esp, 4
lea ecx, [esp + 0x2c]
mov dword [edi + 0x158], eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_ReadFile]
push ecx
push 0x10000
push esi
push ebp
call ebx
test eax, eax
je 0x40f176
mov edx, dword [esp + 0x2c]
mov ecx, edi
push edx
push esi
call fcn.004263f0
mov ecx, edi
call fcn.00426720
mov eax, dword [esp + 0x2c]
test eax, eax
jbe 0x40f17e
lea eax, [esp + 0x2c]
push 0
push eax
push 0x10000
push esi
push ebp
call ebx
test eax, eax
jne 0x40f146
mov dword [esp + 0x28], 0
push esi
call fcn.0040b0b0
add esp, 4
xor ebx, ebx
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi + 0x1ac]
cmp eax, ebx
je 0x40f1b3
cmp dword [eax + 0xbd0], ebx
je 0x40f1b3
mov dword [eax + 0xbd0], ebx
mov ecx, dword [0x450988]
call fcn.0040e570
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, edi
jmp 0x40f1da
test byte [esp + 0x30], 0x80
je 0x40f1df
mov edx, dword [esp + 0x2c]
mov ecx, dword [0x450988]
push edx
call fcn.004296b0
cmp eax, ebx
je 0x40f1df
push ebx
mov ecx, eax
call fcn.00426130
mov eax, dword [esp + 0x10]
push eax
call fcn.00426af0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00426af0
mov eax, dword [esp + 0x30]
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x10
ret
push 0x40
call fcn.0040b0a0
add esp, 4
cmp eax, ebx
je 0x40f21d
mov ecx, eax
call fcn.0040eab0
mov esi, eax
cmp esi, ebx
jne 0x40f226
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x10
ret
mov edi, dword [esp + 0xc]
cmp byte [edi], 0
je 0x40f257
cmp byte [edi], 0x3a
jne 0x40f24a
lea edx, [esi + 0x20]
push 0xa
lea eax, [edi + 1]
push edx
push eax
call fcn.0042a650
add esp, 0xc
test eax, eax
jne 0x40f254
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40f22f
jmp 0x40f257
mov byte [edi], 0
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00426b80
mov dword [esi + 4], eax
mov edx, dword [esp + 0x10]
mov dword [esi + 8], edx
mov eax, dword [esp + 0x14]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
add esp, 4
cmp eax, ebx
mov dword [esi + 0x2c], ecx
je 0x40f28f
push eax
call fcn.00426b80
add esp, 4
jmp 0x40f291
xor eax, eax
mov edx, dword [esp + 0x28]
push 1
push edx
lea ecx, [esi + 0x10]
mov dword [esi + 0x28], eax
mov dword [esi + 0x34], ebx
call fcn.00427b20
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x18]
push edx
push ebx
mov dword [esi + 0x38], eax
mov ecx, dword [0x45098c]
push esi
push 0x40eae0
push ebx
mov dword [esi], ecx
push ebx
mov dword [0x45098c], esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x30], eax
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x10
ret