Function at 0x451a12
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4a632e
call fcn.004a5ab8
sub esp, 0x5c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], 0x20fb
xor ebx, ebx
cmp dword [ebp - 0x20], 0x2336
jle 0x451a76
mov esi, ebx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x18], ebx
lea eax, [edi + esi]
xor eax, ecx
cdq
push edx
push eax
mov ecx, 0xab36e8
call fcn.0041b4f7
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, 0x70a
jl 0x451a43
inc edi
cmp edi, 0x7c0d
jl 0x451a3e
inc esi
cmp esi, 0x18b2
jl 0x451a3c
push 3
lea ecx, [ebp - 0x4c]
call fcn.0041b63b
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x1e7e
jge 0x451a9d
push 0xaa1c20
push 0xab36e8
call fcn.0041cf47
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x451ac3
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x18], 0xffffffff
xor edi, edi
inc edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], 0xfffffff8
mov dword [ebp - 0x18], ebx
jmp 0x451aef
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x4c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x451ae3
mov dword [ebp - 0x18], ebx
push 2
pop esi
jmp 0x451b0b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x34], 0x38591b6
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x451afd
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx]
add eax, 0xffff1468
mov dword [ebp - 0x34], eax
mov edx, dword [ecx + 8]
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
cmp edx, ecx
sete al
xor ecx, ecx
cmp eax, 0xa9b6
setl cl
xor eax, eax
cmp edx, 0x4b811476
setge al
add ecx, eax
je 0x451bb8
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], esi
push 4
pop esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], 0xb3847d22
mov dword [ebp - 0x20], 0xf86f25db
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x20], 0x11d7feae
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], 0x8f49235
mov dword [ebp - 0x18], ebx
jmp 0x451b99
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x68], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x451b8f
mov dword [ebp - 0x18], ebx
jmp 0x451bad
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x451ba3
dec dword [ebp - 0x24]
jmp 0x451bd3
mov dword [ebp - 0x28], 5
mov byte [ebp - 0x11], bl
lea ecx, [ebp - 0x11]
call fcn.00451940
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x28], eax
push 4
pop esi
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], ebx
jl 0x451c45
push esi
lea ecx, [ebp - 0x40]
call fcn.0041b63b
mov dword [ebp - 0x1c], ebx
jmp 0x451bf9
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov dword [eax + ecx*4], 0xce61fa7
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x451be9
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], 0x5b7518db
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x20]
xor ebx, ebx
cmp eax, dword [ecx + edx*4]
setle bl
dec ebx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0x34]
add ecx, ebx
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x34], ecx
mov ecx, dword [ebp - 0x34]
neg ecx
mov eax, dword [ebp - 0x40]
mov dword [eax + 8], ecx
lea ecx, [ebp - 0x40]
call fcn.0041b70d
dec dword [ebp - 0x18]
push 0
pop ebx
jns 0x451bdb
lea ecx, [ebp - 0x4c]
call fcn.0041b70d
mov eax, dword [ebp - 0x2c]
lea eax, [eax - 0xa]
cdq
mov ecx, 0xca
idiv ecx
sub eax, 0xa
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret