Function at 0x6011f650
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 0x6011f7fc
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 0x6011f822
call fcn.601180b0
cmp eax, ebp
mov dword [esp + 0x10], eax
jl 0x6011f6f2
cmp byte [edi], 0
je 0x6011f6f2
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 0x6011f7fc
lea ecx, [ebx + 8]
push ecx
push edi
call fcn.6011f2a0
mov esi, eax
add esp, 8
cmp esi, ebp
jl 0x6011f7fc
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 0x6011f83f
call fcn.601180b0
cmp eax, ebp
mov dword [esp + 0x10], eax
jl 0x6011f792
cmp byte [edi], 0
je 0x6011f792
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 0x6011f7fc
lea ecx, [ebx + 0x10]
push ecx
push edi
call fcn.6011f2a0
mov esi, eax
add esp, 8
cmp esi, ebp
jl 0x6011f7fc
mov eax, dword [edi + 8]
push ebp
lea edx, [esp + 0x18]
push edx
push 1
lea esi, [ebx + 0x14]
push esi
push eax
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x6011f85c
call fcn.601180b0
mov ecx, eax
cmp ecx, ebp
jl 0x6011f7f6
cmp byte [edi], 0
je 0x6011f7f6
mov edi, dword [edi + 4]
mov ebp, dword [edi - 0xc]
xor eax, eax
xor edx, edx
div ebp
mov al, byte [esi]
mov dl, byte [edx + edi]
xor al, dl
mov byte [esi], al
xor ebp, ebp
cmp ecx, ebp
mov esi, ecx
jge 0x6011f818
lea ecx, [ebx + 8]
mov dword [ebx], ebp
mov dword [ebx + 4], ebp
call fcn.601041b0
lea ecx, [ebx + 0x10]
mov dword [ebx + 0xc], ebp
call fcn.601041b0
mov byte [ebx + 0x14], 0
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 8
ret
cmp dword [esp + 0x14], 4
je 0x6011f836
mov dword [esp + 0x10], 0x80070026
jmp 0x6011f6f2
mov dword [esp + 0x10], ebp
jmp 0x6011f6a4
cmp dword [esp + 0x14], 4
je 0x6011f853
mov dword [esp + 0x10], 0x80070026
jmp 0x6011f792
mov dword [esp + 0x10], ebp
jmp 0x6011f744
cmp dword [esp + 0x14], 1
je 0x6011f86a
mov ecx, 0x80070026
jmp 0x6011f7f6
xor ecx, ecx
jmp 0x6011f7da