Function at 0x100383f5
Capabilities:
Encrypt data using speck

Disassembly:
mov eax, 0x1005cb60
call fcn.1005b9e8
sub esp, 0x100
cmp byte [ebp + 0xc], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
je 0x10038426
cmp byte [edx], 0
je 0x10038dc8
xor cl, cl
call fcn.10036b92
jmp 0x10038dc8
mov dword [ebp - 0x50], ecx
xor ebx, ebx
mov dword [ebp - 0x24], 0x7486
mov edi, 0x100761b8
cmp dword [ebp - 0x24], 0x76fc
jle 0x1003846a
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov ecx, ebx
mov eax, esi
sar eax, cl
mov ecx, edi
cdq
push edx
push eax
call fcn.100062df
inc ebx
cmp ebx, 0x7139
jl 0x10038445
inc esi
push 0
pop ebx
cmp esi, 0x4e83
jl 0x10038442
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0x742a
mov dword [ebp - 0x74], eax
jge 0x10038488
mov edx, str.qvd_qyqk_hrrsxgt_ehbjoe
mov ecx, edi
call fcn.10008b0d
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x1c], 0x3fcb50bf
xor edx, edx
mov dword [ebp - 0x18], 0xe864896e
inc edx
mov dword [ebp - 0x7c], 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x3c], edx
jmp 0x100384e7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb8], 0xe76e5b14
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x100384d6
mov dword [ebp - 0x18], ebx
jmp 0x100384ff
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x70], 0x31aa08
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x100384f1
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x1c]
cmp eax, 0x4157
push 0xfffffffffffffff8
setne cl
pop eax
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xfffffffc
push 2
pop esi
je 0x1003855f
mov dword [ebp - 0x18], ebx
jmp 0x1003854b
push ecx
push ecx
push 0x2c42
xor dl, dl
call fcn.100362f8
add esp, 0xc
push ebx
push ecx
lea ecx, [ebp - 0x7c]
call fcn.10038fa0
inc dword [ebp - 0x18]
pop ecx
pop ecx
cmp dword [ebp - 0x18], esi
jle 0x1003852b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffffc
jne 0x10038526
xor edx, edx
push 0xfffffffffffffff8
inc edx
pop eax
mov dword [ebp - 0x54], 0x624cdb8f
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x34], 0x8100c430
mov dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x24], 0x905f4d0c
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0x30], 0x9d3f58f2
mov dword [ebp - 0x8c], 0xf0ebe340
mov dword [ebp - 0x18], ebx
jmp 0x100385c0
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x84], 0x627dbd1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], esi
jl 0x100385af
mov dword [ebp - 0x18], ebx
jmp 0x100385db
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xb4], 0x44cb
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edx
jl 0x100385ca
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x54]
push eax
push ecx
lea edx, [ebp - 0x44]
xor cl, cl
call fcn.10036553
add esp, 0x14
mov dword [ebp - 0x40], ebx
cmp dword [ebp - 0x40], 0x1a
jg 0x1003894f
mov dword [ebp - 0x24], 0xffffffff
xor eax, eax
mov dword [ebp - 0x64], 0x8d7e942f
inc eax
mov dword [ebp - 0x20], 0x5454
mov dword [ebp - 0x20], 0xeaadaf8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], 0x5efb
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x20], 0xc2aa0bde
mov dword [ebp - 0x20], 0x7c19c50e
mov dword [ebp - 0x78], 0xe4446ca3
mov dword [ebp - 0x20], 5
mov dword [ebp - 0x18], 0x4e90
cmp dword [ebp - 0x18], 0x5188
jle 0x100386b6
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov ecx, ebx
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
mov eax, esi
cdq
idiv ecx
mov ecx, edi
and edx, ebx
mov eax, edx
cdq
push edx
push eax
call fcn.100062df
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x253e
jl 0x10038677
inc esi
push 0
pop ebx
cmp esi, 0x38b7
jl 0x1003866f
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x530e
jl 0x1003866d
push 2
pop esi
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 4], esi
cmp dword [ebp - 0x18], 0x4b68
jge 0x100386d5
mov edx, str.mohbblbwb_jmy_vidrlwxh_rmi_hfnybb_ymepfucpn_gqgvegew_ipklhymvv_taozopt_shwmn_lzs
mov ecx, edi
call fcn.10008b0d
or dword [ebp - 4], 0xffffffff
xor edx, edx
inc edx
mov dword [ebp - 0x1c], ebx
jmp 0x1003871f
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x4c], 0x39e0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x10038711
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], edx
jg 0x1003892c
mov dword [ebp - 0x20], 0xb11589a4
mov dword [ebp - 0x20], 0x231d5762
mov dword [ebp - 0x2c], 0xfffffffb
mov dword [ebp - 0x18], 0x1df1
cmp dword [ebp - 0x18], 0x205c
jle 0x100387c4
call dword [sym.imp.USER32.dll_DestroyCaret]
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, ebx
mov dword [ebp - 0x24], ebx
mov ecx, eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x28], ebx
shl esi, cl
mov ecx, ebx
mov eax, esi
sar eax, cl
mov ecx, edi
cdq
push edx
push eax
call fcn.100062df
inc ebx
cmp ebx, 0x77f6
jl 0x1003876f
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x24], eax
push 0
pop ebx
cmp eax, 0x4182
jl 0x10038765
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x69e6
jl 0x10038760
push 0x1eeb
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RestoreDC]
push 2
pop esi
mov dword [ebp - 0x24], 0x833686a8
mov dword [ebp - 4], 4
cmp dword [ebp - 0x18], 0x1d9d
jge 0x100387e7
mov edx, str.qkrvywfb_yvaqltzf_xfsmzzt_tpgnhn_vodkkfd_zbwesfi_sbuhbfsvc_iipzhr
mov ecx, edi
call fcn.10008b0d
or dword [ebp - 4], 0xffffffff
xor edx, edx
inc edx
mov dword [ebp - 0x20], 0x4a0f0c0e
mov dword [ebp - 0x1c], ebx
jmp 0x10038837
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xb0], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x1003882a
mov eax, dword [ebp - 0x34]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 0x58]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x4c]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x4c]
cmp eax, esi
sete cl
xor eax, eax
cmp ecx, 0x6496
setge al
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x40]
add eax, ecx
mov ecx, dword [ebp - 0x44]
add ecx, eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x4c]
sub eax, 0xc3c348fb
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x30]
cmp eax, 0x2618
setge cl
imul ecx, dword [ebp - 0x84]
inc dword [ebp - 0x84]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x44]
cmp ecx, 0x49e3b93f
cmovle edx, ebx
xor ecx, ecx
cmp edx, eax
setne cl
imul edx, dword [ebp - 0x24], 0xb54c
mov eax, dword [ebp - 0x64]
sub edx, ecx
xor ecx, ecx
imul edx, eax
mov eax, dword [ebp - 0x30]
cmp edx, eax
setg cl
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], ebx
jne 0x100388fa
mov eax, dword [ebp - 0x34]
cmp dword [ebp + eax*4 - 0x4c], ebx
jne 0x100388fa
xor edx, edx
mov eax, ebx
inc edx
jmp 0x100388ff
xor edx, edx
inc edx
mov eax, edx
mov ecx, 0xffff3824
sub ecx, eax
mov eax, dword [ebp - 0x58]
add eax, ecx
mov ecx, dword [ebp - 0x54]
add ecx, eax
jne 0x10038919
mov eax, ebx
cmp dword [ebp - 0x4c], ebx
je 0x1003891b
mov eax, edx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x2c], eax
inc dword [ebp - 0x34]
jmp 0x10038727
push ecx
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x8c]
push ebx
push eax
lea edx, [ebp - 0x64]
lea ecx, [ebp - 0x54]
call fcn.10036bcc
add esp, 0x10
inc dword [ebp - 0x40]
jmp 0x10038601
mov eax, dword [ebp - 0x50]
push 0xfffffffffffffffd
mov eax, dword [eax]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x24], 0xd6c05baf
mov dword [ebp - 0x20], 0x963ab194
mov dword [ebp - 0x20], 8
mov dword [ebp - 0x20], 0x9598aaf0
mov dword [ebp - 0x20], 0x3d7f1912
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x20], 0x51dd2e9
mov dword [ebp - 0x20], 0x8aac1e0f
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x20], 0xd9964374
pop eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x1c], ebx
jmp 0x100389d1
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xd0], 0x352601c8
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x100389c0
mov dword [ebp - 0x2c], 0x7a8b
cmp dword [ebp - 0x2c], 0x7afe
mov dword [ebp - 0x20], str.gudxxgpd_ggbjat_mfqwlczl_wujynuw_kxbeghas_mcrgp_keeerbs_obxy_itfhuudk_ofy_ukrh
jle 0x10038a68
mov edx, ebx
mov dword [ebp - 0x1c], ebx
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x30], ebx
lea ecx, [eax + esi]
mov eax, edi
sar eax, cl
lea ecx, [ebp - 0x10c]
xor eax, edx
cdq
push edx
push eax
call fcn.10001341
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038a1c
mov eax, dword [eax]
push eax
call fcn.10044ce0
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10c]
call fcn.100014ca
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x57f9
jl 0x100389fb
inc esi
cmp esi, 0x457b
jl 0x100389f6
inc edi
cmp edi, 0x13be
jl 0x100389f4
inc edx
mov dword [ebp - 0x1c], edx
cmp edx, 0x2984
jl 0x100389f2
push 2
pop esi
mov edi, 0x100761b8
mov dword [ebp - 0x24], 5
cmp dword [ebp - 0x24], 0x15
jl 0x10038d01
xor ecx, ecx
inc ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x28], 0xdd93ba6
mov dword [ebp - 0x18], ebx
jmp 0x10038a95
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x6c], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ecx
jl 0x10038a8b
mov dword [ebp - 0x18], ebx
jmp 0x10038ab0
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x98], 0x3248c66f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10038a9f
mov dword [ebp - 0x94], ebx
cmp dword [ebp - 0x94], ebx
jl 0x10038cf9
mov dword [ebp - 0x1c], 0x6e6f7fbf
mov dword [ebp - 0x28], 0x3203bd65
mov dword [ebp - 0x28], 0xfad5befa
mov dword [ebp - 0x28], 0xfffffffb
mov dword [ebp - 0x18], 0x451b
cmp dword [ebp - 0x18], 0x48a2
jle 0x10038b46
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, ebx
mov dword [ebp - 0x30], ebx
mov eax, esi
mov dword [ebp - 0x28], ebx
cdq
idiv ecx
mov esi, dword [ebp - 0x28]
mov ebx, edx
mov eax, ebx
mov ecx, edi
xor eax, esi
cdq
push edx
push eax
call fcn.100062df
inc esi
cmp esi, 0x35e1
jl 0x10038b0b
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x30], ecx
push 0
pop ebx
cmp ecx, 0x2433
jl 0x10038afe
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x149b
jl 0x10038af9
push 2
pop esi
mov dword [ebp - 4], 6
cmp dword [ebp - 0x18], 0x4152
jge 0x10038b62
mov edx, str.vvkg_veygmx_dndu_vldhypw_gjrpya_zpbhrpoan_byodagxd_dtlouwbyr_ioi_njke_ern_dkl_iygqoyyxz_rmgme
mov ecx, edi
call fcn.10008b0d
or dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x28], 0x6d7d0454
mov dword [ebp - 0x18], ebx
jmp 0x10038bb4
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xf4], 0xe491ba6b
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10038ba3
mov dword [ebp - 0x18], ebx
jmp 0x10038bd0
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xdc], 0x193fe696
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10038bbf
mov dword [ebp - 0x18], ebx
jmp 0x10038be8
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0xe8], esi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x10038bdb
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], ebx
jl 0x10038ce8
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x6c]
cmp eax, 0xe32cf41
mov eax, dword [ebp - 0x1c]
setge cl
mov dword [ebp + eax*4 - 0x6c], ecx
mov dword [ebp - 0x28], 0x2971
cmp dword [ebp - 0x28], 0x2bb5
jle 0x10038c80
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x68], ebx
mov eax, esi
mov dword [ebp - 0x5c], 0x649b
cdq
idiv ecx
mov ecx, edx
mov dword [ebp - 0x18], ecx
mov eax, ebx
mov dword [ebp - 0x30], ebx
xor eax, ecx
mov ecx, edi
cdq
push edx
push eax
call fcn.100062df
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x30], eax
cmp eax, 0x2f85
jl 0x10038c3f
dec ecx
dec dword [ebp - 0x5c]
mov dword [ebp - 0x18], ecx
jne 0x10038c3a
mov ecx, dword [ebp - 0x68]
inc ecx
mov dword [ebp - 0x68], ecx
cmp ecx, 0x4010
jl 0x10038c29
inc esi
cmp esi, 0x2ad7
jl 0x10038c24
push 2
pop esi
mov byte [ebp - 0x35], bl
mov dword [ebp - 4], 8
cmp dword [ebp - 0x28], 0x2868
jge 0x10038c9f
mov edx, str.rhfyc_uru_alcd_uwpctf_uxyipe_jzr_dyzesysc_xnridwp_buip_lcghidq_kbnne_eukb_arjbj
mov ecx, edi
call fcn.10008b0d
or dword [ebp - 4], 0xffffffff
push ecx
lea edx, [ebp - 0x35]
xor cl, cl
call fcn.10036885
dec dword [ebp - 0x1c]
pop ecx
jmp 0x10038bf1
dec dword [ebp - 0xa8]
dec dword [ebp - 0x94]
jmp 0x10038abc
inc dword [ebp - 0x24]
jmp 0x10038a6f
cmp dword [ebp - 0x2c], 0x796d
jge 0x10038d13
push dword [ebp - 0x20]
call fcn.10044ce0
pop ecx
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x60]
push ebx
push ebx
push eax
mov dl, 1
lea ecx, [ebp - 0x50]
call fcn.10036aac
xor ecx, ecx
mov dword [ebp - 0x18], 0x394643cd
add esp, 0xc
inc ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], 0xeda8ed40
mov dword [ebp - 0x1c], ebx
jmp 0x10038d54
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x88], 0x9fcfbce0
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], ecx
jl 0x10038d43
push 0x3dd1
xor cl, cl
call fcn.10036695
mov eax, dword [ebp - 0x18]
pop ecx
cmp eax, dword [ebp - 0x18]
jl 0x10038d88
cmp dword [ebp - 0x18], ebx
jne 0x10038d76
mov dword [ebp - 0x3c], ebx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ecx, 0xe13a
xor edx, edx
mov dword [ebp - 0x88], ecx
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x18]
mov esi, dword [ebp - 0x50]
setne dl
xor ecx, ecx
cmp eax, edx
setge cl
mov dword [ebp - 0x18], ecx
mov cl, byte [ebx + esi]
mov dl, 0xe4
call fcn.1003ea46
mov byte [ebx + esi], al
inc ebx
cmp ebx, 4
jb 0x10038dad
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret