Function at 0x6011fb50
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
mov esi, eax
xor ebp, ebp
cmp esi, ebp
jl 0x6011fd7a
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 0x6011fd9e
call fcn.601180b0
cmp eax, ebp
mov dword [esp + 0x10], eax
jl 0x6011fbf2
cmp byte [edi], 0
je 0x6011fbf2
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 esi, dword [esp + 0x10]
cmp esi, ebp
jl 0x6011fd7a
lea ecx, [ebx + 8]
push ecx
push edi
call fcn.6011f2a0
mov esi, eax
add esp, 8
cmp esi, ebp
jl 0x6011fd7a
mov eax, dword [edi + 8]
push ebp
lea edx, [esp + 0x18]
push edx
push 1
lea esi, [ebx + 0xc]
push esi
push eax
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011fdbb
call fcn.601180b0
mov ebp, eax
test ebp, ebp
jl 0x6011fc5e
cmp byte [edi], 0
je 0x6011fc5e
mov ecx, dword [edi + 4]
mov edx, dword [ecx - 0xc]
mov dword [esp + 0x10], edx
xor eax, eax
xor edx, edx
div dword [esp + 0x10]
mov al, byte [edx + ecx]
xor byte [esi], al
test ebp, ebp
mov esi, ebp
jl 0x6011fd78
mov edx, dword [edi + 8]
xor ebp, ebp
push ebp
lea ecx, [esp + 0x18]
push ecx
push 4
lea esi, [ebx + 0x10]
push esi
push edx
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011fdd0
call fcn.601180b0
cmp eax, ebp
mov dword [esp + 0x10], eax
jl 0x6011fce6
cmp byte [edi], 0
je 0x6011fce6
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
mov esi, dword [esp + 0x10]
test esi, esi
jl 0x6011fd78
mov eax, dword [edi + 8]
xor ebp, ebp
push ebp
lea edx, [esp + 0x18]
push edx
push 4
lea esi, [ebx + 0x14]
push esi
push eax
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011fded
call fcn.601180b0
mov ebp, eax
test ebp, ebp
jl 0x6011fd72
cmp byte [edi], 0
je 0x6011fd72
mov edi, dword [edi + 4]
mov ecx, dword [edi - 0xc]
xor eax, eax
xor edx, edx
div ecx
mov al, byte [esi]
mov dl, byte [edx + edi]
xor al, dl
mov byte [esi], al
xor edx, edx
mov eax, 1
div ecx
mov al, byte [edx + edi]
xor byte [esi + 1], al
xor edx, edx
mov eax, 2
div ecx
mov al, byte [esi + 2]
mov dl, byte [edx + edi]
xor al, dl
mov byte [esi + 2], al
xor edx, edx
mov eax, 3
div ecx
mov cl, byte [esi + 3]
mov al, byte [edx + edi]
xor cl, al
mov byte [esi + 3], cl
test ebp, ebp
mov esi, ebp
jge 0x6011fd94
xor ebp, ebp
lea ecx, [ebx + 8]
mov dword [ebx], ebp
mov dword [ebx + 4], ebp
call fcn.601041b0
mov byte [ebx + 0xc], 0
mov dword [ebx + 0x10], ebp
mov dword [ebx + 0x14], ebp
mov dword [ebx + 0x18], ebp
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 8
ret
cmp dword [esp + 0x14], 4
je 0x6011fdb2
mov dword [esp + 0x10], 0x80070026
jmp 0x6011fbf2
mov dword [esp + 0x10], ebp
jmp 0x6011fba4
cmp dword [esp + 0x14], 1
je 0x6011fc42
mov ebp, 0x80070026
jmp 0x6011fc5e
cmp dword [esp + 0x14], 4
je 0x6011fde4
mov dword [esp + 0x10], 0x80070026
jmp 0x6011fce6
mov dword [esp + 0x10], ebp
jmp 0x6011fc99
cmp dword [esp + 0x14], 4
je 0x6011fd21
mov ebp, 0x80070026
jmp 0x6011fd72