Function at 0x100025eb
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10056913
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x108
cmp byte [ebp + 0x1c], 0
push ebx
push esi
push edi
mov byte [esp + 0x30], dl
je 0x10002cd4
cmp byte [ebp + 0x20], 0
je 0x10002646
mov eax, dword [ebp + 0x24]
xor ebx, ebx
mov dword [eax], ebx
cmp dword [eax], ebx
jg 0x10002cef
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xffffffff
inc dword [eax]
cmp dword [eax], ebx
jle 0x10002635
jmp 0x10002cef
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], 0x23f3
cmp dword [esp + 0x18], 0x2753
push 0
pop ebx
jle 0x100026e6
mov esi, ebx
mov dword [esp + 0x10], ebx
mov edi, ebx
mov dword [esp + 0x14], ebx
mov eax, esi
mov esi, ebx
cdq
idiv edi
mov edi, edx
mov eax, edi
lea ecx, [esp + 0xe0]
cdq
idiv esi
mov eax, edx
cdq
push edx
push eax
call fcn.100019c5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000269b
mov eax, dword [eax]
push eax
call fcn.1004139c
pop ecx
push ebx
push 1
lea ecx, [esp + 0xe8]
call fcn.1000c8ef
inc esi
cmp esi, 0x7646
jl 0x1000267b
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
inc edi
mov dword [esp + 0x14], edi
cmp edi, 0x109
jl 0x10002672
inc esi
mov dword [esp + 0x10], esi
cmp esi, 0x1ebc
jl 0x1000266c
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.GDI32.dll_MoveToEx]
mov dword [esp + 0x1c], 1
cmp dword [esp + 0x18], 0x2384
jge 0x10002703
push str.nhh_kdxwdhrq_eibxeuxsf_pgenrkcs_xrc_tprongmi_saj_uyjxmhrf_itjstlue_ydyioiovk_unf_aphev_rderxplue_sdhf
call fcn.1004139c
pop ecx
push 4
mov dword [esp + 0x14], ebx
pop ecx
jmp 0x1000271f
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x94], 0x82062403
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x1000270c
mov dword [esp + 0x10], ebx
jmp 0x1000273e
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x90], 7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x1000272b
mov dword [esp + 0x1c], ebx
jmp 0x1000275e
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x94], 1
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], ecx
jl 0x1000274b
lea edx, [esp + 0x1c]
call fcn.10004b22
mov eax, dword [esp + 0x3c]
movzx eax, word [eax]
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], 9
mov dword [esp + 0x14], ebx
jmp 0x10002799
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0xbc], 0x6bacd795
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x10002786
mov dword [esp + 0x14], ebx
jmp 0x100028e4
push ecx
push 0x2b50
lea eax, [esp + 0x2b]
mov dword [esp + 0x18], 0x85bf25cb
push eax
push ecx
mov byte [esp + 0x33], bl
xor cl, cl
push 0x713a
call fcn.1000514d
mov dword [esp + 0x24], 2
add esp, 0x14
cmp dword [esp + 0x10], ebx
jl 0x100028e0
mov dword [esp + 0x18], 0x1303
cmp dword [esp + 0x18], 0x13b8
jle 0x1000283c
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
lea ecx, [esp + 0xa4]
push edx
push eax
call fcn.100019c5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002814
mov eax, dword [eax]
push eax
call fcn.1004139c
pop ecx
push ebx
push 1
lea ecx, [esp + 0xac]
call fcn.1000c8ef
inc edi
cmp edi, 0xc4b
jl 0x100027f8
inc esi
cmp esi, 0x16a4
jl 0x100027f6
push 2
lea ecx, [esp + 0x74]
call fcn.1000c530
mov dword [esp + 0x11c], ebx
cmp dword [esp + 0x18], 0x12f8
jge 0x10002863
push str.omtoud_vgobypwj_wwjmjxan_siaqr_qwv_ompm_norfetj_rircibj_eiybp_smrtoub_uobyg
call fcn.1004139c
pop ecx
lea eax, [esp + 0x70]
mov edx, 0x2fe0
push eax
lea eax, [esp + 0x90]
xor cl, cl
push eax
push 0x1c13
push 0x38a8
push 0x244d
call fcn.10005481
add esp, 0x14
lea eax, [esp + 0x70]
mov edx, 0x4d3b
mov cl, 1
push 0x6ac
push ebx
push 0x516c
push 0x2d0b
push 0x5e2c
push 0x5b2c
push 0x7a4f
push ebx
push eax
call fcn.10004749
or dword [esp + 0x140], 0xffffffff
lea ecx, [esp + 0x94]
add esp, 0x24
call fcn.1000c5b3
dec dword [esp + 0x10]
jns 0x100027e2
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x1b
jle 0x100027a9
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x40]
call fcn.100032ac
push ecx
lea eax, [esp + 0x68]
mov dword [esp + 0x60], 0xffffffff
push eax
lea eax, [esp + 0x64]
mov dword [esp + 0x6c], 1
push 0x4ef9
push eax
mov edx, 0xd01
xor cl, cl
call fcn.10001a89
add esp, 0x14
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], 0x2ac
cmp dword [esp + 0x18], 0x63a
jle 0x10002969
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x1006cbb8
xor eax, esi
cdq
push edx
push eax
call fcn.1000c318
inc edi
cmp edi, 0x640b
jl 0x10002946
inc esi
cmp esi, 0x3795
jl 0x10002944
mov dword [esp + 0x14], 0xbf2b2994
cmp dword [esp + 0x18], 0x1b6
jge 0x1000298a
mov edx, str.tpf_amtiju_thvg
mov ecx, 0x1006cbb8
call fcn.1000e58f
push 2
lea ecx, [esp + 0x68]
call fcn.1000c530
mov dword [esp + 0x11c], 1
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x7c], 0xd5f49dcb
mov dword [esp + 0x80], 0xd5f49dcb
mov dword [esp + 0x84], 0xd5f49dcb
mov dword [esp + 0x88], 0xd5f49dcb
mov dword [esp + 0x10], ebx
jmp 0x100029ef
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x34], 0x5457d670
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100029df
mov dword [esp + 0x10], ebx
jmp 0x10002a0f
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x64]
mov dword [eax + ecx*4], 0x49a2f381
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x100029fc
mov dword [esp + 0x10], 0x6d9
cmp dword [esp + 0x10], 0x7a7
jle 0x10002a7a
mov esi, ebx
mov edi, ebx
mov eax, edi
lea ecx, [esp + 0xc8]
xor eax, esi
cdq
push edx
push eax
call fcn.100019c5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002a49
mov eax, dword [eax]
push eax
call fcn.1004139c
pop ecx
push ebx
push 1
lea ecx, [esp + 0xd0]
call fcn.1000c8ef
inc edi
cmp edi, 0x65c5
jl 0x10002a2c
inc esi
cmp esi, 0x8da
jl 0x10002a2a
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
mov eax, dword [esp + 0x64]
cmp dword [eax], ebx
jne 0x10002a86
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
dec edx
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [esp + 0x14]
sete cl
imul eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x14], eax
jne 0x10002ac4
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
xor edx, edx
cmp eax, 1
mov eax, dword [esp + 0x34]
setg dl
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [esp + 0x88], ecx
cmp dword [esp + 0x10], 0x473
jge 0x10002af7
push str.ffppmoy_twvicgbvk_peebc_lqbewf_ghw_wbqiy_tucyxvaw_gwrosy_buuxjv_cdywvgb_dun_fynsrxwtr_jloodabt
call fcn.1004139c
pop ecx
or dword [esp + 0x11c], 0xffffffff
lea ecx, [esp + 0x64]
call fcn.1000c5b3
mov esi, dword [esp + 0x3c]
mov dl, 0x12
mov edi, dword [esp + 0x24]
mov cl, byte [edi + esi]
call fcn.1000e766
mov byte [edi + esi], al
inc edi
mov dword [esp + 0x24], edi
cmp edi, 2
jb 0x10002930
mov dword [esp + 0x14], 1
mov dword [esp + 0x28], 0x3d3b
cmp dword [esp + 0x28], 0x3ffa
jle 0x10002be2
mov esi, ebx
mov dword [esp + 0x18], ebx
mov eax, ebx
mov dword [esp + 0x10], ebx
mov edi, ebx
mov dword [esp + 0x24], ebx
cdq
idiv edi
mov eax, esi
mov dword [esp + 0x5c], ebx
mov ecx, edx
mov esi, ebx
sar eax, cl
mov dword [esp + 0x2c], eax
mov edi, eax
mov eax, esi
lea ecx, [esp + 0xf8]
xor eax, edi
cdq
push edx
push eax
call fcn.100019c5
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002b8d
mov eax, dword [eax]
push eax
call fcn.1004139c
pop ecx
push ebx
push 1
lea ecx, [esp + 0x100]
call fcn.1000c8ef
inc esi
cmp esi, 0x3bdd
jl 0x10002b70
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
inc edi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], edi
cmp edi, 0x2afb
jl 0x10002b5b
inc eax
mov dword [esp + 0x10], eax
cmp eax, 0x3f03
jl 0x10002b55
inc esi
mov dword [esp + 0x18], esi
cmp esi, 0x1d75
jl 0x10002b4f
cmp dword [esp + 0x28], 0x3b5a
jge 0x10002bf7
push str.ccsruhr_cxvln_ulsq
call fcn.1004139c
pop ecx
mov dword [esp + 0x2c], 0x1589afca
mov dword [esp + 0x10], ebx
jmp 0x10002c15
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x4c], 6
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10002c05
mov dword [esp + 0x10], ebx
jmp 0x10002c32
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x44], 0xfffffff7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10002c22
mov eax, dword [esp + 0x14]
xor edx, edx
cmp eax, 8
mov eax, dword [esp + 0x14]
setle dl
xor ecx, ecx
cmp eax, edx
setle cl
add ecx, dword [esp + 0x14]
jne 0x10002c5a
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x4c]
xor ecx, ecx
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
cmp eax, 1
mov eax, dword [esp + 0x14]
setle cl
cmp ecx, 0x8d383303
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, ecx
setl dl
sub edx, dword [esp + 0x14]
neg edx
sbb edx, edx
xor eax, eax
inc edx
cmp edx, 7
setge al
xor edx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
cmp eax, ecx
mov ecx, dword [ebp + 8]
mov ax, word [esp + 0x40]
setne dl
mov dword [esp + 0x44], edx
mov dword [esp + 0x2c], edx
mov word [ecx], ax
jmp 0x10002cef
test dl, dl
je 0x10002cea
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0
je 0x10002cef
push 0
call dword [sym.imp.USER32.dll_DestroyMenu]
jmp 0x10002cef
mov eax, dword [ebp + 0x18]
mov dword [eax], ecx
mov ecx, dword [esp + 0x114]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret