Function at 0x100347db
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100588df
call fcn.10057898
sub esp, 0x34
cmp byte [ebp + 0x24], 0
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ecx
je 0x100348bd
mov eax, dword [ebp + 0x1c]
cmp byte [eax], 0
je 0x1003489e
mov dword [ebp - 0x18], 0x7bf8
cmp dword [ebp - 0x18], 0x7d2e
jle 0x10034865
xor esi, esi
xor edi, edi
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x14], ecx
lea eax, [ebx + edi]
shl eax, cl
mov ecx, 0x1006f978
xor eax, esi
cdq
push edx
push eax
call fcn.10001ca8
mov ecx, dword [ebp - 0x14]
inc ecx
mov dword [ebp - 0x14], ecx
cmp ecx, 0xfa8
jl 0x10034827
inc ebx
cmp ebx, 0x66d2
jl 0x10034822
inc edi
cmp edi, 0x2f0b
jl 0x10034820
inc esi
cmp esi, 0x3c4d
jl 0x1003481e
push 0x20e7
push 0
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PolyPolyline]
and dword [ebp - 4], 0
cmp dword [ebp - 0x18], 0x795c
jge 0x1003489e
mov edx, str.bfm_foncu_ffofrqxnn_cferozq_cnuvynq_lofx_iep_hyp_ywdgxpqbt_cwal
mov ecx, 0x1006f978
call fcn.1000365f
jmp 0x10034a14
mov dword [ebp - 0x18], 0xd62
cmp dword [ebp - 0x18], 0xdf1
jle 0x10034903
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [ebx + edi]
mov ecx, 0x1006f978
and eax, esi
cdq
push edx
push eax
call fcn.10001ca8
inc esi
cmp esi, 0x4376
jl 0x100348d3
inc ebx
cmp ebx, 0x2b14
jl 0x100348d1
inc edi
cmp edi, 0x3c10
jl 0x100348cf
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 2
cmp dword [ebp - 0x18], 0xc8a
jge 0x10034941
mov edx, str.dnrsu_jgv_bab
mov ecx, 0x1006f978
call fcn.1000365f
jmp 0x10034941
mov dword [esi], 0
cmp dword [esi], 0xffffffef
jle 0x10034a14
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0x24], 0x8592840c
mov dword [ebp - 0x18], 0x77d7e7d1
mov dword [ebp - 0x28], 0x4c1b
mov dword [ebp - 0x14], 0
jmp 0x10034982
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x40], 8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10034974
mov dword [ebp - 0x14], 0
jmp 0x1003499f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x30], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10034991
mov eax, dword [ebx]
xor edx, edx
dec dword [ebx]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x40]
cmp ecx, eax
setge dl
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [esi]
mov eax, dword [edx]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x24]
dec eax
add ecx, eax
cmp ecx, dword [edx]
jle 0x100349f3
cmp dword [ebp - 0x28], 0
je 0x100349f3
cmp dword [ebp - 0x2c], 0
je 0x100349f3
xor edx, edx
inc edx
jmp 0x100349f5
xor edx, edx
mov eax, dword [edi]
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x30]
setle cl
imul eax, ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
dec dword [esi]
cmp dword [esi], 0xffffffef
jg 0x10034956
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret