Function at 0x451860
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff64
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
xor eax, eax
push ebp
push 0x451adc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00404278
lea eax, [ebp - 0xc]
mov edx, dword [0x452f98]
mov edx, dword [edx]
mov edx, dword [edx + 8]
call fcn.00404310
cmp dword [ebp - 0xc], 0
je 0x451ab6
lea eax, [ebp - 0x98]
mov ecx, dword [ebp - 0xc]
mov edx, 0x451af4
call fcn.0040457c
mov eax, dword [ebp - 0x98]
lea ecx, [ebp - 0x94]
mov edx, 0x10
call fcn.004296dc
mov edx, dword [ebp - 0x94]
lea eax, [ebp - 0xc]
call fcn.00404310
xor esi, esi
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 0xc]
movzx edx, byte [edx + esi]
mov dword [eax], edx
inc esi
add eax, 4
cmp esi, 0x10
jne 0x4518f5
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x50]
mov ecx, 0x10
call fcn.004028d4
xor esi, esi
lea eax, [ebp - 0x50]
lea edx, [ebp - 0x90]
mov ecx, 0xf
sub ecx, esi
mov ecx, dword [ebp + ecx*4 - 0x50]
add ecx, 0x12d10b6
mov ebx, dword [eax]
sub ebx, 0x12d1113
not ebx
xor ecx, ebx
mov dword [edx], ecx
inc esi
add edx, 4
add eax, 4
cmp esi, 0x10
jne 0x451925
mov esi, 0x10
lea ecx, [ebp - 0x90]
mov ebx, dword [ecx]
xor dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x4c]
not eax
and eax, ebx
mov dword [ebp - 0x4c], eax
mov edi, ebx
not edi
mov edx, edi
xor edx, eax
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x44]
not eax
mov edx, dword [ecx]
not edx
and eax, edi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x40]
xor eax, ebx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
xor eax, ebx
xor dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
add eax, dword [ebp - 0x38]
mov edx, dword [ecx]
not edx
xor eax, edi
mov dword [ebp - 0x38], eax
mov eax, dword [ecx]
not eax
mov eax, edi
xor eax, dword [ebp - 0x34]
xor eax, dword [ebp - 0x50]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
xor eax, ebx
add eax, ebx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
not eax
and eax, ebx
add eax, ebx
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx]
not eax
mov eax, edi
xor eax, dword [ebp - 0x28]
add eax, ebx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
not eax
mov edx, dword [ecx]
not edx
and eax, edi
add eax, ebx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp - 0x20]
xor eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
not eax
and eax, ebx
push eax
mov eax, dword [ebp - 0x2c]
pop edx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx]
not eax
mov eax, edi
xor eax, dword [ebp - 0x18]
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
not eax
mov edx, dword [ecx]
not edx
and eax, edi
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x14], eax
add ecx, 4
dec esi
jne 0x45195b
lea eax, [ebp - 0xc]
call fcn.00404278
mov esi, 0x10
lea eax, [ebp - 0x50]
mov dword [ebp - 0x10], eax
lea edx, [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, 4
call fcn.004028d4
mov edi, 4
lea ebx, [ebp - 8]
lea ecx, [ebp - 0x9c]
xor eax, eax
mov al, byte [ebx]
mov edx, 2
call fcn.00408424
mov edx, dword [ebp - 0x9c]
lea eax, [ebp - 0xc]
call fcn.00404538
inc ebx
dec edi
jne 0x451a6b
add dword [ebp - 0x10], 4
dec esi
jne 0x451a53
mov eax, dword [ebp - 4]
push eax
mov ecx, 0x10
mov edx, 0x32
mov eax, dword [ebp - 0xc]
call fcn.00429700
lea eax, [ebp - 0xc]
call fcn.00404278
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x451ae3
lea eax, [ebp - 0x9c]
mov edx, 3
call fcn.0040429c
lea eax, [ebp - 0xc]
call fcn.00404278
ret