Function at 0x34208223
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
xor eax, eax
push esi
movzx ecx, byte [eax + 0x342085b8]
cmp ecx, edx
jge 0x342088d0
mov esi, dword [esp + 0x1c]
mov cl, byte [ecx + esi]
mov byte [eax + 0x343e4978], cl
inc eax
cmp eax, 0x40
jb 0x34208229
mov eax, 0x343e490d
sub eax, 0xa
mov dword [esp + 8], eax
mov eax, 0x343e490d
sub eax, 9
mov dword [esp + 0xc], eax
push ebx
push ebp
mov eax, 0x343e490d
sub eax, 8
push edi
mov dword [esp + 0x1c], eax
mov edi, 0x343e490d
mov ebp, 0x343e490d
xor ecx, ecx
mov eax, 0x343e490d
sub edi, 0xb
sub ebp, 6
sub eax, 7
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
cmp dword [esp + 0x2c], 1
je 0x34208918
mov esi, ecx
push 0x20
push 0x343e4998
push 0x343e4958
call sub.MSVCR90.dll_memcpy
lea ecx, [esi + esi*2]
add esp, 0xc
xor eax, eax
shl ecx, 4
lea ecx, [ecx + 0x343e49b9]
movzx edx, byte [eax + 0x342085f8]
movzx edx, byte [edx + 0x343e4998]
xor dl, byte [ecx + eax - 1]
add eax, 6
mov byte [eax + 0x343e4902], dl
movzx edx, byte [eax + 0x342085f3]
movzx edx, byte [edx + 0x343e4998]
xor dl, byte [ecx + eax - 6]
mov byte [eax + 0x343e4903], dl
movzx edx, byte [eax + 0x342085f4]
movzx edx, byte [edx + 0x343e4998]
xor dl, byte [ecx + eax - 5]
mov byte [eax + 0x343e4904], dl
movzx edx, byte [eax + 0x342085f5]
movzx edx, byte [edx + 0x343e4998]
xor dl, byte [ecx + eax - 4]
mov byte [eax + 0x343e4905], dl
movzx edx, byte [eax + 0x342085f6]
movzx edx, byte [edx + 0x343e4998]
xor dl, byte [ecx + eax - 3]
mov byte [eax + 0x343e4906], dl
movzx edx, byte [eax + 0x342085f7]
movzx edx, byte [edx + 0x343e4998]
xor dl, byte [ecx + eax - 2]
mov byte [eax + 0x343e4907], dl
cmp eax, 0x30
jb 0x342082c3
xor esi, esi
mov ecx, 0x343e493d
mov eax, 6
movzx edx, byte [eax + edi]
movzx ebx, byte [eax + ebp]
add edx, esi
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x14]
movzx ebx, byte [eax + ebx]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x18]
movzx ebx, byte [eax + ebx]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x1c]
movzx ebx, byte [eax + ebx]
lea edx, [ebx + edx*2]
mov ebx, dword [esp + 0x20]
movzx ebx, byte [eax + ebx]
movzx edx, byte [ebx + edx*2 + 0x34208628]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx - 5], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx - 4], bl
mov ebx, edx
shr ebx, 1
and bl, 1
mov byte [ecx - 3], bl
movzx ebx, byte [eax + 0x343e490d]
and dl, 1
mov byte [ecx - 2], dl
movzx edx, byte [eax + 0x343e4908]
add edx, esi
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4909]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e490a]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e490b]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e490c]
movzx edx, byte [ebx + edx*2 + 0x34208668]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx - 1], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx], bl
mov ebx, edx
shr ebx, 1
and bl, 1
mov byte [ecx + 1], bl
movzx ebx, byte [eax + 0x343e4913]
and dl, 1
mov byte [ecx + 2], dl
movzx edx, byte [eax + 0x343e490e]
add edx, esi
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e490f]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4910]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4911]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4912]
movzx edx, byte [ebx + edx*2 + 0x342086a8]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx + 3], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx + 4], bl
mov ebx, edx
shr ebx, 1
and bl, 1
mov byte [ecx + 5], bl
and dl, 1
movzx ebx, byte [eax + 0x343e4919]
mov byte [ecx + 6], dl
movzx edx, byte [eax + 0x343e4914]
add edx, esi
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4915]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4916]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4917]
lea edx, [ebx + edx*2]
movzx ebx, byte [eax + 0x343e4918]
movzx edx, byte [ebx + edx*2 + 0x342086e8]
mov ebx, edx
shr ebx, 3
and bl, 1
mov byte [ecx + 7], bl
mov ebx, edx
shr ebx, 2
and bl, 1
mov byte [ecx + 8], bl
mov ebx, edx
shr ebx, 1
and bl, 1
and dl, 1
mov byte [ecx + 9], bl
mov byte [ecx + 0xa], dl
add eax, 0x18
add ecx, 0x10
add esi, 8
cmp eax, 0x36
jb 0x3420836b
xor eax, eax
lea esp, [esp]
movzx ecx, byte [eax + 0x34208828]
movzx edx, byte [ecx + 0x343e4938]
xor dl, byte [eax + 0x343e4978]
movzx ecx, byte [eax + 0x34208829]
mov byte [eax + 0x343e4998], dl
movzx edx, byte [ecx + 0x343e4938]
xor dl, byte [eax + 0x343e4979]
movzx ecx, byte [eax + 0x3420882a]
mov byte [eax + 0x343e4999], dl
movzx edx, byte [ecx + 0x343e4938]
xor dl, byte [eax + 0x343e497a]
movzx ecx, byte [eax + 0x3420882b]
mov byte [eax + 0x343e499a], dl
movzx edx, byte [ecx + 0x343e4938]
xor dl, byte [eax + 0x343e497b]
add eax, 4
mov byte [eax + 0x343e4997], dl
cmp eax, 0x20
jb 0x34208517
push 0x20
push 0x343e4958
push 0x343e4978
call sub.MSVCR90.dll_memcpy
mov eax, dword [esp + 0x1c]
inc eax
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, 0x10
jae 0x34208848
mov ecx, dword [esp + 0x10]
jmp 0x34208294
xor eax, eax
movzx ecx, byte [eax + 0x343e4978]
mov dl, byte [eax + 0x343e4998]
mov byte [eax + 0x343e4978], dl
mov byte [eax + 0x343e4998], cl
inc eax
cmp eax, 0x20
jb 0x3420884a
mov eax, dword [esp + 0x28]
mov ecx, 0x342088d8
mov esi, 0x342088d9
mov edi, 0x342088da
mov ebp, 0x342088db
sub ecx, eax
sub esi, eax
sub edi, eax
sub ebp, eax
mov edx, 0x10
movzx ebx, byte [eax + ecx]
movzx ebx, byte [ebx + 0x343e4978]
mov byte [eax], bl
movzx ebx, byte [eax + esi]
movzx ebx, byte [ebx + 0x343e4978]
mov byte [eax + 1], bl
movzx ebx, byte [eax + edi]
movzx ebx, byte [ebx + 0x343e4978]
mov byte [eax + 2], bl
movzx ebx, byte [eax + ebp]
movzx ebx, byte [ebx + 0x343e4978]
mov byte [eax + 3], bl
add eax, 4
sub edx, 1
jne 0x3420888e
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x14
ret 8
mov esi, 0xf
sub esi, ecx
jmp 0x342082a1