Function at 0x10015224
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x100648d1
call fcn.10063a98
sub esp, 0x100
cmp byte [ebp + 0x10], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x90], edx
je 0x100153a2
mov dword [ebp - 0x14], 0x4193
cmp dword [ebp - 0x14], 0x443d
jle 0x100152b9
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x1c], esi
xor edi, edi
mov dword [ebp - 0x18], edi
and dword [ebp - 0x38], 0
mov ecx, edi
mov edi, esi
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x38]
sar edi, cl
mov eax, edi
mov ecx, 0x100812f8
xor eax, esi
or eax, ebx
cdq
push edx
push eax
call fcn.10001ee2
inc esi
cmp esi, 0x5340
jl 0x10015276
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x1c]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x7f4c
jl 0x10015266
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x2d5b
jl 0x10015261
inc ebx
cmp ebx, 0x62bc
jl 0x1001525c
and dword [ebp - 4], 0
cmp dword [ebp - 0x14], 0x3dc1
jge 0x100152d5
mov edx, str.edoavc_lrczwlfh_pfl_ucns_bqtbjt_nvimecqt_shczqqnp_wfvstferh_zdumtuo
mov ecx, 0x100812f8
call fcn.1000395e
mov eax, dword [ebp + 0x28]
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x90]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x18]
mov edx, dword [edx]
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
cmp eax, dword [ecx + edx*4]
jle 0x100152fc
mov eax, dword [ebp + 0x1c]
mov dword [eax], 1
mov dword [ebp - 0x18], 0x4355
cmp dword [ebp - 0x18], 0x43a8
jle 0x1001536b
xor esi, esi
xor edi, edi
mov ebx, 0x4053
mov eax, edi
lea ecx, [ebp - 0xf4]
cdq
push edx
push eax
call fcn.10001a31
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001532f
mov eax, dword [eax]
push eax
call fcn.1004b616
pop ecx
push 0
push 1
lea ecx, [ebp - 0xf4]
call fcn.1000230b
add edi, esi
dec ebx
jne 0x10015315
inc esi
cmp esi, 0x78dd
jl 0x1001530e
push 0x165b
push ebx
push 0x1f7a
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDlgItemTextA]
cmp dword [ebp - 0x18], 0x3ff2
jge 0x100159ff
push str.vzvarse_xad_lbgzbj_pwsqpo_sblynujye_rdcuiyk_tqjgrkpz_behcwk_haavskl_bqf
call fcn.1004b616
pop ecx
jmp 0x100159ff
mov eax, dword [ebp + 0x24]
xor ebx, ebx
push 0xfffffffffffffff9
mov dword [ebp - 0x1c], 0x7f6af112
or edi, 0xffffffff
pop esi
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], esi
jle 0x10015504
mov dword [ebp - 0x14], 0xe0091df8
mov dword [ebp - 0x3c], 0xaf7cc73e
mov dword [ebp - 0x18], ebx
jmp 0x100153f0
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x44], 1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x100153e2
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
setle dl
xor ecx, ecx
cmp eax, edx
setg cl
cmp ecx, 0x69a22db7
je 0x10015418
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ebx
je 0x100154e1
mov dword [ebp - 0x18], 1
xor ebx, ebx
mov dword [ebp - 0x24], 0x9918c6a8
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x14], 2
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
add ecx, eax
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x18]
setge bl
xor edx, edx
cmp eax, edi
mov eax, dword [ebp - 0x14]
setg dl
xor ecx, ecx
add edx, ebx
cmp eax, edx
setne cl
xor edx, edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
setne dl
add ecx, edx
xor ebx, ebx
mov edx, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x3c]
setle bl
xor ecx, ecx
imul edx, ebx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x3c]
jne 0x100154aa
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x44]
sub ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x18]
neg ecx
sbb ecx, ecx
inc ecx
add eax, ecx
xor ecx, ecx
cmp eax, edi
setne cl
xor ebx, ebx
imul ecx, dword [ebp - 0x18]
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], bl
je 0x100154f9
push 1
mov ecx, 0x6258
call fcn.10014691
pop ecx
jmp 0x100154f9
push ecx
lea eax, [ebp - 0x3c]
xor dl, dl
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x45ae
call fcn.10014e65
add esp, 0x10
mov eax, dword [ebp - 0x3c]
dec dword [ebp - 0x1c]
jmp 0x100153c6
push ecx
push 1
push ecx
call fcn.1001472a
add esp, 0xc
lea ecx, [ebp - 0xa0]
push 1
call fcn.10001ff7
mov dword [ebp - 4], 4
mov dword [ebp - 0x34], 1
mov dword [ebp - 0x38], 0x7f37c04c
mov dword [ebp - 0x14], ebx
jmp 0x1001554a
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xfffffff6
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10015537
mov dword [ebp - 0x14], ebx
jmp 0x10015566
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xdc], 0x5de05dae
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10015555
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x1001558d
push 1
push 0x5fce
push 0xc16
xor dl, dl
mov cl, 1
call fcn.10014bc8
add esp, 0xc
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], ebx
jg 0x100155dc
mov esi, 0xb999fb0
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x7c], 3
push eax
push ecx
lea eax, [ebp - 0xa0]
mov dword [ebp - 0xd8], esi
push eax
push 1
push 0x18b5
push ecx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x38], esi
push eax
mov edx, 0x5f23
mov ecx, 0x12b6
call fcn.10015e7c
add esp, 0x1c
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], ebx
jle 0x1001559a
lea ecx, [ebp - 0xa0]
mov dword [ebp - 4], edi
call fcn.1000207a
push 0x7c
pop eax
push 2
mov dword [ebp - 0x28], 0x9e017a00
mov word [ebp - 0x40], ax
pop esi
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x1c], esi
cmp esi, 4
jae 0x100156e9
mov dword [ebp - 0x18], 0x1714
cmp dword [ebp - 0x18], 0x199b
jle 0x1001566a
mov edi, ebx
mov esi, ebx
mov dword [ebp - 0x24], 0xf6f
mov eax, esi
lea ecx, [ebp - 0x10c]
cdq
push edx
push eax
call fcn.10001a31
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1001563f
mov eax, dword [eax]
push eax
call fcn.1004b616
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10c]
call fcn.1000230b
add esi, edi
dec dword [ebp - 0x24]
jne 0x10015625
inc edi
cmp edi, 0x1f00
jl 0x1001561c
mov esi, dword [ebp - 0x1c]
or edi, 0xffffffff
movzx eax, byte [ebp - 0x28]
lea eax, [eax*2 + 2]
cmp esi, eax
jne 0x10015689
movzx ecx, byte [ebp + esi - 0x28]
dec esi
add esi, ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x58], eax
jmp 0x100156e1
cmp dword [ebp - 0x18], 0x16e9
jge 0x1001569d
push str.ozx_htpticc_avlza_tcypwxql_czgps_zyabzp_ervnf_kwyr_oeuwc_xeqcv_ioxyp_qksagjpbk
call fcn.1004b616
pop ecx
mov dword [ebp - 4], edi
mov eax, esi
sub eax, dword [ebp - 0x58]
movzx edx, byte [ebp + esi - 0x27]
push 0x70f2
movzx eax, byte [ebp + eax - 0x2a]
movzx eax, word [ebp + eax*2 - 0x40]
mov ecx, eax
and eax, edx
or ecx, edx
mov edx, 0x12d6
sub ecx, eax
movzx eax, byte [ebp + esi - 0x28]
push ecx
push 0xda0
mov word [ebp + eax*2 - 0x40], cx
lea ecx, [ebp - 0x58]
call fcn.10015b3b
add esp, 0xc
add esi, 2
jmp 0x100155fe
xor eax, eax
mov word [ebp - 0x3e], ax
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x18], 0x3d36
cmp dword [ebp - 0x18], 0x3f4f
jle 0x1001573f
mov esi, ebx
mov dword [ebp - 0x24], ebx
mov edi, esi
mov esi, 0x3f9a
mov eax, edi
mov ecx, 0x100812f8
cdq
push edx
push eax
call fcn.10001ee2
dec edi
dec esi
jne 0x10015711
mov esi, dword [ebp - 0x24]
inc esi
mov dword [ebp - 0x24], esi
cmp esi, 0x7341
jl 0x1001570a
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
or edi, 0xffffffff
mov dword [ebp - 4], 7
cmp dword [ebp - 0x18], 0x3b8c
jge 0x1001575e
mov edx, str.sujdubdex_qotqhbp_xsiuqekq_dryvi_jby_jmrzojbne_ikgrjmker_ihxlxj_cslldhiuc
mov ecx, 0x100812f8
call fcn.1000395e
mov esi, dword [ebp + 0x24]
mov dword [ebp - 4], edi
mov dword [ebp - 0x18], ebx
jmp 0x100157a4
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x80], 0xffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x10015796
push 0x55e8
lea eax, [ebp - 0x30]
xor dl, dl
push eax
push 1
push 0x15f0
lea eax, [ebp - 0x70]
mov ecx, 0x286e
push 1
push eax
call fcn.10015ee4
add esp, 0x18
mov dword [ebp - 0x30], ebx
jmp 0x100157e2
mov eax, dword [ebp - 0x30]
mov dword [ebp + eax*4 - 0x80], 0xde21
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 1
jl 0x100157d4
xor eax, eax
mov dword [ebp - 0xbc], 7
mov word [ebp - 0xd0], ax
lea ecx, [ebp - 0xd0]
lea eax, [ebp - 0x40]
mov dword [ebp - 0xc0], ebx
push eax
call fcn.1000f0a9
lea eax, [ebp - 0xd0]
mov dword [ebp - 4], 9
push eax
mov edx, esi
lea ecx, [ebp - 0x8c]
call fcn.100145b6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0xb
call fcn.1000f1cb
mov dword [ebp - 0x1c], 0x29ea4144
mov dword [ebp - 0x14], 0x37b04800
mov dword [ebp - 0x14], ebx
jmp 0x1001585b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10015851
mov dword [ebp - 0x14], ebx
jmp 0x10015874
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x74], 5
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10015866
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
sub eax, 0x72c25fcc
jne 0x100158cd
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
je 0x1001589e
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1c]
neg eax
sbb eax, eax
inc eax
cmp eax, 0xc0b333ee
mov eax, dword [ebp - 0x1c]
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
cmp ecx, 0xa083
jl 0x100158cd
mov edx, ebx
jmp 0x100158d0
xor edx, edx
inc edx
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x14], ebx
jmp 0x100158f2
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x60], edi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x100158e8
push 0xa
pop eax
push 2
mov dword [ebp - 0x40], ebx
mov ecx, ebx
mov dword [ebp - 0x54], 0x3001002
mov dword [ebp - 0x50], 0xd2042903
mov dword [ebp - 0x4c], 0x1482c12
mov byte [ebp - 0x48], 0x2d
mov word [ebp - 0x68], ax
pop esi
cmp esi, 6
jne 0x1001592d
push 5
pop ecx
push 9
pop esi
jmp 0x10015954
movzx edx, byte [ebp + esi - 0x53]
mov eax, esi
sub eax, ecx
movzx eax, byte [ebp + eax - 0x56]
movzx eax, word [ebp + eax*2 - 0x6c]
mov ecx, eax
and eax, edx
or ecx, edx
sub ecx, eax
movzx eax, byte [ebp + esi - 0x54]
mov word [ebp + eax*2 - 0x6c], cx
mov ecx, ebx
add esi, 2
cmp esi, 0xd
jb 0x10015920
xor eax, eax
mov dword [ebp - 0xa4], 7
mov word [ebp - 0x64], ax
lea ecx, [ebp - 0xb8]
mov word [ebp - 0xb8], ax
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 0xa8], ebx
call fcn.1000f0a9
xor eax, eax
mov byte [ebp - 4], 0xc
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x5c], ebx
stosd dword es:[edi], eax
push 0x18
pop ecx
stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x8c]
cdq
idiv ecx
mov esi, eax
test esi, esi
je 0x100159d7
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x8c]
push eax
push ecx
lea eax, [ebp - 0x5c]
push eax
push ecx
call fcn.10015c58
mov eax, dword [ebp - 0x5c]
add esp, 0x14
inc eax
mov dword [ebp - 0x5c], eax
cmp eax, esi
jb 0x100159b0
mov ecx, dword [ebp + 0x20]
lea eax, [ebp - 0x8c]
push eax
call fcn.1001826b
push ebx
push 1
lea ecx, [ebp - 0xb8]
call fcn.1000f1cb
lea ecx, [ebp - 0x8c]
call fcn.10018798
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret