Function at 0x140001660
Capabilities:
Execute command

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xf0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x27], rax
lea rdx, str._________________________________________________________________________________n
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003920
mov rcx, rax
lea rdx, str.________________::____________________________________________::_________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._______________:5:::____________________________________:::5:________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._____________.B_BGP_.7:________________________________:7._PGB_B.______________n
call fcn.140003920
mov rcx, rax
lea rdx, str.____________.5_B_:B_B57:_____:____________:_____:75B_B:__5______________n
call fcn.140003920
mov rcx, rax
lea rdx, str.__________5___BGPB______G_.:7Y__________57:._G______GPGB___5___________n
call fcn.140003920
mov rcx, rax
lea rdx, str.________.P__B__B5___BGB____B.7__.__.___.____BGB___5B__B__P._________n
call fcn.140003920
mov rcx, rax
lea rdx, str.________75___5_____GGB__5.:GBBG:_5__BGG_____5___57_________n
call fcn.140003920
mov rcx, rax
lea rdx, str._______7_____________BY_JB________BJ_YB_____________7________n
call fcn.140003920
mov rcx, rax
lea rdx, str.____:7B_____BGBB_________GB____________________GG_________BBGB_____B7:_____n
call fcn.140003920
mov rcx, rax
lea rdx, str.___75___P_:__G________YB_5G________G5_BY________G__:_P___57____n
call fcn.140003920
mov rcx, rax
lea rdx, str.____:G_J:_7:7__P___JJG__7__BB__7__GJJ___P_77:7_:J_G:_____n
call fcn.140003920
mov rcx, rax
lea rdx, str.______._JP_BB_Y.JBPY7.:B__GBBBBG__B:.7YPBJ.Y_BB_PJ_._______n
call fcn.140003920
mov rcx, rax
lea rdx, str.___________PGGY__________J7___BB___7J__________YGGP___________n
call fcn.140003920
mov rcx, rax
lea rdx, str.___________________:5______P_G____G7..7G____G_P______5:____________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._________________5_______P_YGPB_Y7G77P7Y_BPPY_P_______5__________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._________________5_________J_YP7___JJJJ___7PY_J__________5__________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._________________.P_________5_BBPJPPJPBB_5_________P.__________________n
call fcn.140003920
mov rcx, rax
lea rdx, str.____________________P______B_.J_BGBBGB__._B______P_____________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._____________________:_J5PB____P._5BB5_.P____BP5J_.______________________n
call fcn.140003920
mov rcx, rax
lea rdx, str.___________________________Y_____BJ::::JB_____Y____________________________n
call fcn.140003920
mov rcx, rax
lea rdx, str.____________________________G______GPYYPG______G_____________________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._______________________________P______________5_______________________________n
call fcn.140003920
mov rcx, rax
lea rdx, str.________________________________._YB______BY_._________________________________n
call fcn.140003920
mov rcx, rax
lea rdx, str.____________________________________:7__7:_____________________________________n
call fcn.140003920
mov rcx, rax
lea rdx, str._________________________________________________________________________________n
call fcn.140003920
mov rcx, rax
lea rdx, [0x140003af0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xorps xmm0, xmm0
movups xmmword [rbp - 0x59], xmm0
xor r15d, r15d
mov qword [rbp - 0x49], r15
mov edi, 0xf
mov qword [rbp - 0x41], rdi
mov byte [rbp - 0x59], r15b
movups xmmword [rbp - 0x39], xmm0
mov qword [rbp - 0x29], r15
mov qword [rbp - 0x21], rdi
mov byte [rbp - 0x39], r15b
lea rdx, str.Do_you_want_to_encrypt_or_decrypt___c_d_:
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003920
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x39]
mov rcx, rbx
call fcn.140003dd0
lea rcx, [rbp - 0x39]
mov rsi, qword [rbp - 0x39]
mov r14, qword [rbp - 0x21]
cmp r14, rdi
cmova rcx, rsi
mov rbx, qword [rbp - 0x29]
cmp rbx, 1
jne 0x140002253
mov r8, rbx
lea rdx, [0x140006e84]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140002253
lea rdx, str.Enter_the_text_to_encrypt:__n
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003920
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x59]
mov rcx, rbx
call fcn.140003dd0
xorps xmm0, xmm0
movups xmmword [rbp - 0x79], xmm0
mov ebx, r15d
mov qword [rbp - 0x69], rbx
mov qword [rbp - 0x61], rdi
mov byte [rbp - 0x79], bl
mov eax, dword [rbp - 0x49]
sub eax, 1
movsxd r12, eax
lea rsi, [0x140000000]
mov r13, qword [rbp - 0x59]
js 0x140001cbc
nop word [rax + rax]
lea rax, [rbp - 0x59]
cmp qword [rbp - 0x41], 0xf
cmova rax, r13
movsx r14d, byte [r12 + rax]
lea eax, [r14 - 0x20]
cmp eax, 0x5e
ja case.0x140001973.49
cdqe
movzx eax, byte [rsi + rax + 0x2d34]
mov ecx, dword [rsi + rax*4 + 0x2cec]
add rcx, rsi
jmp rcx
cmp rbx, rdi
jae 0x140001997
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x5e
jmp 0x1400019a3
mov r9b, 0x5e
lea rcx, [rbp - 0x79]
call fcn.140003b30
sub r12, 1
js 0x140001cb9
mov rdi, qword [rbp - 0x61]
mov rbx, qword [rbp - 0x69]
jmp 0x140001940
cmp rbx, rdi
jae 0x1400019d9
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x20
jmp 0x1400019a3
mov r9b, 0x20
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001a00
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x25
jmp 0x1400019a3
mov r9b, 0x25
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001a2a
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2e
jmp 0x1400019a3
mov r9b, 0x2e
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001a57
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2a
jmp 0x1400019a3
mov r9b, 0x2a
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001a84
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2c
jmp 0x1400019a3
mov r9b, 0x2c
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001ab1
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x7e
jmp 0x1400019a3
mov r9b, 0x7e
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001ade
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x3d
jmp 0x1400019a3
mov r9b, 0x3d
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001b0b
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x60
jmp 0x1400019a3
mov r9b, 0x60
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001b38
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2b
jmp 0x1400019a3
mov r9b, 0x2b
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001b65
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2f
jmp 0x1400019a3
mov r9b, 0x2f
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001b92
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2d
jmp 0x1400019a3
mov r9b, 0x2d
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001bbf
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x23
jmp 0x1400019a3
mov r9b, 0x23
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001bec
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x3a
jmp 0x1400019a3
mov r9b, 0x3a
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001c19
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x26
jmp 0x1400019a3
mov r9b, 0x26
jmp 0x14000199a
cmp rbx, rdi
jae 0x140001c46
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x3b
jmp 0x1400019a3
mov r9b, 0x3b
jmp 0x14000199a
mov r9d, 0x69
sub r9b, r14b
jmp 0x140001c8d
mov ecx, r14d
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_islower]
test eax, eax
je 0x140001c71
mov r9d, 0xffffffdb
sub r9b, r14b
jmp 0x140001c8d
mov ecx, r14d
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isupper]
test eax, eax
je 0x140001c89
mov r9d, 0xffffff9b
sub r9b, r14b
jmp 0x140001c8d
movzx r9d, r14b
cmp rbx, rdi
jae 0x14000199a
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov byte [rax + rbx + 1], 0
mov byte [rax + rbx], r9b
jmp 0x1400019a3
xor r15d, r15d
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x19]
call fcn.1400011f0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov rdx, r15
mov qword [rsp + 0x30], rdx
mov r8d, 0xf
mov qword [rsp + 0x38], r8
mov byte [rsp + 0x20], 0
mov eax, dword [rbp - 9]
sub eax, 1
movsxd r14, eax
js 0x14000211c
nop dword [rax]
lea rax, [rbp - 0x19]
cmp qword [rbp - 1], 0xf
cmova rax, qword [rbp - 0x19]
movsx ebx, byte [r14 + rax]
lea eax, [rbx - 0x20]
cmp eax, 0x5e
ja case.0x140001d33.50
cdqe
movzx eax, byte [rsi + rax + 0x2de0]
mov ecx, dword [rsi + rax*4 + 0x2d94]
add rcx, rsi
jmp rcx
cmp rdx, r8
jae 0x140001d5a
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x5e
jmp 0x140001d67
mov r9b, 0x5e
lea rcx, [rsp + 0x20]
call fcn.140003b30
sub r14, 1
js 0x14000211c
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
jmp 0x140001d00
cmp rdx, r8
jae 0x140001da2
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x20
jmp 0x140001d67
mov r9b, 0x20
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001dcc
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x25
jmp 0x140001d67
mov r9b, 0x25
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001df9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2e
jmp 0x140001d67
mov r9b, 0x2e
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001e29
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2a
jmp 0x140001d67
mov r9b, 0x2a
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001e59
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2c
jmp 0x140001d67
mov r9b, 0x2c
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001e89
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x7e
jmp 0x140001d67
mov r9b, 0x7e
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001eb9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x3d
jmp 0x140001d67
mov r9b, 0x3d
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001ee9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x60
jmp 0x140001d67
mov r9b, 0x60
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001f19
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2b
jmp 0x140001d67
mov r9b, 0x2b
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001f49
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2f
jmp 0x140001d67
mov r9b, 0x2f
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001f79
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2d
jmp 0x140001d67
mov r9b, 0x2d
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001fa9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x23
jmp 0x140001d67
mov r9b, 0x23
jmp 0x140001d5d
cmp rdx, r8
jae 0x140001fd9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x3a
jmp 0x140001d67
mov r9b, 0x3a
jmp 0x140001d5d
cmp rdx, r8
jae 0x140002009
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x26
jmp 0x140001d67
mov r9b, 0x26
jmp 0x140001d5d
cmp rdx, r8
jae 0x140002039
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x3b
jmp 0x140001d67
mov r9b, 0x3b
jmp 0x140001d5d
mov r9d, 0x69
sub r9b, bl
cmp rdx, r8
jae 0x140001d5d
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov byte [rax + rdx], r9b
mov byte [rax + rdx + 1], 0
jmp 0x140001d67
mov r9d, 0x69
sub r9b, bl
cmp rdx, r8
jae 0x140001d5d
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x140001d67
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_islower]
test eax, eax
je 0x1400020c8
mov r9d, 0xffffffdb
sub r9b, bl
jmp 0x1400020e3
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isupper]
test eax, eax
je 0x1400020df
mov r9d, 0xffffff9b
sub r9b, bl
jmp 0x1400020e3
movzx r9d, bl
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
cmp rcx, rdx
jae 0x140001d5d
lea rax, [rcx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x20]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140001d67
lea rdx, str._n_Encrypted_text:__
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003920
lea rdx, [rsp + 0x20]
cmp qword [rsp + 0x38], 0xf
cmova rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
mov rcx, rax
call fcn.140003f70
lea rdx, [0x140006ea8]
mov rcx, rax
call fcn.140003920
mov rcx, rax
lea rdx, [0x140003af0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x1400021ad
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400021a8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400021a8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000420c
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
mov rdx, qword [rbp - 1]
cmp rdx, 0xf
jbe 0x1400021fe
inc rdx
mov rcx, qword [rbp - 0x19]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400021f9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400021f9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000420c
mov qword [rbp - 9], r15
mov qword [rbp - 1], 0xf
mov byte [rbp - 0x19], 0
mov rdx, qword [rbp - 0x61]
cmp rdx, 0xf
jbe 0x140002bfc
inc rdx
mov rcx, qword [rbp - 0x79]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002bf7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002bf7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
lea rcx, [rbp - 0x39]
cmp r14, 0xf
cmova rcx, rsi
cmp rbx, 1
jne 0x140002c17
mov r8, rbx
lea rdx, [0x140006ec8]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140002c17
lea rdx, str.Enter_the_text_to_decrypt:__n
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003920
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
mov rax, qword [rbx]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call qword [sym.imp.MSVCP140.dll_public:_char___cdecl_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const___ptr64]
movzx r8d, al
lea rdx, [rbp - 0x59]
mov rcx, rbx
call fcn.140003dd0
xorps xmm0, xmm0
movups xmmword [rbp - 0x79], xmm0
mov rbx, r15
mov qword [rbp - 0x69], rbx
mov edi, 0xf
mov qword [rbp - 0x61], rdi
mov byte [rbp - 0x79], bl
mov eax, dword [rbp - 0x49]
sub eax, 1
movsxd r12, eax
lea rsi, [0x140000000]
mov r13, qword [rbp - 0x59]
js 0x14000266c
lea rax, [rbp - 0x59]
cmp qword [rbp - 0x41], 0xf
cmova rax, r13
movsx r14d, byte [rax + r12]
lea eax, [r14 - 0x20]
cmp eax, 0x5e
ja case.0x140002323.49
cdqe
movzx eax, byte [rsi + rax + 0x2e88]
mov ecx, dword [rsi + rax*4 + 0x2e40]
add rcx, rsi
jmp rcx
cmp rbx, rdi
jae 0x140002347
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x5e
jmp 0x140002353
mov r9b, 0x5e
lea rcx, [rbp - 0x79]
call fcn.140003b30
sub r12, 1
js 0x140002669
mov rdi, qword [rbp - 0x61]
mov rbx, qword [rbp - 0x69]
jmp 0x1400022f0
cmp rbx, rdi
jae 0x140002389
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x20
jmp 0x140002353
mov r9b, 0x20
jmp 0x14000234a
cmp rbx, rdi
jae 0x1400023b0
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x25
jmp 0x140002353
mov r9b, 0x25
jmp 0x14000234a
cmp rbx, rdi
jae 0x1400023da
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2e
jmp 0x140002353
mov r9b, 0x2e
jmp 0x14000234a
cmp rbx, rdi
jae 0x140002407
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2a
jmp 0x140002353
mov r9b, 0x2a
jmp 0x14000234a
cmp rbx, rdi
jae 0x140002434
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2c
jmp 0x140002353
mov r9b, 0x2c
jmp 0x14000234a
cmp rbx, rdi
jae 0x140002461
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x7e
jmp 0x140002353
mov r9b, 0x7e
jmp 0x14000234a
cmp rbx, rdi
jae 0x14000248e
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x3d
jmp 0x140002353
mov r9b, 0x3d
jmp 0x14000234a
cmp rbx, rdi
jae 0x1400024bb
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x60
jmp 0x140002353
mov r9b, 0x60
jmp 0x14000234a
cmp rbx, rdi
jae 0x1400024e8
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2b
jmp 0x140002353
mov r9b, 0x2b
jmp 0x14000234a
cmp rbx, rdi
jae 0x140002515
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rbx + rax], 0x2f
jmp 0x140002353
mov r9b, 0x2f
jmp 0x14000234a
cmp rbx, rdi
jae 0x140002542
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x2d
jmp 0x140002353
mov r9b, 0x2d
jmp 0x14000234a
cmp rbx, rdi
jae 0x14000256f
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x23
jmp 0x140002353
mov r9b, 0x23
jmp 0x14000234a
cmp rbx, rdi
jae 0x14000259c
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x3a
jmp 0x140002353
mov r9b, 0x3a
jmp 0x14000234a
cmp rbx, rdi
jae 0x1400025c9
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x26
jmp 0x140002353
mov r9b, 0x26
jmp 0x14000234a
cmp rbx, rdi
jae 0x1400025f6
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov word [rax + rbx], 0x3b
jmp 0x140002353
mov r9b, 0x3b
jmp 0x14000234a
mov r9d, 0x69
sub r9b, r14b
jmp 0x14000263d
mov ecx, r14d
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_islower]
test eax, eax
je 0x140002621
mov r9d, 0xffffffdb
sub r9b, r14b
jmp 0x14000263d
mov ecx, r14d
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isupper]
test eax, eax
je 0x140002639
mov r9d, 0xffffff9b
sub r9b, r14b
jmp 0x14000263d
movzx r9d, r14b
cmp rbx, rdi
jae 0x14000234a
lea rax, [rbx + 1]
mov qword [rbp - 0x69], rax
lea rax, [rbp - 0x79]
cmp rdi, 0xf
cmova rax, qword [rbp - 0x79]
mov byte [rax + rbx + 1], 0
mov byte [rax + rbx], r9b
jmp 0x140002353
xor r15d, r15d
lea rdx, [rbp - 0x79]
lea rcx, [rbp + 7]
call fcn.1400014e0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov rdx, r15
mov qword [rsp + 0x30], rdx
mov r8d, 0xf
mov qword [rsp + 0x38], r8
mov byte [rsp + 0x20], 0
mov eax, dword [rbp + 0x17]
sub eax, 1
movsxd r14, eax
js 0x140002acc
nop dword [rax]
lea rax, [rbp + 7]
cmp qword [rbp + 0x1f], 0xf
cmova rax, qword [rbp + 7]
movsx ebx, byte [r14 + rax]
lea eax, [rbx - 0x20]
cmp eax, 0x5e
ja case.0x1400026e3.50
cdqe
movzx eax, byte [rsi + rax + 0x2f34]
mov ecx, dword [rsi + rax*4 + 0x2ee8]
add rcx, rsi
jmp rcx
cmp rdx, r8
jae 0x14000270a
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x5e
jmp 0x140002717
mov r9b, 0x5e
lea rcx, [rsp + 0x20]
call fcn.140003b30
sub r14, 1
js 0x140002acc
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
jmp 0x1400026b0
cmp rdx, r8
jae 0x140002752
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x20
jmp 0x140002717
mov r9b, 0x20
jmp 0x14000270d
cmp rdx, r8
jae 0x14000277c
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x25
jmp 0x140002717
mov r9b, 0x25
jmp 0x14000270d
cmp rdx, r8
jae 0x1400027a9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2e
jmp 0x140002717
mov r9b, 0x2e
jmp 0x14000270d
cmp rdx, r8
jae 0x1400027d9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2a
jmp 0x140002717
mov r9b, 0x2a
jmp 0x14000270d
cmp rdx, r8
jae 0x140002809
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2c
jmp 0x140002717
mov r9b, 0x2c
jmp 0x14000270d
cmp rdx, r8
jae 0x140002839
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x7e
jmp 0x140002717
mov r9b, 0x7e
jmp 0x14000270d
cmp rdx, r8
jae 0x140002869
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x3d
jmp 0x140002717
mov r9b, 0x3d
jmp 0x14000270d
cmp rdx, r8
jae 0x140002899
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x60
jmp 0x140002717
mov r9b, 0x60
jmp 0x14000270d
cmp rdx, r8
jae 0x1400028c9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2b
jmp 0x140002717
mov r9b, 0x2b
jmp 0x14000270d
cmp rdx, r8
jae 0x1400028f9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2f
jmp 0x140002717
mov r9b, 0x2f
jmp 0x14000270d
cmp rdx, r8
jae 0x140002929
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x2d
jmp 0x140002717
mov r9b, 0x2d
jmp 0x14000270d
cmp rdx, r8
jae 0x140002959
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x23
jmp 0x140002717
mov r9b, 0x23
jmp 0x14000270d
cmp rdx, r8
jae 0x140002989
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x3a
jmp 0x140002717
mov r9b, 0x3a
jmp 0x14000270d
cmp rdx, r8
jae 0x1400029b9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x26
jmp 0x140002717
mov r9b, 0x26
jmp 0x14000270d
cmp rdx, r8
jae 0x1400029e9
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov word [rax + rdx], 0x3b
jmp 0x140002717
mov r9b, 0x3b
jmp 0x14000270d
mov r9d, 0x69
sub r9b, bl
cmp rdx, r8
jae 0x14000270d
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov byte [rax + rdx], r9b
mov byte [rax + rdx + 1], 0
jmp 0x140002717
mov r9d, 0x69
sub r9b, bl
cmp rdx, r8
jae 0x14000270d
lea rax, [rdx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp r8, 0xf
cmova rax, qword [rsp + 0x20]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x140002717
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_islower]
test eax, eax
je 0x140002a78
mov r9d, 0xffffffdb
sub r9b, bl
jmp 0x140002a93
mov ecx, ebx
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isupper]
test eax, eax
je 0x140002a8f
mov r9d, 0xffffff9b
sub r9b, bl
jmp 0x140002a93
movzx r9d, bl
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
cmp rcx, rdx
jae 0x14000270d
lea rax, [rcx + 1]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x20]
cmp rdx, 0xf
cmova rax, qword [rsp + 0x20]
mov byte [rax + rcx], r9b
mov byte [rax + rcx + 1], 0
jmp 0x140002717
lea rdx, str._n_Decrypted_text:__
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003920
lea rdx, [rsp + 0x20]
cmp qword [rsp + 0x38], 0xf
cmova rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
mov rcx, rax
call fcn.140003f70
lea rdx, [0x140006ea8]
mov rcx, rax
call fcn.140003920
mov rcx, rax
lea rdx, [0x140003af0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x140002b5d
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002b58
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002b58
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000420c
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], 0xf
mov byte [rsp + 0x20], 0
mov rdx, qword [rbp + 0x1f]
cmp rdx, 0xf
jbe 0x140002bae
inc rdx
mov rcx, qword [rbp + 7]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002ba9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002ba9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000420c
mov qword [rbp + 0x17], r15
mov qword [rbp + 0x1f], 0xf
mov byte [rbp + 7], 0
mov rdx, qword [rbp - 0x61]
cmp rdx, 0xf
jbe 0x140002bfc
inc rdx
mov rcx, qword [rbp - 0x79]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002bf7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002bf7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000420c
lea rcx, str.pause
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov rdi, qword [rbp - 0x41]
mov rsi, qword [rbp - 0x39]
mov r14, qword [rbp - 0x21]
jmp 0x140002c44
lea rdx, str.Invalid_choice._Please_enter_c_for_cryption_or_d_for_decryption.
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003920
mov rcx, rax
lea rdx, [0x140003af0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov r15d, 1
mov r13, qword [rbp - 0x59]
cmp r14, 0xf
jbe 0x140002c7f
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140002c76
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002c76
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.14000420c
nop
cmp rdi, 0xf
jbe 0x140002cb9
lea rdx, [rdi + 1]
mov rax, r13
cmp rdx, 0x1000
jb 0x140002cb1
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002cb1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r13
call fcn.14000420c
mov eax, r15d
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.1400041b0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret