Function at 0x413ba0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x30
mov eax, dword [0x467fd0]
xor eax, esp
mov dword [esp + 0x2c], eax
push ebp
mov ebp, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x3c]
cmp byte [esi + 0x148], 9
push edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], esi
je 0x413be1
pop edi
pop esi
mov eax, 0xfffffffb
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00432994
add esp, 0x30
ret
mov cl, byte [esi]
cmp cl, 5
je 0x413c05
cmp byte [esi + 1], 1
jne 0x413c05
pop edi
pop esi
mov eax, 0xfffffffa
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00432994
add esp, 0x30
ret
test ebp, ebp
je 0x413f10
mov eax, dword [esp + 0x48]
test eax, eax
jle 0x413f10
cdq
and edx, 0x7f
add eax, edx
movsx ecx, cl
sar eax, 7
sub ecx, 3
push ebx
mov dword [esp + 0x14], eax
je 0x413ed5
sub ecx, 1
je 0x413e24
sub ecx, 1
je 0x413c57
pop ebx
pop edi
pop esi
or eax, 0xffffffff
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00432994
add esp, 0x30
ret
mov ecx, dword [esi + 0x44]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x50]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
test eax, eax
jle 0x413efa
nop
xor esi, esi
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov bl, byte [esp + 0x1d]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 0x34], edx
push ecx
mov edx, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00412cc0
mov dl, byte [esp + 0x28]
mov al, byte [esp + 0x2a]
add dl, dl
mov cl, bl
shr cl, 7
or cl, dl
mov byte [esp + 0x28], cl
mov cl, al
shr cl, 7
add bl, bl
or cl, bl
mov byte [esp + 0x29], cl
mov cl, byte [esp + 0x2b]
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x2c]
mov byte [esp + 0x2a], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x2d]
mov byte [esp + 0x2b], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x2e]
mov byte [esp + 0x2c], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x2f]
mov byte [esp + 0x2d], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x30]
mov byte [esp + 0x2e], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x31]
mov byte [esp + 0x2f], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x32]
mov byte [esp + 0x30], dl
mov dl, al
shr dl, 7
add cl, cl
or dl, cl
mov cl, byte [esp + 0x33]
mov byte [esp + 0x31], dl
mov dl, cl
add esp, 0xc
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x28]
mov byte [esp + 0x26], dl
add cl, cl
mov dl, al
shr dl, 7
or dl, cl
mov cl, byte [esp + 0x29]
mov byte [esp + 0x27], dl
mov dl, cl
shr dl, 7
add al, al
or dl, al
mov al, byte [esp + 0x2a]
add cl, cl
mov byte [esp + 0x28], dl
mov dl, al
shr dl, 7
or dl, cl
movzx ecx, byte [esp + 0x2b]
shr cl, 7
add al, al
or cl, al
mov byte [esp + 0x2a], cl
mov eax, esi
mov byte [esp + 0x29], dl
shr eax, 3
movzx ebx, byte [eax + ebp]
mov edx, esi
and edx, 7
mov cl, 7
sub cl, dl
shr bl, cl
movzx ecx, byte [esp + 0x2b]
and bl, 1
add cl, cl
or bl, cl
mov byte [esp + 0x2b], bl
movzx ebx, byte [esp + 0x2c]
and bl, 0x80
mov cl, dl
shr bl, cl
inc esi
xor byte [eax + edi], bl
cmp esi, 0x80
jl 0x413c82
mov eax, dword [esp + 0x10]
dec eax
mov dword [esp + 0x10], eax
test eax, eax
jg 0x413c80
mov eax, dword [esp + 0x14]
pop ebx
pop edi
pop esi
shl eax, 7
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00432994
add esp, 0x30
ret
mov edx, dword [esi + 0x48]
mov ecx, dword [esi + 0x4c]
mov ebx, dword [esi + 0x44]
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x50]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
test eax, eax
jle 0x413efa
lea eax, [esp + 0x2c]
push eax
push ebp
push esi
call fcn.004130c0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
xor ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
xor edx, dword [esp + 0x30]
xor eax, ebx
mov ebx, dword [esp + 0x34]
xor dword [esp + 0x44], ebx
mov ebx, dword [ebp]
mov dword [edi], eax
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 4]
mov dword [edi + 4], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 8]
mov dword [edi + 8], edx
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x1c]
dec eax
add esp, 0xc
add ebp, 0x10
add edi, 0x10
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x10], eax
test eax, eax
jg 0x413e48
mov eax, dword [esp + 0x14]
pop ebx
pop edi
pop esi
shl eax, 7
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00432994
add esp, 0x30
ret
mov ebx, eax
test eax, eax
jle 0x413efa
jmp 0x413ee0
push edi
push ebp
push esi
call fcn.004130c0
dec ebx
add esp, 0xc
add ebp, 0x10
add edi, 0x10
test ebx, ebx
jg 0x413ee0
mov eax, dword [esp + 0x14]
pop ebx
pop edi
pop esi
shl eax, 7
pop ebp
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00432994
add esp, 0x30
ret
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
xor ecx, esp
xor eax, eax
call fcn.00432994
add esp, 0x30
ret