Function at 0x45f2ec
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov edi, eax
mov eax, dword [ebp - 4]
call fcn.00404328
xor eax, eax
push ebp
push 0x45f555
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
mov byte [ebp - 0x25], 1
mov byte [ebp - 0x24], 0x11
mov byte [ebp - 0x23], 0xe8
mov byte [ebp - 0x22], 6
mov byte [ebp - 0x21], 0x32
mov byte [ebp - 0x20], 0xf
mov byte [ebp - 0x1f], 0xc
mov byte [ebp - 0x1e], 0xbb
mov byte [ebp - 0x1d], 0xeb
mov bl, 9
mov eax, dword [ebp - 4]
call fcn.00404138
test eax, eax
jle 0x45f3c1
mov eax, dword [ebp - 4]
call fcn.00404138
mov edx, dword [ebp - 4]
mov al, byte [edx + eax - 1]
call fcn.0045ee54
mov esi, ebx
and esi, 0xff
mov byte [ebp + esi - 0x25], al
mov eax, dword [ebp - 4]
call fcn.00404138
mov edx, eax
dec edx
lea eax, [ebp - 4]
call fcn.004044c4
mov eax, dword [ebp - 4]
call fcn.00404138
test eax, eax
jle 0x45f3c1
mov eax, dword [ebp - 4]
call fcn.00404138
mov edx, dword [ebp - 4]
mov al, byte [edx + eax - 1]
call fcn.0045ee54
shl eax, 4
add byte [ebp + esi - 0x25], al
mov eax, dword [ebp - 4]
call fcn.00404138
mov edx, eax
dec edx
lea eax, [ebp - 4]
call fcn.004044c4
inc ebx
cmp bl, 0x11
jb 0x45f348
mov byte [ebp - 0x14], 0
mov byte [ebp - 0x13], 3
mov byte [ebp - 0xa], 0
mov bl, 1
xor eax, eax
mov al, bl
mov al, byte [ebp + eax - 0x25]
xor byte [ebp - 0xa], al
inc ebx
cmp bl, 0x13
jb 0x45f3d5
mov al, byte [ebp - 0xa]
mov byte [ebp - 0x12], al
mov eax, edi
call fcn.0045ebd4
lea edx, [ebp - 0x25]
mov eax, edi
mov ecx, 0x14
call fcn.0045ec08
lea edx, [ebp - 0x25]
mov eax, edi
mov ecx, 2
call fcn.0045ed08
cmp eax, 2
je 0x45f422
mov dword [edi + 0x4c], 0xffffffff
jmp 0x45f52a
mov al, byte [ebp - 0x24]
mov byte [ebp - 0xa], al
mov ebx, eax
test bl, bl
jb 0x45f45b
inc ebx
lea esi, [ebp - 0x23]
mov edx, esi
mov eax, edi
mov ecx, 1
call fcn.0045ed08
cmp eax, 1
je 0x45f451
mov dword [edi + 0x4c], 0xffffffff
jmp 0x45f52a
mov al, byte [esi]
xor byte [ebp - 0xa], al
inc esi
dec bl
jne 0x45f432
cmp byte [ebp - 0xa], 0
je 0x45f46d
mov dword [edi + 0x4c], 0xfffffffc
jmp 0x45f52a
mov al, byte [ebp - 0x23]
mov edx, eax
and dl, 3
sub dl, 1
jb 0x45f486
je 0x45f48e
dec dl
je 0x45f496
dec dl
je 0x45f49e
jmp 0x45f4a4
mov edx, dword [ebp - 8]
mov byte [edx], 0
jmp 0x45f4a4
mov edx, dword [ebp - 8]
mov byte [edx], 1
jmp 0x45f4a4
mov edx, dword [ebp - 8]
mov byte [edx], 2
jmp 0x45f4a4
mov edx, dword [ebp - 8]
mov byte [edx], 3
and eax, 0xff
shr eax, 2
and al, 3
mov edx, dword [ebp + 8]
mov byte [edx], al
mov eax, dword [ebp - 4]
call fcn.0045edd0
push edx
push eax
lea edx, [ebp - 0x2c]
mov eax, 0x10
call fcn.00407f70
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 4]
call fcn.00403f10
lea eax, [ebp - 0x10]
call fcn.00403e78
mov bl, byte [ebp - 0x24]
dec ebx
cmp bl, 1
jb 0x45f510
xor eax, eax
mov al, bl
lea esi, [ebp + eax - 0x23]
lea ecx, [ebp - 0x30]
xor eax, eax
mov al, byte [esi]
mov edx, 2
call fcn.00407f48
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x10]
call fcn.00404140
dec ebx
dec esi
test bl, bl
jne 0x45f4ee
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
call fcn.00404284
jne 0x45f523
mov byte [ebp - 9], 1
jmp 0x45f52a
mov dword [edi + 0x4c], 0xfffffffb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45f55c
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.00403e9c
lea eax, [ebp - 0x10]
call fcn.00403e78
lea eax, [ebp - 4]
call fcn.00403e78
ret