Function at 0x1003fe4c
Capabilities:
Encrypt data using speck
Query environment variable

Disassembly:
mov eax, 0x10065109
call fcn.10064168
sub esp, 0x100
xor eax, eax
mov dword [ebp - 0x70], edx
inc eax
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x3c], eax
push ebx
mov dword [ebp - 0x24], 0xfffffff7
xor ebx, ebx
mov dword [ebp - 0x24], eax
push esi
mov dword [ebp - 0x20], 0x7575
cmp dword [ebp - 0x20], 0x7626
push edi
mov dword [ebp - 0x10], esp
jle 0x1003febd
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegGetKeySecurity]
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
mov ecx, 0x1060e278
cdq
push edx
push eax
call fcn.1002fe67
inc edi
cmp edi, 0xf61
jl 0x1003fe98
inc esi
cmp esi, 0x3380
jl 0x1003fe96
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0xa0]
call fcn.1002ff7c
mov dword [ebp - 4], ebx
mov byte [ebp - 4], 1
cmp dword [ebp - 0x20], 0x723d
jge 0x1003ff06
mov edx, 0x1000b774
mov ecx, 0x1060e278
call fcn.10031911
jmp 0x1003ff06
mov dword [ebp - 0x24], 0xfaa3
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x14], ebx
jmp 0x1003ff2c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xb3e90a62
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1003ff19
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x20]
or dword [ebp - 4], 0xffffffff
call fcn.1002fffe
mov dword [ebp - 0x40], 5
mov dword [ebp - 0x38], 0x7bb1a88a
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x20], 0xd1454bcd
mov dword [ebp - 0x14], ebx
jmp 0x1003ff7c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd0], 0xec0ae971
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1003ff6b
mov dword [ebp - 0x14], ebx
jmp 0x1003ff95
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x68], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1003ff87
mov dword [ebp - 0x14], ebx
jmp 0x1003ffc4
mov dword [ebp - 0x3c], 0x31fa
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1003ffc1
push 0x188
push 0x25bb
push ebx
call dword [sym.imp.USER32.dll_EnableMenuItem]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x1003ffa0
mov ecx, dword [ebp - 0xcc]
xor edx, edx
mov dword [ebp - 0x68], ecx
mov eax, dword [ebp - 0x20]
cmp ecx, eax
mov eax, dword [ebp - 0x14]
sete dl
xor ecx, ecx
cmp edx, eax
push 3
setg cl
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x4c], 4
mov dword [ebp - 0x30], 0x5ec7e011
call fcn.1002ff7c
mov dword [ebp - 0x2c], 0xaeef20fe
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x14], ebx
jmp 0x10040027
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xb8]
mov dword [eax + ecx*4], 0x7571177e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x10040014
mov dword [ebp - 0x2c], 2
cmp dword [ebp - 0x2c], ebx
jl 0x1004005c
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x1c], 2
cmp dword [ebp - 0x1c], ebx
jl 0x10040057
dec dword [ebp - 0x20]
dec dword [ebp - 0x1c]
jns 0x1004004f
dec dword [ebp - 0x2c]
jns 0x10040039
lea ecx, [ebp - 0xb8]
call fcn.1002fffe
mov dword [ebp - 0x3c], 0x923ccde6
mov dword [ebp - 0x24], 0xa421e0b
mov dword [ebp - 0x1c], 0x2735
mov dword [ebp - 0x2c], 7
mov dword [ebp - 0x20], 0xb748abb7
mov dword [ebp - 0x20], 0x7be2
cmp dword [ebp - 0x20], 0x7d89
jle 0x100400fe
push 0xc22
push 0x631
push 0x5fe
push 0x2373
push 0xb89
push 0x57c
push 0xb38
push 0x18b0
push 0x1609
push 0x191f
push 0x210e
call dword [sym.imp.GDI32.dll_StretchBlt]
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x1060e278
or eax, esi
cdq
push edx
push eax
call fcn.1002fe67
inc edi
cmp edi, 0x4f4d
jl 0x100400db
inc esi
cmp esi, 0x1841
jl 0x100400d9
mov dword [ebp - 0x28], 0xc22c9208
mov dword [ebp - 4], 5
cmp dword [ebp - 0x20], 0x792e
jge 0x10040124
mov edx, 0x1000b7c8
mov ecx, 0x1060e278
call fcn.10031911
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x14], ebx
jmp 0x1004015d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x48], 0x34678dc2
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x1004014f
mov eax, dword [ebp - 0x48]
xor edx, edx
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
cmp ecx, dword [ebp - 0x48]
jl 0x1004018e
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x2c]
sub eax, 0x2071
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x1c], 1
mov dword [ebp - 0x1c], 0x19
cmp dword [ebp - 0x1c], 0x1b
jl 0x1004031c
mov edi, 0x6478c38e
push 1
lea ecx, [ebp - 0x94]
call fcn.1002ff7c
mov dword [ebp - 4], 7
mov dword [ebp - 0x14], 0x54fddd3f
mov dword [ebp - 0x14], ebx
jmp 0x100401f5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x94]
mov dword [eax + ecx*4], 0xdf603fa7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x100401e2
mov dword [ebp - 0x14], ebx
jmp 0x1004021d
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1004021a
push 0x188
push 0x25bb
push ebx
call dword [sym.imp.USER32.dll_EnableMenuItem]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x10040200
mov dword [ebp - 0x14], ebx
jmp 0x100402f7
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x24], 0xe486aeba
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10040247
call dword [sym.imp.USER32.dll_CreateMenu]
mov dword [ebp - 0x2c], ebx
jmp 0x100402eb
push 4
lea ecx, [ebp - 0x7c]
call fcn.1002ff7c
mov dword [ebp - 0x28], ebx
jmp 0x1004026e
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0xf82d83d7
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 4
jl 0x1004025e
mov esi, dword [ebp - 0x7c]
mov dword [esi + 4], ebx
mov dword [ebp - 0x28], 0x3d4e7030
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
jl 0x100402c2
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100402a2
push ebx
push ebx
push 0x1022
call dword [sym.imp.USER32.dll_SetWindowRgn]
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], ebx
jl 0x100402bd
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x94]
cmp dword [eax + ecx*4], ebx
jne 0x100402bd
dec dword [ebp - 0x20]
jns 0x100402aa
dec dword [ebp - 0x28]
jns 0x10040289
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100402d2
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
dec dword [esi + 4]
jns 0x1004027a
mov eax, dword [ebp - 0x7c]
lea ecx, [ebp - 0x7c]
mov dword [eax + 0xc], edi
mov dword [ebp - 0x24], edi
call fcn.1002fffe
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], ebx
jle 0x1004024f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], ebx
jle 0x1004022a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.1002fffe
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x1b
jge 0x100401c2
mov dword [ebp - 0x1c], ebx
jmp 0x10040332
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xc4], 1
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10040321
mov dword [ebp - 0x40], ebx
cmp dword [ebp - 0x40], 0xc
je 0x100405fd
push 3
lea ecx, [ebp - 0xac]
call fcn.1002ff7c
mov dword [ebp - 4], 8
mov dword [ebp - 0x20], 0xdada439b
mov dword [ebp - 0x24], 0x624cdb8f
mov dword [ebp - 0x1c], ebx
jmp 0x1004037f
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xac]
mov dword [eax + ecx*4], 0xffff
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x1004036c
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10040396
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_RegUnLoadKeyW]
mov dword [ebp - 0x20], ebx
cmp dword [ebp - 0x20], 2
jg 0x1004046a
mov dword [ebp - 0x14], 0x7ab3921d
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x100403be
push 0x65b
call dword [sym.imp.USER32.dll_IsIconic]
mov dword [ebp - 0x24], 0x1be3
cmp dword [ebp - 0x24], 0x1e63
jle 0x10040444
mov esi, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x2c], 0xbe1
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, esi
xor eax, ecx
lea ecx, [ebp - 0xf4]
xor eax, edi
cdq
push edx
push eax
call fcn.1000db90
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10040402
mov eax, dword [eax]
push eax
call fcn.1004eea6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xf4]
call fcn.10030308
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x772c
jl 0x100403e4
inc edi
cmp edi, 0x29e0
jl 0x100403df
dec esi
dec dword [ebp - 0x2c]
jne 0x100403dd
mov esi, dword [ebp - 0x28]
inc esi
mov dword [ebp - 0x28], esi
cmp esi, 0x61b9
jl 0x100403d3
dec dword [ebp - 0x14]
cmp dword [ebp - 0x24], 0x1936
jge 0x1004045b
push 0x1000b7e8
call fcn.1004eea6
pop ecx
mov dword [ebp - 4], 8
inc dword [ebp - 0x20]
jmp 0x10040399
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac]
call fcn.1002fffe
mov dword [ebp - 0x20], 0x60ac
cmp dword [ebp - 0x20], 0x615a
jle 0x100404d3
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x24], 0x3f84
mov eax, edi
lea ecx, [ebp - 0x10c]
cdq
push edx
push eax
call fcn.1000db90
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x100404ae
mov eax, dword [eax]
push eax
call fcn.1004eea6
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10c]
call fcn.10030308
add edi, esi
dec dword [ebp - 0x24]
jne 0x10040494
inc esi
cmp esi, 0x31a3
jl 0x1004048b
mov dword [ebp - 0x34], 0xa12b57e8
cmp dword [ebp - 0x20], 0x6024
jge 0x100404ee
push 0x1000b810
call fcn.1004eea6
pop ecx
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x34], 0x19
jmp 0x100405eb
mov dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x44], 0x44adca1a
mov dword [ebp - 0x1c], ebx
jmp 0x1004051f
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x50], 0x312b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x10040511
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x30]
call fcn.1003f929
add esp, 0x14
mov dword [ebp - 0x30], ebx
jmp 0x100405df
mov dword [ebp - 0x24], 0xfffffffd
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x38], ebx
jl 0x100405dc
mov dword [ebp - 0x20], 0xfffffff8
mov dword [ebp - 0x44], ebx
jmp 0x100405d2
xor ecx, ecx
inc ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x50]
cmp dword [ebp - 0x20], ebx
jne 0x1004059d
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
jmp 0x100405a5
cmp dword [ebp - 0xc4], ebx
jne 0x100405a7
mov ecx, ebx
mov dword [ebp - 0x4c], ecx
xor edx, edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x4c]
test eax, eax
mov eax, dword [ebp - 0x34]
sets dl
xor ecx, ecx
cmp edx, eax
setle cl
mov dword [ebp - 0x1c], ecx
inc dword [ebp - 0x44]
cmp dword [ebp - 0x44], ebx
jle 0x1004056a
dec dword [ebp - 0x38]
jns 0x1004055e
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], ebx
jle 0x1004054f
dec dword [ebp - 0x34]
cmp dword [ebp - 0x34], 0xfffffff0
jle 0x100404fe
inc dword [ebp - 0x40]
jmp 0x1004033b
mov dword [ebp - 0x24], 0x2bcf
cmp dword [ebp - 0x24], 0x2e2f
jle 0x10040636
mov esi, ebx
mov edi, ebx
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x1060e278
cdq
push edx
push eax
call fcn.1002fe67
inc edi
cmp edi, 0x7d94
jl 0x10040611
inc esi
cmp esi, 0xae2
jl 0x1004060f
mov dword [ebp - 4], 0xd
cmp dword [ebp - 0x24], 0x2ae2
jge 0x10040655
mov edx, 0x1000b86c
mov ecx, 0x1060e278
call fcn.10031911
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x88]
call fcn.1002ff7c
mov dword [ebp - 0x1c], 9
mov dword [ebp - 0x14], ebx
jmp 0x100406a7
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x88]
mov dword [eax + ecx*4], 0xcf5720e8
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10040694
mov dword [ebp - 0x14], ebx
jmp 0x100406c0
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], 0x4f37831e
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x100406b2
mov dword [ebp - 0x60], ebx
cmp dword [ebp - 0x60], ebx
jl 0x100406fa
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x88]
cmp dword [ecx + eax*4], 0xfc371865
sbb eax, eax
neg eax
mov dword [ecx + edx*4], eax
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x88]
or dword [eax + ecx*4], 0xffffffff
dec dword [ebp - 0x60]
jns 0x100406ce
push 0xfffffffffffffffa
pop esi
mov dword [ebp - 0x1c], esi
jmp 0x10040740
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x10040718
push 0x1e2d
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], 0
je 0x1004073d
push 0x81
push ebx
push 0x268c
push 0x93e
push ebx
push 0x1ad1
call dword [sym.imp.GDI32.dll_GetCharacterPlacementW]
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x15
jl 0x10040702
lea ecx, [ebp - 0x88]
call fcn.1002fffe
mov dword [ebp - 0x30], 4
jmp 0x10040804
mov dword [ebp - 0x14], ebx
jmp 0x10040770
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 0x86cc6b0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x10040762
mov dword [ebp - 0x14], ebx
jmp 0x1004078c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xdc], 0x7da0bf3f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x1004077b
mov dword [ebp - 0x4c], esi
xor ecx, ecx
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x54]
cmp eax, 1
mov eax, dword [ebp - 0x54]
setl cl
xor edx, edx
cmp ecx, 0xb2d3f577
push 0
setne dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x38]
setne bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [ebp - 0x40]
pop ebx
setl cl
sub eax, ecx
xor ecx, ecx
cmp eax, 0x5052de17
mov eax, dword [ebp - 0x3c]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x54]
setg dl
xor ecx, ecx
dec edx
cmp edx, eax
mov eax, dword [ebp - 0x3c]
setne cl
add eax, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0xdc], 0x72faf722
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0x19
jge 0x1004075d
mov eax, dword [ebp - 0x70]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0x6c]
mov esi, edx
mov edi, eax
call fcn.1003f8b7
mov ecx, dword [ebp - 0xc]
add eax, esi
add eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret