Function at 0x85da14
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff88
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040a3bc
xor eax, eax
push ebp
push 0x85de0a
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 4]
call fcn.004267b4
mov eax, dword [ebp - 0x6c]
lea edx, [ebp - 8]
call fcn.0085d968
movzx eax, byte [0x85de1c]
push eax
lea eax, [ebp - 0x70]
push eax
mov ecx, 0x85de2c
mov edx, 0x85de3c
mov eax, dword [ebp - 8]
call fcn.0042ff18
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 8]
call fcn.0040a700
movzx eax, byte [0x85de1c]
push eax
lea eax, [ebp - 0x74]
push eax
mov ecx, 0x85de4c
mov edx, 0x85de5c
mov eax, dword [ebp - 8]
call fcn.0042ff18
mov edx, dword [ebp - 0x74]
lea eax, [ebp - 8]
call fcn.0040a700
mov eax, dword [ebp - 8]
test eax, eax
je 0x85dac4
sub eax, 4
mov eax, dword [eax]
cmp eax, 0x60
jne 0x85ddd5
lea edx, [ebp - 0x68]
mov eax, dword [ebp - 8]
call fcn.0085d6d4
xor esi, esi
lea eax, [ebp - 0x68]
mov edx, esi
inc edx
xor byte [eax], dl
inc esi
inc eax
cmp esi, 0x48
jne 0x85dadd
lea eax, [ebp - 0x68]
call fcn.0085d7e4
lea eax, [ebp - 8]
call fcn.0040a2d8
xor ebx, ebx
mov byte [ebp - 0x15], 0
xor esi, esi
lea edi, [ebp - 0x68]
movzx eax, byte [ebp - 0x15]
add al, byte [edi]
and al, 0xff
mov byte [ebp - 0x15], al
mov eax, esi
add al, 0x3a
xor byte [edi], al
add bl, byte [edi]
and bl, 0xff
lea eax, [ebp - 0x78]
movzx edx, byte [edi]
call fcn.0040b3c8
mov edx, dword [ebp - 0x78]
lea eax, [ebp - 8]
call fcn.0040b5b4
inc esi
inc edi
cmp esi, 0x46
jne 0x85db04
cmp bl, byte [ebp - 0x22]
je 0x85db4e
mov eax, dword [ebp + 8]
mov edx, 0x85de6c
call fcn.0040a6b8
jmp 0x85dde2
movzx eax, byte [ebp - 0x15]
cmp al, byte [ebp - 0x21]
je 0x85db69
mov eax, dword [ebp + 8]
mov edx, 0x85de6c
call fcn.0040a6b8
jmp 0x85dde2
mov eax, dword [ebp - 8]
test eax, eax
je 0x85db75
sub eax, 4
mov eax, dword [eax]
cmp eax, 0x3c
jle 0x85ddc6
lea eax, [ebp - 0xc]
push eax
mov ecx, 2
mov edx, 0x3b
mov eax, dword [ebp - 8]
call fcn.0040b7dc
or edx, 0xffffffff
mov eax, dword [ebp - 0xc]
call fcn.00427598
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
mov ecx, ebx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040b7dc
lea eax, [ebp - 0x10]
push eax
mov ecx, 0xa
mov edx, 0x3d
mov eax, dword [ebp - 8]
call fcn.0040b7dc
push 0xffffffffffffffff
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10]
call fcn.00427614
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0
jne 0x85dbee
cmp dword [ebp - 0x20], 0
jbe 0x85ddb7
jmp 0x85dbf4
jle 0x85ddb7
push 0
push 2
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcd0
cmp eax, 0
jne 0x85dcd0
push 0
push 3
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcd0
cmp eax, 0
jne 0x85dcd0
push 0
push 4
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcd0
cmp eax, 0
jne 0x85dcd0
push 0
push 7
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcd0
cmp eax, 0
jne 0x85dcd0
push 0
push 0xd
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcd0
cmp eax, 0
jne 0x85dcd0
push 0
push 0x15
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcd0
cmp eax, 0
jne 0x85dcd0
push 0
push 0x2b
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcd0
cmp eax, 0
jne 0x85dcd0
push 0
push 0x11
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dcce
cmp eax, 0
je 0x85dcd4
xor ebx, ebx
jmp 0x85dcd6
mov bl, 1
test bl, bl
jne 0x85dda4
push 0
push 2
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dd99
cmp eax, 0
jne 0x85dd99
push 0
push 3
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dd99
cmp eax, 0
jne 0x85dd99
push 0
push 4
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dd99
cmp eax, 0
jne 0x85dd99
push 0
push 7
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dd99
cmp eax, 0
jne 0x85dd99
push 0
push 0xd
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dd99
cmp eax, 0
jne 0x85dd99
push 0
push 0x15
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dd99
cmp eax, 0
jne 0x85dd99
push 0
push 0x11
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
call fcn.0040c548
cmp edx, 0
jne 0x85dd97
cmp eax, 0
je 0x85dd9d
xor eax, eax
jmp 0x85dd9f
mov al, 1
mov edx, dword [ebp - 0x14]
mov byte [edx], al
test bl, bl
jne 0x85dde2
mov eax, dword [ebp + 8]
mov edx, 0x85de6c
call fcn.0040a6b8
jmp 0x85dde2
mov eax, dword [ebp + 8]
mov edx, 0x85de6c
call fcn.0040a6b8
jmp 0x85dde2
mov eax, dword [ebp + 8]
mov edx, 0x85de6c
call fcn.0040a6b8
jmp 0x85dde2
mov eax, dword [ebp + 8]
mov edx, 0x85de6c
call fcn.0040a6b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x85de11
lea eax, [ebp - 0x78]
mov edx, 4
call fcn.0040a338
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.0040a338
ret