Function at 0x1000212f
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10060635
call fcn.100600a0
sub esp, 0x38
cmp byte [ebp + 0x18], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov ebx, edx
mov esi, ecx
je 0x100023ba
mov dword [ebp + 0x18], 0x2b33
mov esi, 0x1007bb98
cmp dword [ebp + 0x18], 0x2e28
jle 0x10002189
xor edi, edi
xor ebx, ebx
mov eax, ebx
mov ecx, esi
xor eax, edi
cdq
push edx
push eax
call fcn.100042e3
inc ebx
cmp ebx, 0x52ba
jl 0x10002169
inc edi
cmp edi, 0x4678
jl 0x10002167
and dword [ebp - 4], 0
cmp dword [ebp + 0x18], 0x276f
jge 0x100021c3
mov edx, str.eikelol_yflyqmmje_ggmxys_qgimyaok_tpmvfxvy_ozfrykaa_hfr_fvwyf_iima_fswpra
mov ecx, esi
call fcn.100067dc
jmp 0x100021c3
or dword [ebp - 4], 0xffffffff
cmp byte [ebp + 0x48], 0
je 0x100022e1
mov dword [ebp + 0x18], 0x713a
xor edi, edi
cmp dword [ebp + 0x18], 0x72d5
jle 0x10002227
xor esi, esi
inc edi
xor ebx, ebx
mov eax, ebx
lea ecx, [ebp - 0x44]
and eax, esi
cdq
push edx
push eax
call fcn.10001a85
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002201
mov eax, dword [eax]
push eax
call fcn.10049603
pop ecx
push 0
push edi
lea ecx, [ebp - 0x44]
call fcn.100048ea
inc ebx
cmp ebx, 0x1b8c
jl 0x100021e8
inc esi
cmp esi, 0xc58
jl 0x100021e6
jmp 0x10002228
inc edi
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebx]
mov eax, dword [eax]
mov edx, dword [ecx]
mov eax, dword [eax + esi*4]
inc dword [ecx]
cmp eax, edx
jg 0x10002242
xor edi, edi
mov eax, dword [ebx]
xor edx, edx
mov ecx, dword [ebp + 0x28]
mov ecx, dword [ecx]
cmp dword [ecx + eax*4], 0xd538
mov eax, dword [ecx]
setne dl
sub eax, edx
xor edx, edx
sub eax, 7
cmp eax, 0x44688d23
mov eax, dword [ebp + 8]
setge dl
mov eax, dword [eax]
mov dword [eax], edx
mov esi, dword [ebx]
mov eax, dword [ebp + 0x4c]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x40]
mov eax, dword [eax]
add eax, edx
sub eax, ecx
neg eax
sbb eax, eax
xor ebx, ebx
inc eax
cmp eax, 0x7b6c411e
mov eax, dword [ebp + 0x28]
setge bl
sub ebx, ecx
mov eax, dword [eax]
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
sub ebx, dword [eax + esi*4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax]
cmp ebx, eax
mov eax, dword [ebp + 0x38]
setl dl
xor ecx, ecx
mov eax, dword [eax]
cmp edx, eax
mov eax, dword [ebp + 0x30]
setl cl
mov dword [eax], ecx
xor ecx, ecx
mov eax, dword [eax]
cmp edi, eax
mov eax, dword [ebp + 0x3c]
setge cl
mov dword [eax], ecx
cmp dword [ebp + 0x18], 0x6e95
jge 0x100022dc
push str.siohsd_zdygg_azhslgx_sde_kemaydfv_zzkcealxf_syp_ope_cqwcup_jhn_lctwycjaa_ldmrf
call fcn.10049603
pop ecx
jmp 0x10002424
mov dword [ebp - 0x1c], 0x59c1
cmp dword [ebp - 0x1c], 0x5c12
jle 0x10002358
xor edi, edi
mov dword [ebp - 0x18], edi
xor ebx, ebx
mov dword [ebp + 0x18], ebx
and dword [ebp - 0x24], 0
mov ecx, ebx
mov ebx, edi
mov dword [ebp - 0x20], edi
mov edi, dword [ebp - 0x24]
shl ebx, cl
mov ecx, edi
mov eax, ebx
sar eax, cl
mov ecx, esi
cdq
push edx
push eax
call fcn.100042e3
inc edi
cmp edi, 0x4238
jl 0x1000230b
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp - 0x18]
inc ebx
mov dword [ebp + 0x18], ebx
cmp ebx, 0x6a80
jl 0x100022fb
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x1697
jl 0x100022f6
push 0
push 0
push 0x11a9
push 0x2403
push 0
call dword [sym.imp.USER32.dll_ModifyMenuW]
mov edx, dword [ebp + 0x10]
mov dword [edx], 0
cmp dword [edx], 2
jge 0x1000237b
mov edi, dword [ebp + 0x24]
mov ecx, dword [edx]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0xfffffffb
inc dword [edx]
cmp dword [edx], 2
jl 0x10002369
mov dword [ebp - 4], 4
cmp dword [ebp - 0x1c], 0x5948
jge 0x100022dc
mov edx, str.wczubvnpb_qej_irljw_izqpe_wgc
mov ecx, esi
call fcn.100067dc
jmp 0x100022dc
cmp byte [ebp + 0x34], 0
je 0x100023df
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
jmp 0x100023d8
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0x9dada439
inc dword [edx]
cmp dword [edx], 3
jl 0x100023cb
jmp 0x10002424
mov esi, dword [ebp + 0x20]
mov dword [esi], 0
cmp dword [esi], 0xfffffff9
jl 0x10002424
xor edi, edi
inc edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 2
push ebx
push ecx
push 0
push eax
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], edi
push eax
push ecx
push ecx
mov edx, 0x3184
mov ecx, 0x1e7a
call fcn.10001b78
add esp, 0x20
dec dword [esi]
cmp dword [esi], 0xfffffff9
jge 0x100023f0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret