Function at 0x40ef60
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0xa8], ebp
mov dword [esi + 0xac], esp
mov dword [esi + 0xb8], 0xffffffff
mov dword [esi + 0xb4], 0x41c6b0
mov ebx, dword [ebp + 0xc]
lea eax, [esi + 0xb0]
mov ecx, dword fs:[0]
mov dword [esi + 0xb0], ecx
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], 0
mov dword [ebx + 4], 0
je 0x40efc4
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebx + 0x10]
cmp dword [ebx + 0xc], 0
mov dword [esi + 0x48], 1
mov dword [esi + 0x4c], 0
mov dword [esi + 0x54], 1
mov dword [esi + 0x58], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x14]
mov dword [ebx + 0xc], 0
mov ecx, dword [ebx + 0x18]
mov dword [ebx + 0x14], 0
mov dword [esi + 8], ecx
je 0x40f060
test eax, eax
je 0x40f282
mov edx, dword [esi + 0xc]
lea eax, [esi + 0x48]
mov byte [esi + 7], 1
mov dword [esi + 0xb8], 2
lea ecx, [esi + 0x20]
push eax
call fcn.00415880
add esp, 4
cmp dword [esi + 0x20], 0
mov ebx, dword [esi + 0x24]
mov edi, dword [esi + 0x28]
je 0x40f4c1
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp bl, 4
je 0x40f74e
jmp 0x40f8e8
test eax, eax
je 0x40f751
xor edx, edx
xor ecx, ecx
mov dword [esi + 0x1c], 1
mov dword [esi + 0xc], 0
jmp 0x40f09f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push ebx
call fcn.0041a640
add esp, 4
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
cmp al, 0x23
jne 0x40f49e
cmp ecx, edx
jne 0x40f0d0
mov dword [esi + 0xb8], 7
lea ecx, [esi + 0x54]
push 0x20
call fcn.004378d0
add esp, 4
mov ecx, dword [esi + 0x5c]
mov eax, dword [esi + 0x54]
mov edx, dword [esi + 0x58]
jmp 0x40f0d3
mov eax, dword [esi + 0x1c]
mov ebx, edx
lea edi, [eax + ecx]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, ecx
mov ecx, dword [esi + 0xc]
mov eax, ebx
sub eax, ecx
jbe 0x40f110
mov ecx, ebx
je 0x40f116
mov ecx, dword [esi + 0xc]
add ecx, edi
push eax
push 0
push ecx
call fcn.0042bc30
add esp, 0xc
mov ecx, ebx
jmp 0x40f116
jb 0x40f8a8
xorps xmm0, xmm0
lea eax, [esi + 0x60]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x60], 0
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0x30], eax
push 0x415860
lea eax, [esi + 0x20]
push eax
push ebx
push edi
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReadFileEx]
mov edi, dword [sym.imp.KERNEL32.dll_SleepEx]
test eax, eax
je 0x40f080
nop
push 1
push 0xffffffffffffffff
call edi
cmp dword [esi + 0x60], 1
jne 0x40f150
mov ebx, dword [esi + 0x64]
test ebx, ebx
jne 0x40f088
mov eax, dword [esi + 0x68]
sub dword [esi + 0x18], eax
jb 0x40f917
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
test eax, eax
je 0x40f4a6
add ecx, eax
mov eax, edx
or eax, ecx
mov eax, dword [esi + 0x18]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0xc], eax
jne 0x40f09f
xorps xmm0, xmm0
movaps xmmword [esi + 0x30], xmm0
movaps xmmword [esi + 0x20], xmm0
jmp 0x40f1c9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push ebx
call fcn.0041a640
add esp, 4
cmp al, 0x23
jne 0x40f49e
xorps xmm0, xmm0
lea eax, [esi + 0x80]
mov dword [esi + 0x80], 0
movaps xmmword [esi + 0x60], xmm0
mov dword [esi + 0x70], eax
push 0x415860
lea eax, [esi + 0x60]
push eax
push 0x20
lea eax, [esi + 0x20]
push eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReadFileEx]
test eax, eax
je 0x40f1b0
nop
push 1
push 0xffffffffffffffff
call edi
cmp dword [esi + 0x80], 1
jne 0x40f200
mov ebx, dword [esi + 0x84]
test ebx, ebx
jne 0x40f1b8
mov eax, dword [esi + 0x88]
test eax, eax
je 0x40f4a6
cmp eax, 0x21
mov dword [esi + 0xb8], 7
jae 0x40f957
lea ecx, [esi + 0x54]
xor edx, edx
mov dword [esi + 0x10], eax
push eax
call fcn.004378d0
add esp, 4
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x58]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x5c]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], ecx
add eax, ebx
push edi
lea ecx, [esi + 0x20]
push ecx
push eax
call fcn.0042b6b0
mov edx, dword [esi + 0x14]
mov ecx, ebx
add esp, 0xc
mov eax, dword [esi + 0x18]
add ecx, edi
mov dword [esi + 0x5c], ecx
mov dword [esi + 0xc], eax
jmp 0x40f09f
xor edx, edx
xor ecx, ecx
mov dword [esi + 0x1c], 1
mov dword [esi + 8], 0
jmp 0x40f2bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push ebx
call fcn.0041a640
add esp, 4
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
cmp al, 0x23
jne 0x40f4ab
cmp ecx, edx
jne 0x40f2f0
mov dword [esi + 0xb8], 5
lea ecx, [esi + 0x48]
push 0x20
call fcn.004378d0
add esp, 4
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x4c]
jmp 0x40f2f3
mov eax, dword [esi + 0x1c]
mov ebx, edx
lea edi, [eax + ecx]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], edx
sub ebx, ecx
mov ecx, dword [esi + 8]
mov eax, ebx
sub eax, ecx
jbe 0x40f330
mov ecx, ebx
je 0x40f336
mov ecx, dword [esi + 8]
add ecx, edi
push eax
push 0
push ecx
call fcn.0042bc30
add esp, 0xc
mov ecx, ebx
jmp 0x40f336
jb 0x40f8c8
xorps xmm0, xmm0
lea eax, [esi + 0x60]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x60], 0
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0x30], eax
push 0x415860
lea eax, [esi + 0x20]
push eax
push ebx
push edi
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_ReadFileEx]
mov edi, dword [sym.imp.KERNEL32.dll_SleepEx]
test eax, eax
je 0x40f2a0
nop
push 1
push 0xffffffffffffffff
call edi
cmp dword [esi + 0x60], 1
jne 0x40f370
mov ebx, dword [esi + 0x64]
test ebx, ebx
jne 0x40f2a8
mov eax, dword [esi + 0x68]
sub dword [esi + 0x18], eax
jb 0x40f937
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
test eax, eax
je 0x40f4b3
add ecx, eax
mov eax, edx
or eax, ecx
mov eax, dword [esi + 0x18]
mov dword [esi + 0x50], ecx
mov dword [esi + 8], eax
jne 0x40f2bf
xorps xmm0, xmm0
movaps xmmword [esi + 0x30], xmm0
movaps xmmword [esi + 0x20], xmm0
jmp 0x40f3e9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
push ebx
call fcn.0041a640
add esp, 4
cmp al, 0x23
jne 0x40f4ab
xorps xmm0, xmm0
lea eax, [esi + 0x80]
mov dword [esi + 0x80], 0
movaps xmmword [esi + 0x60], xmm0
mov dword [esi + 0x70], eax
push 0x415860
lea eax, [esi + 0x60]
push eax
push 0x20
lea eax, [esi + 0x20]
push eax
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_ReadFileEx]
test eax, eax
je 0x40f3d0
nop
push 1
push 0xffffffffffffffff
call edi
cmp dword [esi + 0x80], 1
jne 0x40f420
mov ebx, dword [esi + 0x84]
test ebx, ebx
jne 0x40f3d8
mov eax, dword [esi + 0x88]
test eax, eax
je 0x40f4b3
cmp eax, 0x21
mov dword [esi + 0xb8], 5
jae 0x40f969
lea ecx, [esi + 0x48]
xor edx, edx
mov dword [esi + 0x10], eax
push eax
call fcn.004378d0
add esp, 4
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
mov edi, dword [esi + 0x10]
mov ebx, dword [esi + 0x50]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x14], ecx
add eax, ebx
push edi
lea ecx, [esi + 0x20]
push ecx
push eax
call fcn.0042b6b0
mov edx, dword [esi + 0x14]
mov ecx, ebx
add esp, 0xc
mov eax, dword [esi + 0x18]
add ecx, edi
mov dword [esi + 0x50], ecx
mov dword [esi + 8], eax
jmp 0x40f2bf
cmp al, 0xb
jne 0x40f83c
push dword [esi + 8]
jmp 0x40f4b6
cmp al, 0xb
jne 0x40f872
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x40f74e
movsd xmm0, qword [esi + 0x2c]
movsd xmm1, qword [esi + 0x34]
mov edx, dword [esi + 8]
lea eax, [esi + 0x54]
mov dword [esi + 0xb8], 3
lea ecx, [esi + 0x20]
movsd qword [esi + 0x90], xmm1
movsd qword [esi + 0x88], xmm0
mov dword [esi + 0x80], ebx
mov dword [esi + 0x84], edi
push eax
call fcn.00415880
add esp, 4
cmp dword [esi + 0x20], 0
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
je 0x40f520
mov dword [esi + 0x98], ecx
mov dword [esi + 0x9c], eax
jmp 0x40f720
movsd xmm0, qword [esi + 0x2c]
movsd xmm1, qword [esi + 0x34]
mov edx, dword [esi + 0x84]
mov dword [esi + 0xa0], edx
movsd qword [esi + 0x70], xmm1
movsd qword [esi + 0x68], xmm0
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], eax
mov dword [esi + 0xa4], eax
nop dword [eax]
push 0xffffffffffffffff
push 0
lea eax, [esi + 0xa0]
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, 1
je 0x40f5c0
test eax, eax
jne 0x40f6f0
mov eax, dword [esi + 0x90]
test eax, eax
je 0x40f66b
cmp eax, 1
jne 0x40f644
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x88]
mov dword [esi + 0x20], 0
push 1
lea edx, [esi + 0x20]
push edx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x40f6b1
mov edi, dword [esi + 0x20]
jmp 0x40f64a
mov eax, dword [esi + 0x70]
test eax, eax
je 0x40f616
cmp eax, 1
jne 0x40f5f4
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x68]
mov dword [esi + 0x20], 0
push 1
lea edx, [esi + 0x20]
push edx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x40f695
mov edi, dword [esi + 0x20]
jmp 0x40f5f7
mov edi, dword [esi + 0x74]
mov dword [esi + 0x70], 0
mov eax, dword [esi + 0x6c]
add dword [eax + 8], edi
test edi, edi
mov dword [esi + 0xb8], 4
je 0x40f6dd
lea ecx, [esi + 0x20]
lea edx, [esi + 0x60]
mov dword [esi + 0xb8], 4
call fcn.00415980
cmp byte [esi + 0x20], 0
jne 0x40f6c5
cmp byte [esi + 0x21], 1
je 0x40f550
jmp 0x40f6dd
mov edi, dword [esi + 0x94]
mov dword [esi + 0x90], 0
mov eax, dword [esi + 0x8c]
add dword [eax + 8], edi
test edi, edi
mov dword [esi + 0xb8], 4
je 0x40f6cd
lea ecx, [esi + 0x20]
lea edx, [esi + 0x80]
mov dword [esi + 0xb8], 4
call fcn.00415980
cmp byte [esi + 0x20], 0
jne 0x40f6c5
cmp byte [esi + 0x21], 1
je 0x40f550
jmp 0x40f6cd
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x40f5f7
cmp eax, 0x6d
je 0x40f5f7
jmp 0x40f6f6
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x40f64a
cmp eax, 0x6d
je 0x40f64a
jmp 0x40f6f6
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
jmp 0x40f6f8
lea ecx, [esi + 0x98]
lea edx, [esi + 0x60]
call fcn.00415a70
jmp 0x40f70e
lea ecx, [esi + 0x98]
lea edx, [esi + 0x80]
call fcn.00415a70
jmp 0x40f70e
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
mov dword [esi + 0x98], ecx
mov dword [esi + 0x9c], eax
mov dword [esi + 0xb8], 3
lea ecx, [esi + 0x60]
mov dword [esi + 0xb8], 3
call fcn.00404450
lea ecx, [esi + 0x80]
mov byte [esi + 7], 0
mov dword [esi + 0xb8], 2
call fcn.00404450
mov ebx, dword [esi + 0x98]
mov edi, dword [esi + 0x9c]
cmp bl, 4
jne 0x40f8e8
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], 0
mov dword [ebx + 4], 0
je 0x40f76b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebx]
push 0xffffffffffffffff
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40f7bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x58]
mov dword [edi + 4], 0
mov dword [edi], 1
test eax, eax
je 0x40f7a5
push 1
push eax
push dword [esi + 0x54]
call fcn.00402fa0
add esp, 0xc
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x40f7fe
push 1
push eax
push dword [esi + 0x48]
call fcn.00402fa0
add esp, 0xc
jmp 0x40f7fe
lea eax, [esi + 0x20]
mov dword [esi + 0x20], 0
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x40f77a
movsd xmm0, qword [esi + 0x48]
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x5c]
movsd qword [edi + 8], xmm0
movsd xmm0, qword [esi + 0x54]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x1c], edx
movsd qword [edi + 0x14], xmm0
mov dword [edi + 4], eax
mov dword [edi], 0
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [ebp + 0xc]
cmp dword [ebx + 0xc], 0
je 0x40f817
push dword [ebx + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebx + 0x14], 0
je 0x40f826
push dword [ebx + 0x18]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0xb0]
mov dword fs:[0], eax
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0xb8], 8
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], 0
push 0x43ad98
push 0x439c64
lea eax, [esi + 0x20]
push eax
push 0x2b
push 0x439c84
call fcn.00438450
add esp, 0x14
jmp 0x40f979
mov dword [esi + 0xb8], 6
mov dword [esi + 0x24], ebx
mov dword [esi + 0x20], 0
push 0x43ad88
push 0x439c64
lea eax, [esi + 0x20]
push eax
push 0x2b
push 0x439c84
call fcn.00438450
add esp, 0x14
jmp 0x40f979
mov dword [esi + 0xb8], 7
push 0x43aa98
push ebx
push dword [esi + 0xc]
call fcn.004384e0
add esp, 0xc
jmp 0x40f979
mov dword [esi + 0xb8], 5
push 0x43aa98
push ebx
push dword [esi + 8]
call fcn.004384e0
add esp, 0xc
jmp 0x40f979
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], edi
mov dword [esi + 0xb8], 1
push 0x43ad78
push 0x439c64
lea eax, [esi + 0x20]
push eax
push 0x2b
push 0x439c84
call fcn.00438450
add esp, 0x14
jmp 0x40f979
mov dword [esi + 0xb8], 7
push 0x43aad0
push 0x27
push str.assertion_failed:_n___self.initialized
call fcn.004382c0
add esp, 0xc
jmp 0x40f979
mov dword [esi + 0xb8], 5
push 0x43aad0
push 0x27
push str.assertion_failed:_n___self.initialized
call fcn.004382c0
add esp, 0xc
jmp 0x40f979
push 0x43ab88
push 0x20
push eax
call fcn.004384e0
add esp, 0xc
jmp 0x40f979
push 0x43ab88
push 0x20
push eax
call fcn.004384e0
add esp, 0xc
ud2