Function at 0x4f8cc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0xf64]
sub esp, 0xf64
push 0xffffffffffffffff
push 0x553361
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x58bb30]
xor eax, ebp
mov dword [ebp + 0xf60], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xf78]
mov ebx, dword [ebp + 0xf70]
mov edi, dword [ebp + 0xf6c]
push 0x200
mov dword [ebp - 0x38], eax
xor eax, eax
push eax
mov word [ebp + 0xb30], ax
lea eax, [ebp + 0x930]
push eax
push str.PasswordData
push ebx
mov dword [ebp - 0x10], ebx
call fcn.004cf5f0
test eax, eax
jne 0x4f8e1e
push 0x400
push eax
lea eax, [ebp + 0x530]
push eax
call fcn.00531c60
add esp, 0xc
lea eax, [ebp + 0x530]
push 0x400
push 0
push eax
push str.PasswordWide
push ebx
call fcn.004cf5f0
mov edx, eax
test edx, edx
jne 0x4f8dd1
push 0x400
push eax
mov byte [ebp + 0x530], al
lea eax, [ebp + 0x530]
push eax
push str.Password
push ebx
call fcn.004cf5f0
xor edx, edx
test eax, eax
jle 0x4f8da3
lea ecx, [edx + 0x49]
xor byte [ebp + edx + 0x530], cl
je 0x4f8da3
inc edx
cmp edx, eax
jl 0x4f8d92
push 0x200
lea eax, [ebp + 0xb30]
push eax
lea eax, [ebp + 0x530]
push eax
call fcn.004c0a40
push 0x400
lea eax, [ebp + 0x530]
push eax
call fcn.004ba540
jmp 0x4f909d
xor ecx, ecx
test edx, edx
jle 0x4f8df0
jmp 0x4f8de0
mov al, cl
add al, 0x49
xor byte [ebp + ecx + 0x530], al
inc ecx
cmp ecx, edx
jl 0x4f8de0
push 0x200
lea eax, [ebp + 0xb30]
push eax
lea eax, [ebp + 0x530]
push eax
call fcn.004c0b50
push 0x400
lea eax, [ebp + 0x530]
push eax
call fcn.004ba540
jmp 0x4f909d
lea ecx, [ebp - 0x30]
call fcn.004a6fc0
mov dword [ebp - 4], 0
lea eax, [ebp + 0x930]
push 0x200
push eax
lea ecx, [ebp - 0x30]
call fcn.004a7510
lea ecx, [ebp - 0x30]
call fcn.004a7050
cmp al, 1
jne 0x4f9086
lea ecx, [ebp - 0x30]
call fcn.004a70b0
mov esi, eax
lea ecx, [ebp - 0x30]
push 0x10
lea eax, [ebp + 0xf30]
shr esi, 0x18
push eax
mov dword [ebp - 0x34], esi
call fcn.004a7200
push 0x10
lea eax, [ebp + 0xf40]
push eax
lea ecx, [ebp - 0x30]
call fcn.004a7200
push 8
lea eax, [ebp + 0xf58]
push eax
lea ecx, [ebp - 0x30]
call fcn.004a7200
lea ecx, [ebp]
call fcn.00482e60
mov byte [ebp - 4], 1
xor bl, bl
lea ecx, [ebp - 0x48]
call fcn.004b9f00
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x48]
cmp byte [0x5f43d0], 0
je 0x4f8ed8
push dword [ebp - 0x10]
push dword [0x5f43c8]
push dword [0x5f43c4]
call fcn.00404d10
mov al, byte [0x5f43d0]
mov byte [ebp - 0x3c], al
jmp 0x4f8ee2
push 0x55a968
call fcn.004ba4d0
lea eax, [ebp + 0xf50]
push eax
push 0
push esi
lea eax, [ebp + 0xf40]
push eax
lea eax, [ebp + 0xf30]
push eax
lea eax, [ebp - 0x48]
push eax
push 5
push 0
lea ecx, [ebp]
call fcn.004836b0
lea ecx, [ebp + 0xf58]
mov eax, dword [ecx]
lea edx, [ebp + 0xf50]
cmp eax, dword [edx]
jne 0x4f8f28
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jne 0x4f8f28
xor al, al
jmp 0x4f8f2a
mov al, 1
test al, al
je 0x4f8f96
test bl, bl
je 0x4f8f57
push 0x66
call fcn.004b68d0
push 0x606
mov esi, eax
call fcn.004b68d0
push 0
push esi
push eax
push dword [0x5933e8]
call fcn.004fdf00
mov esi, dword [ebp - 0x34]
push dword [ebp - 0x38]
push 0
push 0x5f43c4
push edi
call fcn.00464930
test al, al
je 0x4f8f7e
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x48]
call fcn.004b9fd0
mov bl, 1
jmp 0x4f8ea2
mov byte [0x5b02de], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x48]
call fcn.004b9fd0
jmp 0x4f9046
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x48]
call fcn.004b9fd0
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp]
sub edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x18]
push edx
push eax
call fcn.00483480
lea ecx, [ebp - 0x30]
call fcn.004a7070
movzx esi, ax
lea ecx, [ebp - 0x30]
lea eax, [ebp + 0xb30]
cmp esi, 0x200
jae 0x4f8ff3
push esi
push eax
call fcn.004a7350
cmp esi, 0x1ff
jae 0x4f8ffe
add esi, esi
cmp esi, 0x400
jae 0x4f9134
jmp 0x4f9003
push 0x200
push eax
call fcn.004a7350
mov esi, 0x3fe
push dword [ebp - 0x18]
xor eax, eax
push dword [ebp - 0x30]
mov word [ebp + esi + 0xb30], ax
push 0xffffffffffffffff
call fcn.004826b0
mov esi, eax
lea ecx, [ebp - 0x30]
not esi
call fcn.004a70b0
cmp esi, eax
je 0x4f9046
xor eax, eax
push 0x5d0
mov word [ebp + 0xb30], ax
call fcn.004b68d0
push eax
call fcn.00502bd0
add esp, 4
push dword [ebp - 0x1c]
push dword [ebp - 0x30]
call fcn.004ba540
mov byte [ebp - 4], 3
lea eax, [ebp + 0xf4]
push 0x464150
push 4
push 0x84
push eax
call fcn.0052f9f3
mov byte [ebp - 4], 0
lea eax, [ebp]
push 0x4640d0
push 4
push 0x3c
push eax
call fcn.0052f9f3
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4f909d
push eax
call fcn.00537b6f
add esp, 4
cmp byte [ebp + 0xf74], 0
je 0x4f90c1
cmp byte [0x5b3504], 0
jne 0x4f90fe
cmp byte [0x5a9f00], 0
jne 0x4f90fe
cmp byte [0x5b12fb], 0
jne 0x4f90fe
lea eax, [ebp + 0xb30]
mov ecx, 0x5b34f8
push eax
call fcn.004ba4d0
push 0
push str.EncryptHeaders
push ebx
call fcn.004cf550
push 0
test eax, eax
push str.ZipLegacyEncrypt
push ebx
setne byte [0x5a9f00]
call fcn.004cf550
test eax, eax
setne byte [0x5b12fb]
push 0x400
lea eax, [ebp + 0xb30]
push eax
call fcn.004ba540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xf60]
xor ecx, ebp
call fcn.0052f708
lea esp, [ebp + 0xf64]
pop ebp
ret 0x10
call fcn.0052f62d
int3