Function at 0x1403112b4
Capabilities:
Encrypt data using speck

Disassembly:
push rax
pushf
mov eax, 0xd41a5bfb
pushf
not eax
add eax, 0x9469bd82
xor eax, 0xdf8d4a81
rol eax, 0x50
popf
pushf
not eax
add eax, 0xe5d7051e
xor eax, 0xa6f79844
rol eax, 0x18
popf
pushf
not eax
add eax, 0xaecf7d7e
xor eax, 0x8fb34500
rol eax, 0x8c
popf
cmp eax, 0x20
jne 0x140311304
popf
pop rax
jmp 0x140312535
cmp eax, 0
jne 0x140311313
popf
pop rax
jmp 0x1403114e4
cmp eax, 3
jne 0x140311322
popf
pop rax
jmp 0x140311652
cmp eax, 1
jne 0x140311331
popf
pop rax
jmp 0x14031157c
cmp eax, 0xd
jne 0x140311340
popf
pop rax
jmp 0x140311a9e
cmp eax, 0x1a
jne 0x14031134f
popf
pop rax
jmp 0x14031206e
cmp eax, 0xe
jne 0x14031135e
popf
pop rax
jmp 0x140311b1d
cmp eax, 0xb
jne 0x14031136d
popf
pop rax
jmp 0x1403119b7
cmp eax, 0x19
jne 0x14031137c
popf
pop rax
jmp 0x140311fc5
cmp eax, 8
jne 0x14031138b
popf
pop rax
jmp 0x14031189d
cmp eax, 0x1d
jne 0x14031139a
popf
pop rax
jmp 0x14031218a
cmp eax, 0x17
jne 0x1403113a9
popf
pop rax
jmp 0x140311f0e
cmp eax, 0x1c
jne 0x1403113b8
popf
pop rax
jmp 0x140312126
cmp eax, 0x12
jne 0x1403113c7
popf
pop rax
jmp 0x140311ce7
cmp eax, 0x18
jne 0x1403113d6
popf
pop rax
jmp 0x140311f61
cmp eax, 0x11
jne 0x1403113e5
popf
pop rax
jmp 0x140311c7d
cmp eax, 0x1b
jne 0x1403113f4
popf
pop rax
jmp 0x1403120d3
cmp eax, 0x16
jne 0x140311403
popf
pop rax
jmp 0x140311ec3
cmp eax, 0xa
jne 0x140311412
popf
pop rax
jmp 0x14031197a
cmp eax, 0x14
jne 0x140311421
popf
pop rax
jmp 0x140311ddd
cmp eax, 0xf
jne 0x140311430
popf
pop rax
jmp 0x140311b83
cmp eax, 0x13
jne 0x14031143f
popf
pop rax
jmp 0x140311d45
cmp eax, 0x15
jne 0x14031144e
popf
pop rax
jmp 0x140311e2e
cmp eax, 2
jne 0x14031145d
popf
pop rax
jmp 0x1403115b4
cmp eax, 0x1e
jne 0x14031146c
popf
pop rax
jmp 0x1403121fa
cmp eax, 0xc
jne 0x14031147b
popf
pop rax
jmp 0x1403119f5
cmp eax, 7
jne 0x14031148a
popf
pop rax
jmp 0x14031185f
cmp eax, 5
jne 0x140311499
popf
pop rax
jmp 0x1403116ae
cmp eax, 0x1f
jne 0x1403114a8
popf
pop rax
jmp 0x14031227a
cmp eax, 0x10
jne 0x1403114b7
popf
pop rax
jmp 0x140311be7
cmp eax, 6
jne 0x1403114c6
popf
pop rax
jmp 0x1403117d2
cmp eax, 9
jne 0x1403114d5
popf
pop rax
jmp 0x14031190c
cmp eax, 4
jne 0x1403114e4
popf
pop rax
jmp 0x1403116a3
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xf8
mov rax, qword [rsp + 0x110]
mov eax, dword [rax]
and eax, 4
test eax, eax
je 0x140311549
push rax
pushf
mov eax, 0x86ffbda5
pushf
not eax
add eax, 0xb1941d55
xor eax, 0xcca1c4af
rol eax, 0x25
popf
pushf
not eax
add eax, 0xcfdcdec9
xor eax, 0xf66733be
rol eax, 0x61
popf
pushf
not eax
add eax, 0xc8266aa8
xor eax, 0xc9899082
rol eax, 0x92
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0x540b4e24
pushf
not eax
add eax, 0x98123db9
xor eax, 0xe97863ca
rol eax, 0xa6
popf
pushf
not eax
add eax, 0xf09d9179
xor eax, 0x90fa71cd
rol eax, 0x76
popf
jmp 0x1403112f5
jmp 0x140312535
mov rax, qword [rsp + 0x110]
add rax, 0x58
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0x110]
movsxd rax, dword [rax + 0x488]
imul rax, rax, 0x20
mov rcx, qword [rsp + 0xe0]
add rax, qword [rcx + 8]
mov qword [rsp + 0x10], rax
mov dword [rsp + 8], 0
jmp 0x1403116a3
mov eax, dword [rsp + 8]
jmp 0x140311657
inc eax
mov dword [rsp + 8], eax
push rax
pushf
mov eax, 0x8627bc83
pushf
not eax
add eax, 0x9a2e8dcc
xor eax, 0x969bed8e
rol eax, 0xc0
popf
pushf
not eax
add eax, 0xaa012aad
xor eax, 0xd9393c59
rol eax, 0xce
popf
pushf
not eax
add eax, 0x834774aa
xor eax, 0xced7751b
rol eax, 0x1f
popf
jmp 0x1403112f5
cmp dword [rsp + 8], 0x40
jae 0x140312535
mov eax, dword [rsp + 8]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 8]
mov dword [rsp + 4], eax
mov rax, qword [rsp + 0x10]
movzx eax, word [rax]
sub eax, dword [rsp + 4]
xor edx, edx
mov ecx, 0x4b271ff3
pushf
not ecx
add ecx, 0xd1c21391
xor ecx, 0xc16b2883
rol ecx, 0x66
popf
pushf
not ecx
add ecx, 0x84568c8c
xor ecx, 0x87dfc4f2
rol ecx, 0xfe
popf
div ecx
mov dword [rsp], eax
mov rax, qword [rsp + 0x10]
movzx eax, word [rax]
mov ecx, dword [rsp + 4]
mov edx, dword [rsp]
push rcx
not ecx
sub edx, ecx
pop rcx
sub edx, 1
mov ecx, edx
sub eax, ecx
mov dword [rsp + 0x34], eax
mov rax, qword [rsp + 0x110]
cmp qword [rax + 0x20], 0
je 0x140311779
push rax
pushf
mov eax, 0x1c273a86
pushf
not eax
add eax, 0xa216f2cb
xor eax, 0x9952a34a
rol eax, 0xab
popf
pushf
not eax
add eax, 0xc885cd7a
xor eax, 0x972ab457
rol eax, 0xe9
popf
pushf
not eax
add eax, 0xd1b459b4
xor eax, 0xc1e2d324
rol eax, 0
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0x4b0e58a5
pushf
not eax
add eax, 0x8766b521
xor eax, 0xb5d20c94
rol eax, 9
popf
pushf
not eax
add eax, 0xa4e05a92
xor eax, 0xe07a9b05
rol eax, 0x8f
popf
pushf
not eax
add eax, 0xc93fc642
xor eax, 0x9359221f
rol eax, 5
popf
pushf
not eax
add eax, 0xceab8a95
xor eax, 0x83460ae3
rol eax, 0xfd
popf
jmp 0x1403112f5
mov rax, qword [rsp + 0x10]
movzx eax, word [rax + 4]
mov rcx, qword [rsp + 0x10]
movzx ecx, word [rcx + 6]
add ecx, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x110]
imul ecx, dword [rdx + 0x30]
push rcx
not ecx
sub eax, ecx
pop rcx
sub eax, 1
mov eax, eax
mov rcx, qword [rsp + 0x110]
mov rcx, qword [rcx + 0x20]
push rax
not rax
sub rcx, rax
pop rax
sub rcx, 1
mov rax, rcx
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x18], 0
jmp 0x14031189d
mov eax, dword [rsp + 0x18]
jmp 0x140311864
inc eax
mov dword [rsp + 0x18], eax
push rax
pushf
mov eax, 0x93c49f1b
pushf
not eax
add eax, 0xbc66ce09
xor eax, 0xb3e3b443
rol eax, 0x68
popf
pushf
not eax
add eax, 0xde9a0a2e
xor eax, 0x9cff5b9a
rol eax, 0
popf
jmp 0x1403112f5
mov eax, dword [rsp]
cmp dword [rsp + 0x18], eax
jae 0x1403118d9
push rax
pushf
mov eax, 0xe758d1f9
pushf
not eax
add eax, 0xeef1d123
xor eax, 0x823fd4c3
rol eax, 0x74
popf
pushf
not eax
add eax, 0x812594f8
xor eax, 0xc27d1e85
rol eax, 0x56
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0x52a3a490
pushf
not eax
add eax, 0xcf6f3ebd
xor eax, 0x99562fd3
rol eax, 0xd0
popf
pushf
not eax
add eax, 0x92e3327f
xor eax, 0xdce94ce1
rol eax, 0xb0
popf
jmp 0x1403112f5
mov eax, dword [rsp + 0x18]
mov rcx, qword [rsp + 0x90]
mov byte [rcx + rax], 0
jmp 0x14031185f
mov dword [rsp + 0x1c], 0
jmp 0x1403119f5
mov eax, dword [rsp + 0x1c]
jmp 0x1403119bc
inc eax
mov dword [rsp + 0x1c], eax
push rax
pushf
mov eax, 0x4d2d4ccd
pushf
not eax
add eax, 0x98730093
xor eax, 0xbe596e2b
rol eax, 0xda
popf
pushf
not eax
add eax, 0x8b00a3ec
xor eax, 0xcf4c3074
rol eax, 0xed
popf
jmp 0x1403112f5
mov eax, dword [rsp + 4]
cmp dword [rsp + 0x1c], eax
jae 0x140311a58
push rax
pushf
mov eax, 0x3d069058
pushf
not eax
add eax, 0xacef7181
xor eax, 0xbf960031
rol eax, 0x94
popf
pushf
not eax
add eax, 0x8650c343
xor eax, 0xf8d3b892
rol eax, 0x1f
popf
pushf
not eax
add eax, 0xa89152b0
xor eax, 0x984fd8e8
rol eax, 0x81
popf
pushf
not eax
add eax, 0x92bc24e0
xor eax, 0x9e521496
rol eax, 0x70
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0xdf2622c1
pushf
not eax
add eax, 0xac6b0b3f
xor eax, 0xb694dac1
rol eax, 3
popf
pushf
not eax
add eax, 0xe27d5398
xor eax, 0xe99b6d90
rol eax, 0x17
popf
pushf
not eax
add eax, 0xc5d3173b
xor eax, 0xb35de712
rol eax, 0x1b
popf
jmp 0x1403112f5
mov eax, dword [rsp]
mov rcx, qword [rsp + 0x90]
push rax
not rax
sub rcx, rax
pop rax
sub rcx, 1
mov rax, rcx
mov ecx, dword [rsp + 0x1c]
mov byte [rax + rcx], 0xff
jmp 0x1403119b7
mov dword [rsp + 0x20], 0
jmp 0x140311be7
mov eax, dword [rsp + 0x20]
jmp 0x140311b88
inc eax
mov dword [rsp + 0x20], eax
push rax
pushf
mov eax, 0x90e7a57c
pushf
not eax
add eax, 0x9de736ed
xor eax, 0xd6ec6eb7
rol eax, 0x3f
popf
pushf
not eax
add eax, 0xe121aee5
xor eax, 0xa59c28ec
rol eax, 0x8a
popf
pushf
not eax
add eax, 0x91affc62
xor eax, 0x9e9f9e72
rol eax, 0x98
popf
pushf
not eax
add eax, 0xf6aba615
xor eax, 0x8caed63b
rol eax, 0x56
popf
jmp 0x1403112f5
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x20], eax
jae 0x140311c37
push rax
pushf
mov eax, 0xd4b2dff8
pushf
not eax
add eax, 0x983af41a
xor eax, 0x96430740
rol eax, 0xa0
popf
pushf
not eax
add eax, 0xe5b890e4
xor eax, 0xdc7e4ed0
rol eax, 0xf2
popf
pushf
not eax
add eax, 0xbcdebb40
xor eax, 0xab956cf3
rol eax, 0xe6
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0x848c4252
pushf
not eax
add eax, 0xabbba683
xor eax, 0x819ce1a3
rol eax, 0x14
popf
pushf
not eax
add eax, 0x976eaef2
xor eax, 0xbeaa79bf
rol eax, 0xcb
popf
pushf
not eax
add eax, 0x97035bed
xor eax, 0xa53326c8
rol eax, 0xdc
popf
jmp 0x1403112f5
mov eax, dword [rsp]
mov rcx, qword [rsp + 0x90]
push rax
not rax
sub rcx, rax
pop rax
sub rcx, 1
mov rax, rcx
mov ecx, dword [rsp + 4]
push rcx
not rcx
sub rax, rcx
pop rcx
sub rax, 1
mov ecx, dword [rsp + 0x20]
mov byte [rax + rcx], 0
jmp 0x140311b83
jmp 0x14031227a
mov rax, qword [rsp + 0x10]
movzx eax, word [rax + 4]
mov rcx, qword [rsp + 0x10]
movzx ecx, word [rcx + 6]
add ecx, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x110]
imul ecx, dword [rdx + 0x30]
push rcx
not ecx
sub eax, ecx
pop rcx
sub eax, 1
mov eax, eax
mov rcx, qword [rsp + 0x110]
mov rcx, qword [rcx + 0x28]
lea rax, [rcx + rax*4]
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x24], 0
jmp 0x140311e2e
mov eax, dword [rsp + 0x24]
jmp 0x140311de2
inc eax
mov dword [rsp + 0x24], eax
push rax
pushf
mov eax, 0xae5a7af2
pushf
not eax
add eax, 0xeb633c0f
xor eax, 0xaa2764ca
rol eax, 0xc2
popf
pushf
not eax
add eax, 0xc1b7d5e2
xor eax, 0xf5af734b
rol eax, 0x81
popf
pushf
not eax
add eax, 0xd012cf46
xor eax, 0xfd6633ad
rol eax, 4
popf
jmp 0x1403112f5
mov eax, dword [rsp]
cmp dword [rsp + 0x24], eax
jae 0x140311e6a
push rax
pushf
mov eax, 0x3f176547
pushf
not eax
add eax, 0xe16f15cc
xor eax, 0xa696e80f
rol eax, 0x33
popf
pushf
not eax
add eax, 0x9cfd4ecc
xor eax, 0xd8a448c1
rol eax, 0xb4
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0x13bd19fe
pushf
not eax
add eax, 0xe570ee33
xor eax, 0x85aa5e79
rol eax, 0xe
popf
pushf
not eax
add eax, 0xc08fb980
xor eax, 0x98e264ae
rol eax, 0xb3
popf
pushf
not eax
add eax, 0xfa8e534f
xor eax, 0x844d709b
rol eax, 0x9e
popf
pushf
not eax
add eax, 0xfe3baada
xor eax, 0xa05451e8
rol eax, 0xba
popf
jmp 0x1403112f5
mov eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x98]
mov dword [rcx + rax*4], 0xffffff
jmp 0x140311ddd
mov dword [rsp + 0x28], 0
jmp 0x140311fc5
mov eax, dword [rsp + 0x28]
jmp 0x140311f66
inc eax
mov dword [rsp + 0x28], eax
push rax
pushf
mov eax, 0x8652ef60
pushf
not eax
add eax, 0x98725308
xor eax, 0xe75d3d32
rol eax, 6
popf
pushf
not eax
add eax, 0xf3152dc5
xor eax, 0xa3cc9b4c
rol eax, 0x40
popf
pushf
not eax
add eax, 0xf86f7e62
xor eax, 0x88123d4e
rol eax, 0x3a
popf
pushf
not eax
add eax, 0xe4fc603c
xor eax, 0x8291aee3
rol eax, 0x4c
popf
jmp 0x1403112f5
mov eax, dword [rsp + 4]
cmp dword [rsp + 0x28], eax
jae 0x140312015
push rax
pushf
mov eax, 0x560d58a2
pushf
not eax
add eax, 0x920dc5ca
xor eax, 0xa49b7ec0
rol eax, 0x61
popf
pushf
not eax
add eax, 0xc83cef77
xor eax, 0xa654ee06
rol eax, 0x65
popf
pushf
not eax
add eax, 0xb526d83e
xor eax, 0x8ad5a417
rol eax, 0xef
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0x6d26e4cf
pushf
not eax
add eax, 0xb36dc2aa
xor eax, 0x885da0fe
rol eax, 0x19
popf
pushf
not eax
add eax, 0x9557d9eb
xor eax, 0xd1d1225f
rol eax, 0xa1
popf
pushf
not eax
add eax, 0xcc1dd52c
xor eax, 0x8d72c01a
rol eax, 0xc0
popf
pushf
not eax
add eax, 0xc02fe58d
xor eax, 0xa695d1b6
rol eax, 0x8b
popf
jmp 0x1403112f5
mov eax, dword [rsp]
mov rcx, qword [rsp + 0x98]
lea rax, [rcx + rax*4]
mov ecx, dword [rsp + 0x28]
mov dword [rax + rcx*4], 0xffffffff
jmp 0x140311f61
mov dword [rsp + 0x2c], 0
jmp 0x14031218a
mov eax, dword [rsp + 0x2c]
jmp 0x14031212b
inc eax
mov dword [rsp + 0x2c], eax
push rax
pushf
mov eax, 0x9e3478d4
pushf
not eax
add eax, 0xdd76c420
xor eax, 0xce4d1a7e
rol eax, 0x22
popf
pushf
not eax
add eax, 0xa8c7d977
xor eax, 0xb423a6f2
rol eax, 0xcf
popf
pushf
not eax
add eax, 0x89f9f5ca
xor eax, 0xc4b33159
rol eax, 0xf7
popf
pushf
not eax
add eax, 0xb49eabc7
xor eax, 0xa4847388
rol eax, 0xe7
popf
jmp 0x1403112f5
mov eax, dword [rsp + 0x34]
cmp dword [rsp + 0x2c], eax
jae 0x1403121c7
push rax
pushf
mov eax, 0x4308f40f
pushf
not eax
add eax, 0x982ae530
xor eax, 0xeee410ed
rol eax, 0x21
popf
pushf
not eax
add eax, 0xfe778d3d
xor eax, 0x816bc9a1
rol eax, 0x6a
popf
jmp 0x1403112f5
push rax
pushf
mov eax, 0xc551ae58
pushf
not eax
add eax, 0x88f0a189
xor eax, 0x81c526f5
rol eax, 0x8f
popf
pushf
not eax
add eax, 0xaf6a5f2c
xor eax, 0xcb07bdfe
rol eax, 0xa9
popf
jmp 0x1403112f5
mov eax, dword [rsp]
mov rcx, qword [rsp + 0x98]
lea rax, [rcx + rax*4]
mov ecx, dword [rsp + 4]
lea rax, [rax + rcx*4]
mov ecx, dword [rsp + 0x2c]
mov dword [rax + rcx*4], 0xffffff
jmp 0x140312126
mov rax, qword [rsp + 0x10]
movzx eax, word [rax + 6]
add eax, dword [rsp + 0x30]
mov eax, eax
cvtsi2ss xmm0, rax
movss dword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0x10]
movzx eax, word [rax + 4]
mov ecx, dword [rsp]
lea eax, [rax + rcx - 1]
mov eax, eax
cvtsi2ss xmm0, rax
movss dword [rsp + 0x88], xmm0
movss xmm0, dword [rsp + 0x88]
movss dword [rsp + 0xa0], xmm0
movss xmm0, dword [rsp + 0x40]
movss dword [rsp + 0xa4], xmm0
mov rax, qword [rsp + 0x110]
add rax, 0x38
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0xc0]
movss xmm0, dword [rsp + 0xa4]
mulss xmm0, dword [rax + 4]
movss dword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0xc0]
movss xmm0, dword [rsp + 0xa0]
mulss xmm0, dword [rax]
movss dword [rsp + 0x48], xmm0
movss xmm0, dword [rsp + 0x48]
movss dword [rsp + 0xb8], xmm0
movss xmm0, dword [rsp + 0x50]
movss dword [rsp + 0xbc], xmm0
mov rax, qword [rsp + 0x10]
movzx eax, word [rax + 6]
mov ecx, dword [rsp + 0x30]
lea eax, [rax + rcx + 1]
mov eax, eax
cvtsi2ss xmm0, rax
movss dword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x10]
movzx eax, word [rax + 4]
add eax, dword [rsp]
mov ecx, dword [rsp + 4]
lea eax, [rax + rcx + 1]
mov eax, eax
cvtsi2ss xmm0, rax
movss dword [rsp + 0x58], xmm0
movss xmm0, dword [rsp + 0x58]
movss dword [rsp + 0xa8], xmm0
movss xmm0, dword [rsp + 0x60]
movss dword [rsp + 0xac], xmm0
mov rax, qword [rsp + 0x110]
add rax, 0x38
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xc8]
movss xmm0, dword [rsp + 0xac]
mulss xmm0, dword [rax + 4]
movss dword [rsp + 0x70], xmm0
mov rax, qword [rsp + 0xc8]
movss xmm0, dword [rsp + 0xa8]
mulss xmm0, dword [rax]
movss dword [rsp + 0x68], xmm0
movss xmm0, dword [rsp + 0x68]
movss dword [rsp + 0xb0], xmm0
movss xmm0, dword [rsp + 0x70]
movss dword [rsp + 0xb4], xmm0
movss xmm0, dword [rsp + 0xbc]
addss xmm0, dword [rsp + 0xb4]
mulss xmm0, dword [0x140118940]
movss dword [rsp + 0x38], xmm0
movss xmm0, dword [rsp + 0xb0]
movss dword [rsp + 0x80], xmm0
movss xmm0, dword [rsp + 0xb8]
movss dword [rsp + 0x78], xmm0
movss xmm0, dword [rsp + 0x78]
movss dword [rsp + 0xd0], xmm0
movss xmm0, dword [rsp + 0x38]
movss dword [rsp + 0xd4], xmm0
movss xmm0, dword [rsp + 0x80]
movss dword [rsp + 0xd8], xmm0
movss xmm0, dword [rsp + 0x38]
movss dword [rsp + 0xdc], xmm0
mov eax, dword [rsp + 8]
imul rax, rax, 0x10
mov rcx, qword [rsp + 0x110]
lea rdx, [rsp + 0xd0]
lea rdi, [rcx + rax + 0x78]
mov rsi, rdx
mov ecx, 0x6b5fbff7
pushf
not ecx
add ecx, 0xc793712b
xor ecx, 0xe93dfed1
rol ecx, 0x24
popf
pushf
not ecx
add ecx, 0x888dbcd7
xor ecx, 0x9c93ee10
rol ecx, 0xbf
popf
pushf
not ecx
add ecx, 0xd465f666
xor ecx, 0xfac84e08
rol ecx, 0x6a
popf
rep movsb byte [rdi], byte [rsi]
jmp 0x140311652
add rsp, 0xf8
pop rdi
pop rsi
ret