Function at 0x40f2ec
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa4
push ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x48], eax
mov eax, 0x52e278
call fcn.00519d2c
mov dword [ebp - 0x28], 1
lea edx, [ebp - 4]
lea eax, [ebp - 4]
call fcn.00525e48
inc dword [ebp - 0x28]
mov word [ebp - 0x34], 0xc
lea eax, [ebp - 4]
call fcn.00404098
test al, al
je 0x40f391
mov word [ebp - 0x34], 0x18
mov edx, 0x52df67
lea eax, [ebp - 0xc]
call fcn.00525e08
inc dword [ebp - 0x28]
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 0x10]
call fcn.00525fb0
mov eax, dword [ebp - 0x10]
mov word [ebp - 0x34], 0x24
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00525f88
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00525f88
pop eax
mov word [ebp - 0x34], 0x18
inc dword [ebp - 0x28]
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
jmp 0x40f5c8
lea eax, [ebp - 4]
call fcn.004048bc
mov dword [ebp - 0x4c], eax
mov word [ebp - 0x34], 0xc
mov edx, dword [ebp - 0x4c]
and edx, 0x80000001
jns 0x40f3b2
dec edx
or edx, 0xfffffffe
inc edx
test edx, edx
je 0x40f41a
mov word [ebp - 0x34], 0x30
mov edx, 0x52df68
lea eax, [ebp - 0x14]
call fcn.00525e08
inc dword [ebp - 0x28]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x10]
call fcn.00525fb0
mov eax, dword [ebp - 0x10]
mov word [ebp - 0x34], 0x3c
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.00525f88
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00525f88
pop eax
mov word [ebp - 0x34], 0x30
inc dword [ebp - 0x28]
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
jmp 0x40f5c8
mov ecx, 2
mov eax, dword [ebp - 0x4c]
cdq
idiv ecx
mov dword [ebp - 0x4c], eax
push dword [ebp - 0x4c]
call fcn.005109ac
pop ecx
mov dword [ebp - 0x50], eax
mov word [ebp - 0x34], 0xc
mov word [ebp - 0x34], 0x48
lea eax, [ebp - 8]
call fcn.00403990
inc dword [ebp - 0x28]
mov word [ebp - 0x34], 0xc
mov byte [ebp - 0x51], 0
xor edx, edx
mov dword [ebp - 0x58], edx
mov word [ebp - 0x34], 0xc
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x4c]
jge 0x40f503
mov word [ebp - 0x34], 0x54
lea eax, [ebp - 0x18]
call fcn.00403990
push eax
inc dword [ebp - 0x28]
mov edx, dword [ebp - 0x58]
add edx, edx
inc edx
lea eax, [ebp - 4]
mov ecx, 2
call fcn.005262b0
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x1c]
call fcn.00403990
mov ecx, eax
inc dword [ebp - 0x28]
mov eax, 0x52df69
pop edx
call fcn.00526410
lea edx, [ebp - 0x1c]
lea eax, [ebp - 8]
call fcn.00525fb0
dec dword [ebp - 0x28]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00525f88
dec dword [ebp - 0x28]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00525f88
mov edx, 0x20
mov eax, dword [ebp - 8]
call fcn.0044fc48
mov byte [ebp - 0x51], al
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x58]
mov al, byte [ebp - 0x51]
mov byte [ecx + ebx], al
inc dword [ebp - 0x58]
mov edx, dword [ebp - 0x58]
cmp edx, dword [ebp - 0x4c]
jl 0x40f46c
dec dword [ebp - 0x4c]
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
mov word [ebp - 0x34], 0xc
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x4c]
jge 0x40f537
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x5c]
mov al, byte [edx + ecx + 1]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x5c]
xor byte [edx + ecx], al
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x4c]
jl 0x40f519
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov byte [edx + ecx], 0
mov word [ebp - 0x34], 0x60
lea eax, [ebp - 0x20]
mov edx, dword [ebp - 0x50]
call fcn.00525e08
inc dword [ebp - 0x28]
lea edx, [ebp - 0x20]
lea eax, [ebp - 8]
call fcn.00525fb0
dec dword [ebp - 0x28]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.00525f88
push dword [ebp - 0x50]
call fcn.00504940
pop ecx
mov word [ebp - 0x34], 0x6c
lea edx, [ebp - 8]
mov eax, dword [ebp - 0x10]
call fcn.00525fb0
mov eax, dword [ebp - 0x10]
mov word [ebp - 0x34], 0x78
push eax
dec dword [ebp - 0x28]
lea eax, [ebp - 8]
mov edx, 2
call fcn.00525f88
dec dword [ebp - 0x28]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00525f88
pop eax
mov word [ebp - 0x34], 0x6c
inc dword [ebp - 0x28]
mov edx, dword [ebp - 0x44]
mov dword fs:[0], edx
pop ebx
mov esp, ebp
pop ebp
ret