Function at 0x6011f880
Capabilities:
Read file on windows

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x14]
push ebp
push esi
push edi
mov edi, dword [esp + 0x1c]
push 4
push ebx
mov ecx, edi
call fcn.6011e9b0
xor ebp, ebp
cmp eax, ebp
jl 0x6011fac8
mov ecx, dword [edi + 8]
push ebp
lea eax, [esp + 0x18]
push eax
push 4
lea esi, [ebx + 4]
push esi
push ecx
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011fade
call fcn.601180b0
cmp eax, ebp
mov dword [esp + 0x10], eax
jl 0x6011f920
cmp byte [edi], 0
je 0x6011f920
mov ecx, dword [edi + 4]
mov ebp, dword [ecx - 0xc]
xor eax, eax
xor edx, edx
div ebp
mov al, byte [esi]
mov dl, byte [edx + ecx]
xor al, dl
mov byte [esi], al
xor edx, edx
mov eax, 1
div ebp
mov al, byte [edx + ecx]
xor byte [esi + 1], al
xor edx, edx
mov eax, 2
div ebp
mov al, byte [esi + 2]
mov dl, byte [edx + ecx]
xor al, dl
mov byte [esi + 2], al
xor edx, edx
mov eax, 3
div ebp
mov al, byte [edx + ecx]
xor byte [esi + 3], al
xor ebp, ebp
mov eax, dword [esp + 0x10]
cmp eax, ebp
jl 0x6011fac8
mov edx, dword [edi + 8]
push ebp
lea ecx, [esp + 0x18]
push ecx
push 4
lea esi, [ebx + 8]
push esi
push edx
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011fafb
call fcn.601180b0
cmp eax, ebp
mov dword [esp + 0x10], eax
jl 0x6011f9aa
cmp byte [edi], 0
je 0x6011f9aa
mov ecx, dword [edi + 4]
mov ebp, dword [ecx - 0xc]
xor eax, eax
xor edx, edx
div ebp
mov al, byte [edx + ecx]
xor byte [esi], al
xor edx, edx
mov eax, 1
div ebp
mov al, byte [esi + 1]
mov dl, byte [edx + ecx]
xor al, dl
mov byte [esi + 1], al
xor edx, edx
mov eax, 2
div ebp
mov al, byte [edx + ecx]
xor byte [esi + 2], al
xor edx, edx
mov eax, 3
div ebp
mov al, byte [esi + 3]
mov cl, byte [edx + ecx]
xor al, cl
mov byte [esi + 3], al
xor ebp, ebp
mov eax, dword [esp + 0x10]
cmp eax, ebp
jl 0x6011fac8
mov eax, dword [edi + 8]
push ebp
lea edx, [esp + 0x18]
push edx
push 4
lea esi, [ebx + 0xc]
push esi
push eax
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011fb18
call fcn.601180b0
mov ebx, eax
test ebx, ebx
jl 0x6011fa2f
cmp byte [edi], 0
je 0x6011fa2f
mov ecx, dword [edi + 4]
mov ebp, dword [ecx - 0xc]
xor eax, eax
xor edx, edx
div ebp
mov al, byte [esi]
mov dl, byte [edx + ecx]
xor al, dl
mov byte [esi], al
xor edx, edx
mov eax, 1
div ebp
mov al, byte [edx + ecx]
xor byte [esi + 1], al
xor edx, edx
mov eax, 2
div ebp
mov al, byte [esi + 2]
mov dl, byte [edx + ecx]
xor al, dl
mov byte [esi + 2], al
xor edx, edx
mov eax, 3
div ebp
mov al, byte [edx + ecx]
xor byte [esi + 3], al
test ebx, ebx
mov eax, ebx
jl 0x6011fac2
mov esi, dword [esp + 0x20]
mov edx, dword [edi + 8]
push 0
lea ecx, [esp + 0x18]
push ecx
push 4
add esi, 0x10
push esi
push edx
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011fb30
call fcn.601180b0
mov ebp, eax
test ebp, ebp
jl 0x6011fabc
cmp byte [edi], 0
je 0x6011fabc
mov edi, dword [edi + 4]
mov ecx, dword [edi - 0xc]
xor edx, edx
xor eax, eax
div ecx
mov bl, byte [esi + 1]
mov al, byte [edx + edi]
xor byte [esi], al
xor edx, edx
mov eax, 1
div ecx
mov eax, 2
mov dl, byte [edx + edi]
xor bl, dl
xor edx, edx
div ecx
mov byte [esi + 1], bl
mov al, byte [edx + edi]
xor byte [esi + 2], al
xor edx, edx
mov eax, 3
div ecx
mov al, byte [esi + 3]
mov cl, byte [edx + edi]
xor al, cl
mov byte [esi + 3], al
test ebp, ebp
mov eax, ebp
jge 0x6011fad6
mov ebx, dword [esp + 0x20]
xor ebp, ebp
mov dword [ebx], ebp
mov dword [ebx + 4], ebp
mov dword [ebx + 8], ebp
mov dword [ebx + 0xc], ebp
mov dword [ebx + 0x10], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
cmp dword [esp + 0x14], 4
je 0x6011faf2
mov dword [esp + 0x10], 0x80070026
jmp 0x6011f920
mov dword [esp + 0x10], ebp
jmp 0x6011f8d2
cmp dword [esp + 0x14], 4
je 0x6011fb0f
mov dword [esp + 0x10], 0x80070026
jmp 0x6011f9aa
mov dword [esp + 0x10], ebp
jmp 0x6011f95b
cmp dword [esp + 0x14], 4
je 0x6011fb29
mov ebx, 0x80070026
jmp 0x6011fa2f
xor ebx, ebx
jmp 0x6011f9e3
cmp dword [esp + 0x14], 4
je 0x6011fb41
mov ebp, 0x80070026
jmp 0x6011fabc
xor ebp, ebp
jmp 0x6011fa6f