Function at 0x4034f2
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4cd84b
call fcn.004cd440
sub esp, 0x58
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], 0x6491
xor esi, esi
cmp dword [ebp - 0x28], 0x65d1
jle 0x403544
mov edi, esi
mov ebx, esi
mov eax, ebx
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xaa47f8
call fcn.0040bbab
inc ebx
cmp ebx, 0x6435
jl 0x403521
inc edi
cmp edi, 0x665f
jl 0x40351f
mov dword [ebp - 0x18], 0xffffffff
xor ebx, ebx
inc ebx
push ebx
lea ecx, [ebp - 0x3c]
call fcn.0040bdd2
mov dword [ebp - 0x18], esi
jmp 0x40356c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov dword [eax + ecx*4], 0xf432
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x40355c
mov dword [ebp - 0x24], 0x2b4c
cmp dword [ebp - 0x24], 0x2c7a
jle 0x4035c7
mov edi, esi
mov ebx, esi
mov eax, edi
mov ecx, ebx
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0x64]
call fcn.004019d8
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4035a0
mov eax, dword [eax]
push eax
call fcn.004b7f67
pop ecx
push esi
push 1
lea ecx, [ebp - 0x64]
call fcn.0040c380
inc ebx
cmp ebx, 0x6253
jl 0x403585
inc edi
cmp edi, 0x64c9
jl 0x403583
xor ebx, ebx
inc ebx
mov dword [ebp - 0x18], 8
push 0xfffffffffffffff8
pop edi
cmp dword [ebp - 0x18], edi
je 0x4036bc
mov eax, 0xe56f9b2c
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x1c], 0xfa48a2b8
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x48], 0xffffffe7
cmp dword [ebp - 0x48], edi
jne 0x4036b0
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], 0xfffffff7
mov eax, dword [ebp - 0x48]
cmp dword [ebp - 0x14], esi
jne 0x40361d
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x48]
sub edx, eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp eax, ecx
sbb edx, edx
inc edx
sub edx, dword [ebp - 0x40]
xor ecx, ecx
mov eax, dword [ebp - 0x3c]
cmp edx, dword [eax]
setle cl
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x3c]
cmp dword [eax], esi
jne 0x40369a
mov eax, dword [ebp - 0x48]
xor ecx, ecx
cmp eax, ebx
setl cl
mov edx, dword [ebp - 0x18]
imul edx, ecx
sub edx, dword [ebp - 0x48]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
sub eax, edx
imul ecx, eax, 0xfffa
mov eax, dword [ebp - 0x3c]
add ecx, dword [eax]
mov eax, dword [ebp - 0x14]
sub ecx, eax
mov eax, esi
je 0x40369c
mov eax, ebx
mov dword [ebp - 0x14], eax
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], edi
je 0x403605
mov eax, 0xe56f9b2c
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jne 0x4035df
mov dword [ebp - 4], esi
cmp dword [ebp - 0x24], 0x2b2d
jge 0x4036d3
push str.gtru_ildw_uawgw
call fcn.004b7f67
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.0040bea4
mov dword [ebp - 4], 2
cmp dword [ebp - 0x28], 0x639e
jge 0x4036fe
mov edx, str.emyslfqu_agzgp_hahte_mlshozj_efer_mtfz_uclgqczsi_tca_oswlau_trxya_mlbodoz_ijsxs
mov ecx, 0xaa47f8
call fcn.0040e430
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov eax, dword [ecx]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov edi, dword [ebp - 0x2c]
mov esi, dword [edi]
mov edi, dword [edi]
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
xor ecx, ecx
cmp dword [eax + 8], 0x57af
setle cl
imul ecx, dword [edx + esi*4]
mov dword [edx + edi*4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret