Function at 0x10012ff7
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov eax, 0x10062134
call fcn.10061438
sub esp, 0xd0
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x50], ecx
je 0x100137b6
cmp byte [ebp + 0xc], 0
je 0x100137a4
mov dword [ebp - 0x14], 0x35b6
xor ebx, ebx
cmp dword [ebp - 0x14], 0x3810
jle 0x10013092
mov edi, ebx
mov dword [ebp - 0x18], ebx
mov esi, ebx
mov ebx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x18], 0x530d
mov ecx, esi
mov eax, ebx
shl eax, cl
mov ecx, 0x1007fdb8
and eax, edi
cdq
push edx
push eax
call fcn.1000e5de
dec esi
dec dword [ebp - 0x18]
jne 0x10013050
mov esi, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x324f
jl 0x10013046
inc ebx
push 0
mov dword [ebp - 0x18], ebx
cmp ebx, 0x27e
pop ebx
jl 0x1001303e
inc edi
cmp edi, 0x6027
jl 0x1001303b
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x14], 0x34e5
jge 0x100130ad
mov edx, str.ymvb_bixzmakhf_njyaqls_fxmpcoem
mov ecx, 0x1007fdb8
call fcn.100113ff
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x14], 0xecb45710
mov dword [ebp - 0x18], 0xb357
mov dword [ebp - 0x24], 0x6bc712ba
mov dword [ebp - 0x1c], 0xfffffffc
mov dword [ebp - 0x24], 0xa47b6c41
mov dword [ebp - 0x1c], 0xa251abe7
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], ebx
jmp 0x1001311a
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0x692b
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1001310c
mov dword [ebp - 0x14], ebx
jmp 0x1001316b
push ebx
push 0x142
lea eax, [ebp + 0xb]
mov byte [ebp + 0xb], bl
push eax
push 1
push 1
push 0x36b4
push 0x70da
mov edx, 0x6746
mov ecx, 0x4e18
call fcn.10012d30
mov byte [ebp - 0x1d], bl
add esp, 0x1c
cmp byte [ebp - 0x1d], 0
je 0x10013168
push 0x1ab8
mov cl, 1
call fcn.10012ccc
pop ecx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x10013125
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, eax
mov eax, dword [ebp - 0x18]
sub ecx, eax
mov dword [ebp - 0x24], ecx
je 0x10013193
cmp dword [ebp - 0x18], ebx
je 0x10013193
xor eax, eax
inc eax
jmp 0x10013195
mov eax, ebx
mov dword [ebp - 0x1c], eax
xor edx, edx
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setne dl
neg edx
neg edx
sbb edx, edx
xor eax, eax
neg edx
cmp edx, 0xde45a917
sete al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x68]
imul eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x90], 7
mov dword [ebp - 0x94], ebx
mov word [ebp - 0xa4], ax
push 1
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 2
push eax
push 0x7c63
push 1
push 1
push 0x7e3f
push 0x3000
mov edx, 0x53c1
lea ecx, [ebp - 0xa4]
call fcn.10012d30
add esp, 0x1c
lea ecx, [ebp - 0x60]
push 2
call fcn.1000e8c0
mov byte [ebp - 4], 3
lea eax, [ebp - 0xb4]
push dword [ebp + 8]
movdqa xmm0, xmmword [0x10071b00]
lea ecx, [ebp - 0x78]
push eax
lea eax, [ebp - 0xc4]
mov dword [ebp - 0x18], 0x506d4441
push eax
mov dword [ebp - 0x54], 0x47706695
push ebx
movdqu xmmword [ebp - 0xc4], xmm0
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
call fcn.10011dd5
mov byte [ebp - 4], 4
mov dword [ebp - 0x14], ebx
jmp 0x10013287
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0x57fd5464
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x10013277
xor ecx, ecx
inc ecx
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], ebx
jl 0x100133f0
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x48], 0xf95e19f8
mov dword [ebp - 0x14], ebx
jmp 0x100132c0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x80], 0x1dc6b79d
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x100132b2
mov dword [ebp - 0x14], ebx
jmp 0x100132dc
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xb4], 0xfffffff9
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ecx
jl 0x100132cb
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], ebx
jl 0x100133e7
mov dword [ebp - 0x14], 0x9cc25fa5
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], ebx
push 4
call fcn.1000e8c0
mov byte [ebp - 4], 5
mov dword [ebp - 0x14], ebx
jmp 0x10013323
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x8c]
mov dword [eax + ecx*4], 0xe6d54ec7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x10013310
mov dword [ebp - 0x14], 1
cmp dword [ebp - 0x14], ebx
jl 0x10013361
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x60]
cmp dword [eax + ecx*4], ebx
jne 0x10013361
push ecx
push 1
push ecx
push 0xff
mov byte [ebp - 0x2d], bl
lea ecx, [ebp - 0x2d]
push 0x520
call fcn.10012871
add esp, 0x14
dec dword [ebp - 0x14]
jns 0x10013335
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x54]
inc dword [ebp - 0x24]
jne 0x10013378
mov eax, dword [ebp - 0x60]
cmp dword [eax + 4], ebx
jne 0x10013378
mov edi, ebx
jmp 0x1001337b
xor edi, edi
inc edi
mov eax, dword [ebp - 0x7c]
xor edx, edx
imul ecx, eax, 0xfffb
mov dword [ebp - 0x7c], eax
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
cmp eax, ecx
mov eax, dword [ebp - 0x8c]
setl dl
add edx, dword [eax + 0xc]
xor eax, eax
cmp edi, edx
setne al
xor ecx, ecx
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x4c], eax
setge cl
xor eax, eax
add ecx, dword [ebp - 0x28]
cmp ecx, 0x2d14
setne al
imul ecx, eax, 0xffff
mov eax, dword [ebp - 0x60]
mov byte [ebp - 4], 4
mov dword [eax + esi*4], ecx
lea ecx, [ebp - 0x8c]
call fcn.1000e943
dec dword [ebp - 0x1c]
jns 0x100132ed
xor ecx, ecx
inc ecx
dec dword [ebp - 0x18]
jns 0x1001329c
lea ecx, [ebp - 0x78]
call fcn.1000e943
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
call fcn.1000e943
mov eax, dword [0x101458ec]
test al, 1
jne 0x1001342e
or eax, 1
mov dword [0x101458ec], eax
push 0xb9cb
mov byte [ebp - 4], 6
call fcn.1000e440
pop ecx
mov word [0x10144530], ax
mov byte [ebp - 4], 2
push 0x6bba
push 1
push 1
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x38], 0x3b26bdde
push eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x2c], 0xa8fe
push eax
push 0x1047
push ebx
push 0x1d04
mov dword [ebp - 0x24], 0xe5f0e77d
mov edx, 0x4ed2
mov dword [ebp - 0x28], 9
mov ecx, 0x267d
push 0x4dd0
call fcn.1001422a
add esp, 0x24
cmp dword [ebp - 0x38], ebx
jne 0x100134a2
cmp dword [ebp - 0x2c], ebx
jne 0x1001348a
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x24], ebx
jne 0x100134a2
mov ecx, ebx
jmp 0x100134a5
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x2c]
xor edx, edx
add eax, 0x7606
add ecx, eax
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [0x101458ec]
setl dl
mov dword [ebp - 0x38], edx
test al, 2
jne 0x100134e6
or eax, 2
mov dword [0x101458ec], eax
push 0x6811
mov byte [ebp - 4], 7
call fcn.1000e440
pop ecx
mov word [0x101458e8], ax
mov byte [ebp - 4], 2
push ecx
mov dword [ebp - 0x1c], 0xfffffffb
mov cl, 1
call fcn.10012dd0
pop ecx
mov dword [ebp - 0x1c], 2
jmp 0x1001353b
mov dword [ebp - 0x18], 0x65683c8f
mov dword [ebp - 0x18], ebx
jmp 0x10013532
push 1
push 0x48
push 0x5412
push 0x6ca5
push 1
mov byte [ebp - 0x2e], bl
lea edx, [ebp - 0x2e]
push ebx
mov ecx, 0x6d74
call fcn.10014341
add esp, 0x18
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x1b
jle 0x1001350b
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffffa
jne 0x100134ff
mov esi, dword [ebp - 0x44]
test esi, esi
je 0x1001357a
call fcn.1001261d
push 0x24
pop ecx
xor edx, edx
div ecx
lea eax, [ebp - 0xa4]
push eax
push ecx
push ecx
push 0x10144530
mov dword [ebp - 0x40], edx
lea edx, [ebp - 0x40]
push 1
push 0x101458e8
call fcn.10012eba
add esp, 0x18
dec esi
jne 0x10013548
mov dword [ebp - 0x18], 3
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x1001359f
push 1
push ecx
push 0x7760
mov ecx, 0x269c
call fcn.10012fad
add esp, 0xc
mov dword [ebp - 0x1c], 0x26d8
cmp dword [ebp - 0x1c], 0x26e7
jle 0x1001364c
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov edi, ebx
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], 0x4af0
mov eax, esi
lea ecx, [ebp - 0xdc]
cdq
push edx
push eax
call fcn.10001a7f
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100135de
mov eax, dword [eax]
push eax
call fcn.10048643
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xdc]
call fcn.1000f099
add esi, edi
dec dword [ebp - 0x24]
jne 0x100135c4
mov esi, dword [ebp - 0x18]
dec edi
cmp edi, 0xffffeb7d
jg 0x100135ba
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x30e6
jl 0x100135b8
push ebx
push 0x20a6
push 0x1c08
push ebx
push 0xea7
push 0xf96
push 0xf7d
push 0x19da
push 0x1415
push 0x1785
push 0x34e
push 0x1674
call dword [sym.imp.GDI32.dll_MaskBlt]
push 0xfffffffffffffff6
pop esi
mov dword [ebp - 0x18], esi
jmp 0x100136e9
push 1
lea ecx, [ebp - 0xb0]
call fcn.1000e8c0
push ecx
push 1
push ecx
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x34]
mov edx, 0x134b
push 0xb4c
push eax
call fcn.10012b94
add esp, 0x18
mov dword [ebp - 0x34], ebx
jmp 0x1001369c
mov eax, dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x3c], 8
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 1
jl 0x1001368e
mov dword [ebp - 0x3c], ebx
jmp 0x100136d2
push ebx
mov edx, 0x4653
mov ecx, 0x3086
call fcn.10014bb4
pop ecx
push 1
push ecx
push ecx
mov byte [ebp - 0x2f], bl
lea ecx, [ebp - 0x2f]
mov edx, 0x6457
call fcn.10014af3
add esp, 0xc
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], ebx
jle 0x100136a7
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 2
call fcn.1000e943
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jle 0x10013657
cmp dword [ebp - 0x1c], 0x25f8
jge 0x10013706
push str.qxbuuckg_knch_oiae_qhxfq_ixlfxdu_ddibh_dfcz_fgmrfr_wmm_pjpxl_fty
call fcn.10048643
pop ecx
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0xa4]
mov dword [ebp - 4], 2
cmp ecx, eax
je 0x10013723
push 0xffffffffffffffff
push ebx
push eax
call fcn.1000f12b
mov dword [ebp - 0x28], 0x7ab8
cmp dword [ebp - 0x28], 0x7e9d
jle 0x10013785
push ebx
push 0xbe4
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByteEx]
mov esi, ebx
mov dword [ebp + 8], ebx
mov edi, ebx
mov ecx, edi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x28], ebx
sar esi, cl
mov eax, ebx
mov ecx, 0x1007fdb8
xor eax, esi
cdq
push edx
push eax
call fcn.1000e5de
inc ebx
cmp ebx, 0x1314
jl 0x10013750
mov esi, dword [ebp + 8]
inc edi
push 0
pop ebx
cmp edi, 0x2f25
jl 0x10013746
inc esi
mov dword [ebp + 8], esi
cmp esi, 0x4a09
jl 0x10013744
push ebx
push 1
lea ecx, [ebp - 0xa4]
call fcn.1000f26d
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 0x14]
push eax
call fcn.10014e05
jmp 0x10013793
xor ebx, ebx
cmp byte [ebp + 0x10], bl
je 0x100137d2
push ebx
push ebx
push 0x2256
push 0x2163
push ebx
call dword [sym.imp.USER32.dll_InsertMenuA]
jmp 0x10013793
mov byte [ebp - 0x1d], bl
mov dword [ebp - 0x24], 0x1389
cmp dword [ebp - 0x24], 0x156e
jle 0x1001380c
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x1007fdb8
xor eax, esi
cdq
push edx
push eax
call fcn.1000e5de
inc edi
cmp edi, 0x6163
jl 0x100137e9
inc esi
cmp esi, 0x51f8
jl 0x100137e7
cmp byte [ebp - 0x1d], bl
je 0x10013825
push ecx
push ebx
push 0x70a4
mov ecx, 0xdbe
call fcn.10012758
add esp, 0xc
mov dword [ebp - 4], 0xd
cmp dword [ebp - 0x24], 0x121d
jge 0x10013793
mov edx, str.wugdtgu_wfbu_ufs
mov ecx, 0x1007fdb8
call fcn.100113ff
jmp 0x10013793