Function at 0x1400ba480
Capabilities:
Encode data using xor

Disassembly:
push rbp
xor eax, eax
mov rbp, rsp
push r15
push r14
push r13
push r12
mov r12, rcx
mov ecx, 0x1a
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x130
mov qword [rbp + 0x20], r8
lea rdi, [rsp + 0x60]
rep stosq qword [rdi], rax
cmp rdx, 0x40
jg 0x1400bb0a4
mov rbx, r9
cmp r9, 0x40
jg 0x1400bb06a
movzx r8d, dx
mov word [rsp + 0x60], dx
lea rcx, [rsp + 0x62]
mov rdx, r12
call sub.msvcrt.dll_memcpy
movzx eax, bx
mov rdx, qword [rbp + 0x20]
lea rcx, [rsp + 0xa6]
mov r8, rax
lea r14, [0x14022f010]
mov qword [rsp + 0x58], rax
mov word [rsp + 0xa4], bx
call sub.msvcrt.dll_memcpy
mov rcx, r14
call fcn.140031050
mov r13d, eax
test eax, eax
jne 0x1400baf00
mov rcx, r12
call sub.msvcrt.dll_strlen
mov rsi, qword [0x1403ee208]
mov r8, rax
mov edi, eax
test rsi, rsi
je 0x1400ba94d
mov r10, r12
cmp eax, 0xb
jbe 0x1400baf2e
mov ecx, 0x9e3779b9
mov r11d, eax
mov eax, 0xfeedbeef
mov r15d, 0x9e3779b9
mov r9d, ecx
mov ecx, eax
nop dword [rax]
movzx eax, byte [r10 + 5]
movzx edx, byte [r10 + 6]
shl eax, 8
shl edx, 0x10
add eax, edx
movzx edx, byte [r10 + 4]
add eax, edx
movzx edx, byte [r10 + 7]
shl edx, 0x18
add eax, edx
movzx edx, byte [r10 + 0xa]
add r15d, eax
movzx eax, byte [r10 + 9]
shl edx, 0x10
shl eax, 8
add eax, edx
movzx edx, byte [r10 + 8]
add eax, edx
movzx edx, byte [r10 + 0xb]
shl edx, 0x18
add edx, eax
lea eax, [rdx + rcx]
movzx ecx, byte [r10 + 1]
movzx edx, byte [r10 + 2]
shl ecx, 8
shl edx, 0x10
add ecx, edx
movzx edx, byte [r10]
add ecx, edx
movzx edx, byte [r10 + 3]
shl edx, 0x18
add ecx, edx
mov edx, eax
sub ecx, r15d
shr edx, 0xd
sub r15d, eax
sub ecx, eax
lea ecx, [rcx + r9]
xor edx, ecx
mov ecx, r15d
mov r15d, edx
sub ecx, edx
sub eax, edx
shl r15d, 8
xor r15d, ecx
sub eax, r15d
sub edx, r15d
mov ecx, eax
mov eax, r15d
shr eax, 0xd
xor eax, ecx
mov ecx, edx
mov edx, eax
sub ecx, eax
sub r15d, eax
sub r11d, 0xc
shr edx, 0xc
add r10, 0xc
xor edx, ecx
mov ecx, r15d
mov r15d, edx
sub ecx, edx
sub eax, edx
shl r15d, 0x10
xor r15d, ecx
sub eax, r15d
sub edx, r15d
mov ecx, eax
mov eax, r15d
shr eax, 5
xor eax, ecx
mov r9d, eax
sub edx, eax
sub r15d, eax
shr r9d, 3
xor r9d, edx
mov edx, r9d
sub r15d, r9d
sub eax, r9d
shl edx, 0xa
xor r15d, edx
mov ecx, r15d
sub eax, r15d
shr ecx, 0xf
xor ecx, eax
cmp r11d, 0xb
ja 0x1400ba560
mov eax, ecx
mov ecx, r9d
add eax, r8d
cmp r11d, 0xb
ja case.0x1400ba688.0
lea rdx, [0x140281074]
movsxd r9, dword [rdx + r11*4]
add r9, rdx
jmp r9
movzx edx, byte [r10 + 0xa]
shl edx, 0x18
add eax, edx
movzx edx, byte [r10 + 9]
shl edx, 0x10
add eax, edx
movzx edx, byte [r10 + 8]
shl edx, 8
add eax, edx
movzx edx, byte [r10 + 7]
shl edx, 0x18
add r15d, edx
movzx edx, byte [r10 + 6]
shl edx, 0x10
add r15d, edx
movzx edx, byte [r10 + 5]
shl edx, 8
add r15d, edx
movzx edx, byte [r10 + 4]
add r15d, edx
movzx edx, byte [r10 + 3]
shl edx, 0x18
add ecx, edx
movzx edx, byte [r10 + 2]
shl edx, 0x10
add ecx, edx
movzx edx, byte [r10 + 1]
shl edx, 8
add ecx, edx
movzx edx, byte [r10]
add ecx, edx
lea edx, [rax + r15]
sub ecx, edx
mov edx, eax
shr edx, 0xd
xor ecx, edx
mov edx, r15d
sub edx, eax
mov r9d, ecx
sub eax, ecx
sub edx, ecx
shl r9d, 8
xor edx, r9d
sub eax, edx
sub ecx, edx
mov r9d, eax
mov eax, edx
shr eax, 0xd
xor eax, r9d
sub ecx, eax
sub edx, eax
mov r9d, ecx
mov ecx, eax
shr ecx, 0xc
xor ecx, r9d
sub edx, ecx
sub eax, ecx
mov r9d, edx
mov edx, ecx
shl edx, 0x10
xor edx, r9d
sub eax, edx
sub ecx, edx
mov r9d, eax
mov eax, edx
shr eax, 5
xor eax, r9d
sub ecx, eax
sub edx, eax
mov r9d, ecx
mov ecx, eax
shr ecx, 3
xor ecx, r9d
mov r9d, ecx
sub edx, ecx
sub eax, ecx
shl r9d, 0xa
xor r9d, edx
mov rdx, qword [rsi + 0x98]
sub eax, r9d
shr r9d, 0xf
xor r9d, eax
mov eax, dword [rdx + 8]
sub eax, 1
and eax, r9d
shl rax, 4
add rax, qword [rdx]
mov r15, qword [rax]
test r15, r15
je 0x1400ba94d
mov rax, qword [rdx + 0x20]
mov r8d, r8d
mov qword [rsp + 0x50], rsi
mov rsi, r12
mov dword [rsp + 0x4c], r13d
mov r13, r8
mov r10, rax
mov qword [rbp + 0x28], rbx
sub r15, rax
mov ebx, edi
neg r10
mov edi, r9d
mov r12, r10
jmp 0x1400ba7e3
mov r15, qword [r15 + 0xb8]
test r15, r15
je 0x1400ba940
add r15, r12
cmp dword [r15 + 0xcc], edi
jne 0x1400ba7d0
cmp dword [r15 + 0xc8], ebx
jne 0x1400ba7d0
mov rcx, qword [r15 + 0xc0]
mov r8, r13
mov rdx, rsi
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1400ba7d0
cmp word [r15 + 0x44], 0
mov rbx, qword [rbp + 0x28]
mov r12, rsi
jne 0x1400baed0
mov word [r15 + 0x44], bx
mov rdx, qword [rbp + 0x20]
lea rcx, [r15 + 0x46]
xor r13d, r13d
mov r8, qword [rsp + 0x58]
call sub.msvcrt.dll_memcpy
xor ecx, ecx
lea rdx, [r15 + 0x88]
call fcn.140034360
imul eax, dword [rbp + 0x30], 0x3c
add qword [r15 + 0x88], rax
mov rcx, r14
call fcn.140030f90
test eax, eax
jne 0x1400baea0
mov rax, qword [0x1403e76f0]
cmp byte [0x1403ee100], 0
lea r14, [0x1403ee100]
mov rcx, qword [rax]
jne 0x1400ba8b4
lea rdx, [0x140280acd]
xor r9d, r9d
lea r8, [0x140280ac0]
call fcn.1400c1150
mov rdx, rax
test rax, rax
je 0x1400bb006
mov r8d, 0x103
mov rcx, r14
call sub.msvcrt.dll_strncpy
test r14, r14
je 0x1400bb026
mov rdx, r14
xor r8d, r8d
mov rcx, r12
call fcn.1400bbee0
mov r14, rax
test rax, rax
je 0x1400bb0db
mov r12, qword [rax + 0x50]
test r12, r12
je 0x1400ba924
mov rcx, qword [r12 + 0x110]
test rcx, rcx
je 0x1400ba91c
cmp qword [r12 + 0x108], 0
je 0x1400ba917
xor ebx, ebx
nop dword [rax]
mov rcx, qword [rcx + rbx*8]
add rbx, 1
call fcn.1400768e0
cmp rbx, qword [r12 + 0x108]
mov rcx, qword [r12 + 0x110]
jb 0x1400ba8f8
call sub.msvcrt.dll_free
mov rcx, r12
call sub.msvcrt.dll_free
mov rcx, r14
call sub.msvcrt.dll_free
lea rsp, [rbp - 0x38]
mov eax, r13d
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r12, rsi
mov r13d, dword [rsp + 0x4c]
mov rsi, qword [rsp + 0x50]
mov edx, 0xd0
mov ecx, 1
call sub.msvcrt.dll_calloc
mov r15, rax
test rax, rax
je 0x1400bb127
movdqa xmm1, xmmword [rsp + 0x60]
movdqa xmm2, xmmword [rsp + 0x70]
lea rbx, [rax + 2]
movdqa xmm3, xmmword [rsp + 0x80]
mov rcx, rbx
movdqa xmm4, xmmword [rsp + 0x90]
movdqa xmm5, xmmword [rsp + 0xa0]
movups xmmword [rax], xmm1
movdqa xmm1, xmmword [rsp + 0xb0]
movups xmmword [rax + 0x10], xmm2
movdqa xmm2, xmmword [rsp + 0xc0]
movups xmmword [rax + 0x20], xmm3
movdqa xmm3, xmmword [rsp + 0xd0]
movups xmmword [rax + 0x30], xmm4
movdqa xmm4, xmmword [rsp + 0xe0]
movups xmmword [rax + 0x40], xmm5
movdqa xmm5, xmmword [rsp + 0xf0]
movups xmmword [rax + 0x50], xmm1
movdqa xmm1, xmmword [rsp + 0x100]
movups xmmword [rax + 0x60], xmm2
movdqa xmm2, xmmword [rsp + 0x110]
movups xmmword [rax + 0x70], xmm3
movdqa xmm3, xmmword [rsp + 0x120]
movups xmmword [rax + 0x80], xmm4
movups xmmword [rax + 0x90], xmm5
movups xmmword [rax + 0xa0], xmm1
movups xmmword [rax + 0xb0], xmm2
movups xmmword [rax + 0xc0], xmm3
call sub.msvcrt.dll_strlen
mov r9, rbx
mov r11, rax
cmp eax, 0xb
jbe 0x1400bafee
mov r10d, eax
mov r8d, 0x9e3779b9
mov ecx, 0x9e3779b9
mov edi, 0xfeedbeef
nop word [rax + rax]
movzx eax, byte [r9 + 5]
movzx edx, byte [r9 + 6]
shl eax, 8
shl edx, 0x10
add eax, edx
movzx edx, byte [r9 + 4]
add eax, edx
movzx edx, byte [r9 + 7]
shl edx, 0x18
add eax, edx
movzx edx, byte [r9 + 0xa]
add r8d, eax
movzx eax, byte [r9 + 9]
shl edx, 0x10
shl eax, 8
add eax, edx
movzx edx, byte [r9 + 8]
add eax, edx
movzx edx, byte [r9 + 0xb]
shl edx, 0x18
add eax, edx
movzx edx, byte [r9 + 2]
add edi, eax
movzx eax, byte [r9 + 1]
shl edx, 0x10
shl eax, 8
add eax, edx
movzx edx, byte [r9]
add eax, edx
movzx edx, byte [r9 + 3]
shl edx, 0x18
add eax, edx
mov edx, edi
sub eax, r8d
shr edx, 0xd
sub r8d, edi
sub eax, edi
add eax, ecx
xor eax, edx
mov edx, r8d
mov r8d, eax
sub edx, eax
sub edi, eax
shl r8d, 8
xor r8d, edx
sub edi, r8d
mov edx, edi
mov edi, r8d
shr edi, 0xd
xor edi, edx
sub eax, r8d
sub r10d, 0xc
add r9, 0xc
mov edx, edi
sub eax, edi
sub r8d, edi
shr edx, 0xc
xor edx, eax
mov eax, edx
sub r8d, edx
sub edi, edx
shl eax, 0x10
xor eax, r8d
sub edi, eax
sub edx, eax
mov ecx, edi
mov edi, eax
shr edi, 5
xor edi, ecx
mov ecx, edi
sub edx, edi
sub eax, edi
shr ecx, 3
xor ecx, edx
mov r8d, ecx
sub eax, ecx
sub edi, ecx
shl r8d, 0xa
xor r8d, eax
mov eax, r8d
sub edi, r8d
shr eax, 0xf
xor edi, eax
cmp r10d, 0xb
ja 0x1400baa50
lea eax, [rdi + r11]
cmp r10d, 0xb
ja case.0x1400bab63.0
lea rdi, [0x1402810a4]
movsxd rdx, dword [rdi + r10*4]
add rdx, rdi
jmp rdx
movzx edx, byte [r9 + 0xa]
shl edx, 0x18
add eax, edx
movzx edx, byte [r9 + 9]
shl edx, 0x10
add eax, edx
movzx edx, byte [r9 + 8]
shl edx, 8
add eax, edx
movzx edx, byte [r9 + 7]
shl edx, 0x18
add r8d, edx
movzx edx, byte [r9 + 6]
shl edx, 0x10
add r8d, edx
movzx edx, byte [r9 + 5]
shl edx, 8
add r8d, edx
movzx edx, byte [r9 + 4]
add r8d, edx
movzx edx, byte [r9 + 3]
shl edx, 0x18
add ecx, edx
movzx edx, byte [r9 + 2]
shl edx, 0x10
add ecx, edx
movzx edx, byte [r9 + 1]
shl edx, 8
add ecx, edx
movzx edx, byte [r9]
add ecx, edx
lea edx, [rax + r8]
movd xmm0, r11d
mov qword [r15 + 0xc0], rbx
sub ecx, edx
mov edx, eax
shr edx, 0xd
xor ecx, edx
mov edx, r8d
sub edx, eax
mov r8d, ecx
sub eax, ecx
sub edx, ecx
shl r8d, 8
xor edx, r8d
mov r8d, edx
sub eax, edx
sub ecx, edx
shr r8d, 0xd
xor eax, r8d
sub ecx, eax
sub edx, eax
mov r8d, ecx
mov ecx, eax
shr ecx, 0xc
xor ecx, r8d
sub edx, ecx
sub eax, ecx
mov r8d, edx
mov edx, ecx
shl edx, 0x10
xor edx, r8d
sub eax, edx
sub ecx, edx
mov r8d, eax
mov eax, edx
shr eax, 5
xor eax, r8d
mov r8d, eax
sub ecx, eax
sub edx, eax
shr r8d, 3
xor ecx, r8d
mov edi, ecx
sub edx, ecx
sub eax, ecx
shl edi, 0xa
xor edi, edx
sub eax, edi
shr edi, 0xf
xor edi, eax
movd xmm4, edi
punpckldq xmm0, xmm4
movq qword [r15 + 0xc8], xmm0
test rsi, rsi
je 0x1400baf46
mov rax, qword [rsi + 0x98]
lea rbx, [r15 + 0x98]
mov qword [r15 + 0xa8], 0
mov qword [r15 + 0x98], rax
mov rdx, qword [rsi + 0x98]
mov rax, qword [rdx + 0x18]
sub rax, qword [rdx + 0x20]
mov qword [r15 + 0xa0], rax
mov rax, qword [rsi + 0x98]
mov rax, qword [rax + 0x18]
mov qword [rax + 0x10], r15
mov rax, qword [rsi + 0x98]
mov qword [rax + 0x18], rbx
mov r8, qword [rsi + 0x98]
mov eax, dword [r8 + 0x10]
add eax, 1
mov dword [r8 + 0x10], eax
mov rdx, qword [rsi + 0x98]
mov eax, dword [rdx + 8]
sub eax, 1
and eax, edi
shl rax, 4
add rax, qword [rdx]
mov rdx, qword [rax]
add dword [rax + 8], 1
mov qword [r15 + 0xb0], 0
mov qword [r15 + 0xb8], rdx
mov rdx, qword [rax]
test rdx, rdx
je 0x1400bad0e
mov qword [rdx + 0x18], rbx
mov edx, dword [rax + 0xc]
mov qword [rax], rbx
lea edx, [rdx + rdx*4 + 5]
add edx, edx
cmp dword [rax + 8], edx
jb 0x1400ba838
mov rdi, qword [r15 + 0x98]
mov ebx, dword [rdi + 0x34]
test ebx, ebx
jne 0x1400ba838
mov ecx, dword [rdi + 8]
mov edx, 1
shl rcx, 5
call sub.msvcrt.dll_calloc
mov rsi, rax
test rax, rax
je 0x1400bb11f
mov edx, dword [rdi + 8]
mov eax, dword [rdi + 0x10]
mov ecx, dword [rdi + 0xc]
lea edx, [rdx + rdx - 1]
test edx, eax
setne dl
add ecx, 1
shr eax, cl
movzx edx, dl
add edx, eax
mov dword [rdi + 0x28], edx
mov rax, qword [r15 + 0x98]
mov dword [rax + 0x2c], 0
mov rcx, qword [r15 + 0x98]
mov eax, dword [rcx + 8]
test eax, eax
je 0x1400bae3f
xor r9d, r9d
nop dword [rax]
mov edx, r9d
shl rdx, 4
add rdx, qword [rcx]
mov rdx, qword [rdx]
test rdx, rdx
jne 0x1400badc9
jmp 0x1400bae32
mov qword [rcx + 0x18], rdx
mov rcx, qword [r15 + 0x98]
mov qword [rax], rdx
test r8, r8
je 0x1400bae2f
mov eax, dword [rcx + 8]
mov rdx, r8
lea eax, [rax + rax - 1]
and eax, dword [rdx + 0x34]
mov r8, qword [rdx + 0x20]
shl rax, 4
add rax, rsi
mov edi, dword [rax + 8]
lea r10d, [rdi + 1]
mov dword [rax + 8], r10d
cmp r10d, dword [rcx + 0x28]
jbe 0x1400bae0c
add dword [rcx + 0x2c], 1
mov r10, qword [r15 + 0x98]
mov ecx, dword [rax + 0xc]
mov edi, dword [r10 + 0x28]
imul edi, ecx
cmp dword [rax + 8], edi
jbe 0x1400bae0c
add ecx, 1
mov dword [rax + 0xc], ecx
mov qword [rdx + 0x18], 0
mov rcx, qword [rax]
mov qword [rdx + 0x20], rcx
test rcx, rcx
jne 0x1400badb0
mov qword [rax], rdx
mov rcx, qword [r15 + 0x98]
test r8, r8
jne 0x1400badc3
mov eax, dword [rcx + 8]
add r9d, 1
cmp r9d, eax
jb 0x1400bad98
mov rcx, qword [rcx]
call sub.msvcrt.dll_free
mov rax, qword [r15 + 0x98]
shl dword [rax + 8], 1
mov rax, qword [r15 + 0x98]
add dword [rax + 0xc], 1
mov rax, qword [r15 + 0x98]
mov qword [rax], rsi
mov rax, qword [r15 + 0x98]
mov edx, dword [rax + 0x10]
shr edx, 1
cmp dword [rax + 0x2c], edx
jbe 0x1400bae7d
mov esi, dword [rax + 0x30]
lea ebx, [rsi + 1]
mov dword [rax + 0x30], ebx
mov rax, qword [r15 + 0x98]
cmp dword [rax + 0x30], 1
jbe 0x1400ba838
mov dword [rax + 0x34], 1
jmp 0x1400ba838
mov dword [rsp + 0x28], eax
lea rax, str.Error_unlocking_Wallet_table__errno_d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov r9d, 7
lea r8, str.dap_chain_wallet
call fcn.14005a160
jmp 0x1400ba861
mov r9d, 7
xor edx, edx
xor ecx, ecx
mov r13d, 0xfffffff0
lea rax, str.Wallet_has_been_activated__do_deactivation_first
lea r8, str.dap_chain_wallet
mov qword [rsp + 0x20], rax
call fcn.14005a160
jmp 0x1400ba838
mov dword [rsp + 0x28], eax
lea rax, str.Error_locking_Wallet_table__errno_d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
mov r9d, 7
lea r8, str.dap_chain_wallet
neg r13d
call fcn.14005a160
jmp 0x1400ba92c
mov r11d, eax
mov r15d, 0x9e3779b9
mov ecx, 0x9e3779b9
mov eax, 0xfeedbeef
jmp 0x1400ba671
pxor xmm0, xmm0
mov ecx, 0x40
movups xmmword [r15 + 0xa0], xmm0
call sub.msvcrt.dll_malloc
mov qword [r15 + 0x98], rax
mov r8, rax
test rax, rax
je 0x1400bb11f
lea rbx, [r15 + 0x98]
mov qword [rax + 0x10], 0
mov edx, 1
mov ecx, 0x200
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], 0
mov qword [rax + 0x18], rbx
mov rax, qword [0x140281218]
mov qword [r8 + 0x20], 0x98
mov qword [r8 + 8], rax
mov qword [rsp + 0x58], r8
call sub.msvcrt.dll_calloc
mov r8, qword [rsp + 0x58]
mov qword [r8], rax
mov dword [r8 + 0x38], 0xa0111fe1
test rax, rax
je 0x1400bb11f
mov qword [0x1403ee208], r15
mov rsi, r15
mov eax, 1
jmp 0x1400baccf
mov r10d, eax
mov r8d, 0x9e3779b9
mov ecx, 0x9e3779b9
mov edi, 0xfeedbeef
jmp 0x1400bab4b
lea rax, str.No_path_to_wallets_store_has_been_defined
mov r9d, 5
lea r8, str.dap_chain_wallet
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.14005a160
movzx r8d, word [r15 + 0x44]
lea rcx, [r15 + 0x46]
xor edx, edx
mov r13d, 0xffffffea
call sub.msvcrt.dll_memset
xor edx, edx
lea rax, str.Wallets_path_has_been_not_configured
xor ecx, ecx
mov word [r15 + 0x44], dx
mov r9d, 7
lea r8, str.dap_chain_wallet
xor edx, edx
mov qword [rsp + 0x20], rax
call fcn.14005a160
jmp 0x1400ba92c
lea rax, str.Wallets_password_is_too_long___d____d_
mov dword [rsp + 0x28], r9d
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x30], 0x40
mov r9d, 7
lea r8, str.dap_chain_wallet
mov r13d, 0xffffffea
mov qword [rsp + 0x20], rax
call fcn.14005a160
jmp 0x1400ba92c
mov dword [rsp + 0x28], edx
lea rax, str.Wallets_name_is_too_long___d____d_
mov r9d, 7
xor edx, edx
mov dword [rsp + 0x30], 0x40
lea r8, str.dap_chain_wallet
mov r13d, 0xffffffea
mov qword [rsp + 0x20], rax
call fcn.14005a160
jmp 0x1400ba92c
movzx r8d, word [r15 + 0x44]
lea rcx, [r15 + 0x46]
xor edx, edx
mov r13d, 0xfffffff5
call sub.msvcrt.dll_memset
xor eax, eax
mov r9d, 7
xor edx, edx
mov word [r15 + 0x44], ax
lea rax, str.Wallets_password_is_invalid__say__password__again
lea r8, str.dap_chain_wallet
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.14005a160
jmp 0x1400ba92c
or ecx, 0xffffffff
call sub.msvcrt.dll_exit
lea rax, [0x140280971]
mov r9d, 8
lea r8, str.dap_chain_wallet
mov edx, 0x92
mov qword [rsp + 0x20], rax
lea rcx, str.dap_chain_wallet_activate
mov r13d, 0xffffffea
call fcn.14005a160
jmp 0x1400ba92c