Function at 0x4527a3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x740111bc
call fcn.0042522b
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
lea edx, [esp + 0x107006b8]
xor eax, eax
xor ecx, ecx
push edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
xor al, 0x5c
and al, 0x60
xor al, 0x5c
and al, 0x64
mov word [esp + edx], sp
push 0x248c8966
jb 0x4527fb
add byte [eax], al
mov dword [esp + 0x498], ebx
call fcn.004431fb
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push ebx
push eax
push ecx
mov dword [esp + 0x2c], 0x430b01
call fcn.00415597
add esp, 0xc
push 0x44876f8
push edi
call fcn.004133ff
add esp, 8
test eax, eax
jne 0x13b290c
lea edx, [esp + 0x43430ba8]
push edx
push edi
push esi
call fcn.004523e9
test eax, eax
je 0x452856
mov eax, 0xff107006
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xff0c
lea eax, [esp + 0x1009a0]
push eax
lea ecx, [eax + edx + 0x448b0dbc]
push ecx
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0xfc8]
push edx
lea eax, [esp + 0x34]
push eax
push ecx
call 0x84413dcb
dec ebp
in al, 0x14
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x794]
push eax
call fcn.004116ac
lea ecx, [eax + edx + 0xfc8]
push ecx
lea edx, [eax + edx + 0x79c]
push edx
call fcn.0041167e
lea eax, [esp + 0x1009b0]
push eax
lea ecx, [eax + edx + 0xdcc]
push ecx
lea edx, [eax + edx + 0xfd8]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [eax + edx + 0xbc8]
push ecx
call 0x84413dcb
dec ebp
in al, 0x24
lea edx, [esp + 0xdb8]
push edx
lea eax, [esp + 0x794]
push eax
call fcn.0041167e
lea ecx, [eax + edx + 0x9a8]
push ecx
lea edx, [eax + edx + 0x79c]
push edx
call fcn.0041167e
lea eax, [esp + 0x430b07a0]
dec ebp
in al, 0x10
mov dword [ebp + 0x10], eax
jmp 0x452923
mov edx, dword [esi]
push edx
push 1
lea eax, [esp + 0x17]
push 1
push eax
call fcn.004151cb
mov ecx, dword [esi]
push ecx
push 1
lea edx, [esp + edx + 0x28]
push 4
push edx
call fcn.004151cb
mov eax, dword [esi]
mov edi, dword [esp + 0x30]
push eax
push 1
lea ecx, [esp + 0x38]
push 4
xor edi, 0x47487bc
push ecx
mov dword [esp + 0x44], edi
call fcn.004151cb
mov edx, dword [esi]
push edx
push 1
lea eax, [esp + 0x48]
push 4
push eax
call fcn.004151cb
mov ecx, dword [esi]
mov eax, dword [esp + 0x50]
add esp, 0x40
push ecx
push 1
lea edx, [esp + edx + 0x3c]
xor eax, 0xc085a685
push 4
push edx
mov dword [esp + 0x38], eax
call fcn.004151cb
mov eax, dword [esi]
push eax
push 1
lea ecx, [esp + 0x48]
push 4
push ecx
call fcn.004151cb
mov edx, dword [esi]
push edx
push 1
lea eax, [esp + 0x64]
push 4
push eax
call fcn.004151cb
mov ecx, dword [esi]
push ecx
push 1
lea edx, [esp + edx + 0x70]
push 4
push edx
call fcn.004151cb
add esp, 0x40
lea eax, [esp - 0x3f7afb58]
push eax
call fcn.00434fc4
lea ecx, [eax + edx - 0x768afb58]
push 0x4876fc
push ecx
call fcn.00414e21
add esp, 8
xor al, 0x44
and al, 0x18
cmp eax, ebx
jne 0x452a04
mov eax, 0xff107009
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xff0c
mov edx, dword [esi + 8]
add edx, 0x2477
push edx
lea eax, [esp + 0x1006bc]
push eax
call fcn.00443155
xor eax, eax
cmp edi, ebx
jle 0x13b2abe
jmp 0x452a2d
lea ecx, [eax + 0x44010000]
cmp ecx, edi
jle 0x452a3b
sub edi, eax
jmp 0x452a40
mov edi, 0x44010000
mov edx, dword [esi]
push edx
add eax, edi
push edi
mov dword [esp + 0x2c], eax
lea eax, [esp - 0x3f7aee30]
push 1
push eax
call 0xfe4151cb
dec ebp
in al, 0x10
cmp edi, ebx
xor al, 0x5c
and al, 0x1c
jle 0x452a85
lea ecx, [eax + edx + 0x1006b8]
push ecx
call 0x4231cd
mov ecx, dword [esp + 0x1c]
xor byte [esp + ecx + 0x11c8], al
inc ecx
cmp ecx, edi
mov dword [esp + 0x1c], ecx
jl 0x452a64
push edi
lea edx, [eax + edx + 0x11cc]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.00435378
or dword [esp + 0x18], 0x51
push edi
lea edx, [eax + edx - 0x3f7aee30]
push 1
push edx
call fcn.004146e9
mov eax, dword [esp + 0x24]
dec ebp
in al, 0x10
cmp dword [esp + edx], esp
and al, 0xf
mov word [ecx + 0xf], gs
std
dec dword [ebx + 0x5118244c]
call fcn.00414eaf
mov edx, dword [esp + edx + 0x24]
adc dword [esp + eax + 0x39], 0x54
adc al, 0x28
je 0x452af1
lea eax, [esp - 0x3f7afb58]
push eax
call dword [0x4821cc]
mov eax, 0xff10700a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xff0c
cmp byte [esp + 0xf], 1
jne 0x452b88
xor ecx, ecx
lea eax, [esp - 0x3f7afb58]
mov word [esp + 0x64], cx
push eax
lea ecx, [esp + 0x68]
xor edx, edx
push ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov word [esp + 0x276], dx
mov dword [esp + 0x49c], ebx
mov dword [esp + 0x5c], ebx
xor al, 0x5c
and al, 0x60
call fcn.004116ac
mov edx, dword [ebp + 0x10]
push edx
lea eax, [esp + 0x74ff027a]
push eax
call 0x3c4116ac
adc dword [eax + edx - 0x73], 0x4c
and al, 0x40
push ecx
call fcn.0044b1b0
test eax, eax
je 0x452bbb
lea edx, [esp + 0x4a8]
push edx
call dword [0x4821cc]
mov eax, 0xff10700b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xff0c
mov eax, dword [ebp + 0x10]
push ebx
push eax
lea ecx, [eax + edx + 0x8204b0]
push ecx
call dword [0xff4821dc]
test eax, eax
jne 0x452bbb
lea edx, [esp + 0x4a8]
push edx
call dword [0x4821cc]
mov eax, 0xff107007
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xff0c
lea eax, [esp - 0x3f7afb58]
push eax
call dword [0x4821cc]
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
call fcn.00434f81
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xff0c