Function at 0x40348c
Capabilities:
Encode data using xor

Disassembly:
enter 0x40, 0
push ebx
push esi
push edi
push 0x40a6ce
push 0x4036df
call fcn.00408128
mov eax, dword [ebp - 0x3c]
and eax, 0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0xc]
inc eax
push eax
push 0
call fcn.0040720f
mov edi, eax
push 2
mov eax, dword [ebp + 8]
push eax
call fcn.004092a8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
cmp eax, 0xffffffff
jne 0x4034e7
push 0x10
push 0
mov eax, dword [0x40b534]
push dword [eax + 0x3c]
push 0
call fcn.00409320
jmp 0x4036b8
lea eax, [ebp - 0x26]
push eax
lea eax, [ebp - 0x2e]
push eax
lea eax, [ebp - 0x1e]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.00409188
push 0
mov eax, dword [ebp - 0x40]
push eax
call fcn.0040917c
mov dword [ebp - 0x14], eax
push dword [ebp + 0xc]
push edi
mov eax, dword [ebp - 0x40]
push eax
call fcn.0040929c
cmp eax, 0xffffffff
jne 0x403521
jmp 0x4036c7
mov esi, 1
mov eax, esi
add eax, 0x2ac
mov al, byte [eax + edi]
mov byte [esi + 0x40b712], al
inc esi
cmp esi, 0xa
jle 0x403526
push 0
push 0x300
mov eax, dword [ebp - 0x40]
push eax
call fcn.004092a2
cmp eax, 0xffffffff
jne 0x403556
jmp 0x4036b8
push 2
lea eax, [ebp - 0x16]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.0040929c
cmp eax, 0xffffffff
jne 0x40356f
jmp 0x4036b8
push 0
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp + 0xc]
movzx eax, word [ebp - 0x16]
sub ecx, eax
push ecx
mov eax, dword [ebp - 0x40]
push eax
call fcn.004092a2
cmp eax, 0xffffffff
jne 0x403591
jmp 0x4036b8
push dword [ebp + 0xc]
push dword [0x40b72d]
mov eax, dword [ebp - 0x40]
push eax
call fcn.0040929c
cmp eax, 0xffffffff
jne 0x4035ad
jmp 0x4036b8
mov eax, dword [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp + 0xc]
movzx eax, word [ebp - 0x16]
sub ecx, eax
push ecx
call fcn.00406950
and dword [ebp - 0x10], 0
mov esi, 1
movzx eax, byte [esi + 0x40b712]
add eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
inc esi
cmp esi, 0xa
jle 0x4035cc
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
dec eax
mov dword [ebp - 0x38], eax
and esi, 0
jmp 0x40361f
mov eax, dword [0x40b72d]
mov bl, byte [esi + eax]
mov eax, esi
dec eax
mov ecx, 0xa
cdq
idiv ecx
inc edx
xor bl, byte [edx + 0x40b712]
movzx ebx, bl
mov eax, dword [ebp - 0x10]
imul esi
xor ebx, eax
mov eax, dword [0x40b72d]
mov byte [esi + eax], bl
inc esi
mov eax, dword [ebp - 0x38]
cmp eax, esi
jge 0x4035f2
mov eax, dword [0x40b72d]
mov byte [eax], 0x4d
mov eax, dword [0x40b72d]
mov byte [eax + 1], 0x5a
mov esi, 1
mov eax, esi
add eax, 0x261
mov bl, byte [eax + edi]
mov eax, esi
dec eax
mov ecx, 0xa
cdq
idiv ecx
inc edx
xor bl, byte [edx + 0x40b712]
mov ecx, dword [0x40b72d]
mov eax, esi
add eax, 0xbb8
mov byte [eax + ecx], bl
inc esi
cmp esi, 0x14
jle 0x40363c
push 0
push 0
mov eax, dword [ebp - 0x40]
push eax
call fcn.004092a2
cmp eax, 0xffffffff
jne 0x403682
jmp 0x4036b8
push dword [ebp + 0xc]
push dword [0x40b72d]
mov eax, dword [ebp - 0x40]
push eax
call fcn.004092d2
cmp eax, 0xffffffff
jne 0x40369b
jmp 0x4036b8
lea eax, [ebp - 0x26]
push eax
lea eax, [ebp - 0x2e]
push eax
lea eax, [ebp - 0x1e]
push eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.0040925a
mov eax, 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
push eax
call fcn.004092b4
push edi
call fcn.00407252
xor eax, eax
pop dword fs:[eax]
add esp, 8
push 0x4036e6
push 0x40a6ce
call fcn.0040817c
ret