Function at 0x460740
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x16c]
push ebp
mov ebp, dword [esp + 0x14]
push edi
xor edi, edi
test ebp, ebp
je 0x4609ba
test bl, 3
push esi
jne 0x460841
test al, 3
je 0x460793
lea ebx, [ebx]
cmp edi, ebp
jae 0x46078b
mov ecx, dword [esp + 0x18]
mov dl, byte [edi + ecx]
mov cl, byte [eax + ebx + 0x30]
xor cl, dl
inc edi
mov byte [eax + ebx + 0x30], cl
inc eax
test al, 3
jne 0x460770
test al, 3
jne 0x460975
mov edx, dword [esp + 0x18]
mov ecx, edi
sub ecx, ebx
add ecx, edx
test cl, 3
jne 0x460979
lea ecx, [edi + 0x10]
cmp ecx, ebp
ja 0x4607ca
lea ecx, [ecx]
cmp eax, 0x10
jae 0x4607ca
mov esi, dword [edx + ecx - 0x10]
xor dword [eax + ebx + 0x30], esi
add ecx, 4
add edi, 4
add eax, 4
cmp ecx, ebp
jbe 0x4607b0
lea ecx, [edi + 0x10]
cmp ecx, ebp
ja 0x460979
mov eax, 8
sub eax, edx
lea esi, [ebx + 0x30]
mov dword [esp + 0x20], 0x10
lea ebp, [edi + edx + 8]
mov dword [esp + 0x10], eax
nop
lea eax, [ebx + 0x70]
push eax
push esi
push esi
call fcn.00461081
mov edx, dword [ebp - 8]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
xor eax, edx
mov edx, dword [esi + 8]
mov dword [esi], eax
mov eax, dword [ebp - 4]
xor ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
xor edx, ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 8], edx
mov edx, dword [ebp + 4]
xor ecx, edx
add ebp, 0x10
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x28]
add eax, ebp
add esp, 0xc
add edi, 0x10
cmp eax, ecx
jbe 0x4607f0
jmp 0x46096d
cmp ebp, 0x10
jb 0x46086e
mov esi, 0x10
jmp 0x460850
cmp eax, 0x10
jae 0x46086e
mov ecx, dword [esp + 0x18]
mov dl, byte [esi + ecx - 0x10]
mov cl, byte [eax + ebx + 0x30]
xor cl, dl
inc edi
inc esi
mov byte [eax + ebx + 0x30], cl
inc eax
cmp esi, ebp
jbe 0x460850
lea ecx, [edi + 0x10]
cmp ecx, ebp
ja 0x460975
mov eax, dword [esp + 0x18]
mov ecx, 0xf
sub ecx, eax
lea ebp, [ebx + 0x30]
mov dword [esp + 0x20], 0x10
lea esi, [edi + eax + 1]
mov dword [esp + 0x10], ecx
lea eax, [ebx + 0x70]
push eax
push ebp
push ebp
call fcn.00461081
mov dl, byte [esi - 1]
mov al, byte [ebp]
xor al, dl
mov cl, byte [ebx + 0x31]
mov dl, byte [ebx + 0x32]
mov byte [ebp], al
mov al, byte [esi]
xor cl, al
mov al, byte [ebx + 0x33]
mov byte [ebx + 0x31], cl
mov cl, byte [esi + 1]
xor dl, cl
mov cl, byte [ebx + 0x34]
mov byte [ebx + 0x32], dl
mov dl, byte [esi + 2]
xor al, dl
mov dl, byte [ebx + 0x35]
mov byte [ebx + 0x33], al
mov al, byte [esi + 3]
xor cl, al
mov al, byte [ebx + 0x36]
mov byte [ebx + 0x34], cl
mov cl, byte [esi + 4]
xor dl, cl
mov cl, byte [ebx + 0x37]
mov byte [ebx + 0x35], dl
mov dl, byte [esi + 5]
xor al, dl
mov dl, byte [ebx + 0x38]
mov byte [ebx + 0x36], al
mov al, byte [esi + 6]
xor cl, al
mov al, byte [ebx + 0x39]
mov byte [ebx + 0x37], cl
mov cl, byte [esi + 7]
xor dl, cl
mov cl, byte [ebx + 0x3a]
mov byte [ebx + 0x38], dl
mov dl, byte [esi + 8]
xor al, dl
mov dl, byte [ebx + 0x3b]
mov byte [ebx + 0x39], al
mov al, byte [esi + 9]
xor cl, al
mov al, byte [ebx + 0x3c]
mov byte [ebx + 0x3a], cl
mov cl, byte [esi + 0xa]
xor dl, cl
mov cl, byte [ebx + 0x3d]
mov byte [ebx + 0x3b], dl
mov dl, byte [esi + 0xb]
xor al, dl
mov dl, byte [ebx + 0x3e]
mov byte [ebx + 0x3c], al
mov al, byte [esi + 0xc]
xor cl, al
mov al, byte [ebx + 0x3f]
mov byte [ebx + 0x3d], cl
mov cl, byte [esi + 0xd]
xor dl, cl
mov byte [ebx + 0x3e], dl
mov dl, byte [esi + 0xe]
xor al, dl
mov byte [ebx + 0x3f], al
mov eax, dword [esp + 0x1c]
add esi, 0x10
lea ecx, [esi + eax]
mov eax, dword [esp + 0x28]
add esp, 0xc
add edi, 0x10
cmp ecx, eax
jbe 0x460897
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp edi, ebp
jae 0x4609b3
lea esi, [ebx + 0x30]
cmp eax, 0x10
jne 0x4609a7
lea edx, [ebx + 0x70]
push edx
push esi
push esi
call fcn.00461081
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov cl, byte [edi + edx]
xor byte [esi + eax], cl
inc edi
inc eax
cmp edi, ebp
jb 0x460980
mov dword [ebx + 0x16c], eax
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret