Function at 0x40cbe0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x1a8
lea rbp, [rsp + 0x80]
vmovups xmmword [rbp + 0xb0], xmm6
vmovups xmmword [rbp + 0xc0], xmm7
vmovups xmmword [rbp + 0xd0], xmm8
vmovups xmmword [rbp + 0xe0], xmm9
vmovups xmmword [rbp + 0xf0], xmm10
vmovups xmmword [rbp + 0x100], xmm11
vmovups xmmword [rbp + 0x110], xmm12
mov rax, qword [0x00713990]
movsxd rax, dword [rax]
mov r14, rdx
mov rbx, r8
mov qword [rbp + 0x170], rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.006a7a40
mov edi, edx
sub rsp, rax
lea r13, [rdx + 3]
mov edx, 0xffffffff
and edi, 3
mov rcx, r8
shr r13, 2
lea rsi, [rsp + 0x20]
lea eax, [rdi*8]
shlx eax, edx, eax
mov dword [rbp - 0x44], eax
call sub.msvcrt.dll_strlen
mov rcx, r13
mov edx, 4
mov r12, rax
call sub.msvcrt.dll_calloc
mov rcx, rax
test r12, r12
je 0x40cdf3
lea rax, [rbx + r12]
mov qword [rbp - 0x58], rbx
mov r9, rbx
lea r10, str.123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
mov qword [rbp - 0x50], rax
lea r11, [r13 - 1]
movsx r8w, byte [r9]
mov eax, 1
cmp r8w, 0x31
je 0x40d220
nop word cs:[rax + rax]
nop
movsx r15w, byte [r10 + rax]
mov edx, eax
cmp r15w, r8w
je 0x40cda0
inc rax
test r15w, r15w
jne 0x40cce0
call sub.msvcrt.dll_free
lea rax, [r12 - 8]
cmp rax, 0x52
ja 0x40cd40
lea r9, [r12 - 1]
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
cmp byte [rbx + r9], 0x31
mov rsi, rax
lea rax, [rax + 1]
je 0x40d110
dec r9
cmp r12, rax
jne 0x40cd20
nop word [rax + rax]
xor r12d, r12d
vmovups xmm6, xmmword [rbp + 0xb0]
vmovups xmm7, xmmword [rbp + 0xc0]
mov rax, r12
vmovups xmm8, xmmword [rbp + 0xd0]
vmovups xmm9, xmmword [rbp + 0xe0]
vmovups xmm10, xmmword [rbp + 0xf0]
vmovups xmm11, xmmword [rbp + 0x100]
vmovups xmm12, xmmword [rbp + 0x110]
lea rsp, [rbp + 0x128]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
test r13, r13
je 0x40ccfb
lea r8, [rcx + r11*4]
nop dword [rax]
mov eax, dword [r8]
mov edx, edx
mov r15, r8
sub r8, 4
imul rax, rax, 0x3a
add rax, rdx
mov rdx, rax
mov dword [r8 + 4], eax
shr rdx, 0x20
cmp r15, rcx
jne 0x40cdb0
test edx, edx
jne 0x40ccfb
mov eax, dword [rbp - 0x44]
test dword [rcx], eax
jne 0x40ccfb
inc r9
cmp r9, qword [rbp - 0x50]
jne 0x40ccbe
cmp edi, 2
je 0x40d270
cmp edi, 3
je 0x40d230
cmp edi, 1
je 0x40d260
mov r9, rsi
xor r8d, r8d
cmp r13, r8
jbe 0x40d0b0
lea rax, [r13 - 1]
mov r11, r13
sub rax, r8
sub r11, r8
cmp rax, 0xe
jbe 0x40cf88
vmovups xmm2, xmmword [0x006b7fc0]
vmovups xmm5, xmmword [0x006b7fd0]
mov r10, r11
mov rax, r9
shr r10, 4
lea rdx, [rcx + r8*4]
shl r10, 6
add r10, r9
nop dword [rax]
vmovups xmm0, xmmword [rdx]
vmovups xmm9, xmmword [rdx + 0x10]
add rax, 0x40
add rdx, 0x40
vmovups xmm4, xmmword [rdx - 0x20]
vmovups xmm8, xmmword [rdx - 0x10]
vandps xmm1, xmm2, xmm9
vandps xmm3, xmm2, xmm0
vpackusdw xmm3, xmm3, xmm1
vandps xmm7, xmm2, xmm4
vandps xmm1, xmm2, xmm8
vpsrld xmm10, xmm8, 0x10
vpackusdw xmm7, xmm7, xmm1
vandps xmm6, xmm5, xmm3
vpsrlw xmm3, xmm3, 8
vandps xmm3, xmm5, xmm3
vandps xmm1, xmm5, xmm7
vpsrlw xmm7, xmm7, 8
vandps xmm7, xmm5, xmm7
vandps xmm10, xmm2, xmm10
vpackuswb xmm6, xmm6, xmm1
vpackuswb xmm3, xmm3, xmm7
vpsrld xmm1, xmm9, 0x10
vpsrld xmm7, xmm0, 0x10
vandps xmm1, xmm2, xmm1
vandps xmm7, xmm2, xmm7
vpsrld xmm0, xmm0, 0x18
vpsrld xmm9, xmm9, 0x18
vpackusdw xmm7, xmm7, xmm1
vandps xmm0, xmm2, xmm0
vpsrld xmm1, xmm4, 0x10
vandps xmm9, xmm2, xmm9
vandps xmm1, xmm2, xmm1
vpsrld xmm4, xmm4, 0x18
vpsrld xmm8, xmm8, 0x18
vandps xmm4, xmm2, xmm4
vandps xmm8, xmm2, xmm8
vpackusdw xmm1, xmm1, xmm10
vpackusdw xmm0, xmm0, xmm9
vandps xmm7, xmm5, xmm7
vpackusdw xmm4, xmm4, xmm8
vandps xmm1, xmm5, xmm1
vandps xmm0, xmm5, xmm0
vandps xmm4, xmm5, xmm4
vpackuswb xmm1, xmm7, xmm1
vpackuswb xmm0, xmm0, xmm4
vpunpcklbw xmm4, xmm0, xmm3
vpunpckhbw xmm0, xmm0, xmm3
vpunpcklbw xmm3, xmm1, xmm6
vpunpckhbw xmm1, xmm1, xmm6
vpunpcklbw xmm6, xmm4, xmm3
vpunpckhbw xmm4, xmm4, xmm3
vpunpcklbw xmm3, xmm0, xmm1
vpunpckhbw xmm0, xmm0, xmm1
vmovups xmmword [rax - 0x40], xmm6
vmovups xmmword [rax - 0x30], xmm4
vmovups xmmword [rax - 0x20], xmm3
vmovups xmmword [rax - 0x10], xmm0
cmp rax, r10
jne 0x40ce60
mov rax, r11
and rax, 0xfffffffffffffff0
add r8, rax
lea r9, [r9 + rax*4]
cmp rax, r11
je 0x40d0b0
movbe eax, dword [rcx + r8*4]
mov dword [r9], eax
lea rax, [r8 + 1]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 4], eax
lea rax, [r8 + 2]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 8], eax
lea rax, [r8 + 3]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0xc], eax
lea rax, [r8 + 4]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x10], eax
lea rax, [r8 + 5]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x14], eax
lea rax, [r8 + 6]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x18], eax
lea rax, [r8 + 7]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x1c], eax
lea rax, [r8 + 8]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x20], eax
lea rax, [r8 + 9]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x24], eax
lea rax, [r8 + 0xa]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x28], eax
lea rax, [r8 + 0xb]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x2c], eax
lea rax, [r8 + 0xc]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
mov dword [r9 + 0x30], eax
lea rax, [r8 + 0xd]
cmp r13, rax
jbe 0x40d0b0
movbe eax, dword [rcx + rax*4]
add r8, 0xe
mov dword [r9 + 0x34], eax
cmp r13, r8
jbe 0x40d0b0
movbe eax, dword [rcx + r8*4]
mov dword [r9 + 0x38], eax
nop word [rax + rax]
call sub.msvcrt.dll_free
lea rcx, [rbp + 0x50]
lea r8d, [r14 - 4]
mov rdx, rsi
call fcn.00590120
mov eax, dword [rbp + 0x50]
cmp dword [rsi + r14 - 4], eax
jne 0x40cd40
movzx edi, byte [rsi]
xor eax, eax
test di, di
je 0x40d0fd
jmp 0x40d283
inc rax
cmp byte [rsi + rax], 0
jne 0x40d280
cmp byte [rbx + rax], 0x31
je 0x40d0f0
jmp 0x40cd40
cmp r12, rax
jbe 0x40cd40
cmp rsi, 5
jbe 0x40cd40
test r9, r9
je 0x40d8f8
xor edi, edi
xor r13d, r13d
mov eax, 1
xor r11d, r11d
jmp 0x40d1e5
lea ecx, [r8 - 0x41]
cmp ecx, 0x19
ja 0x40d155
add r8d, 0x20
mov edi, 1
mov edx, r8d
mov ecx, eax
mov byte [rbp + r11 + 0x50], dl
sar r8d, 5
inc r11
shr ecx, 0x19
mov r10d, ecx
shr r10w, 1
and r10d, 1
neg r10d
mov edx, r10d
mov r10d, ecx
shr r10w, 2
and edx, 0x26508e6d
and r10d, 1
neg r10d
and r10d, 0x1ea119fa
xor r10d, edx
mov edx, eax
shl eax, 5
shl edx, 6
and eax, 0x3fffffe0
sar edx, 0x1f
and edx, 0x3b6a57b2
xor eax, edx
mov edx, ecx
shr cx, 4
shr dx, 3
and ecx, 1
xor r10d, eax
and edx, 1
neg ecx
neg edx
and ecx, 0x2a1462b3
and edx, 0x3d4233dd
xor edx, ecx
xor r8d, edx
mov eax, r8d
xor eax, r10d
cmp r11, r9
je 0x40d350
movsx r8d, byte [rbx + r11]
lea ecx, [r8 - 0x21]
mov edx, r8d
cmp ecx, 0x5d
ja 0x40cd40
lea ecx, [r8 - 0x61]
cmp ecx, 0x19
ja 0x40d140
mov r13d, 1
jmp 0x40d155
xor edx, edx
test r13, r13
jne 0x40cda9
jmp 0x40cddb
mov edx, dword [rcx]
lea r8, [rsi + 1]
mov eax, edx
shr eax, 0x10
mov byte [rsi], al
movzx eax, dh
lea rdi, [r8 + 1]
mov byte [r8], al
lea r9, [rdi + 1]
mov byte [rdi], dl
mov r8d, 1
jmp 0x40ce14
mov edx, dword [rcx]
mov rdi, rsi
jmp 0x40d247
mov edx, dword [rcx]
mov r8, rsi
jmp 0x40d23d
add rbx, rax
cmp byte [rbx], 0x31
je 0x40cd40
mov rax, qword [0x00713810]
cmp byte [rax], 0
jne 0x40d330
cmp di, 5
je 0x40d2f0
cmp di, 0xc4
je 0x40d2f0
mov r12d, 0x19
cmp r14, 0x18
jbe 0x40cd43
vmovups xmm6, xmmword [rsi + 1]
mov rax, qword [rbp + 0x170]
mov rdi, qword [rbp + 0x170]
mov word [rax], 0xa976
mov byte [rax + 2], 0x14
vmovups xmmword [rax + 3], xmm6
mov eax, dword [rsi + 0x11]
mov word [rdi + 0x17], 0xac88
mov dword [rdi + 0x13], eax
jmp 0x40cd43
mov r12d, 0x17
cmp r14, 0x16
jbe 0x40cd43
vmovups xmm6, xmmword [rsi + 1]
mov rax, qword [rbp + 0x170]
mov rdi, qword [rbp + 0x170]
mov word [rax], 0x14a9
vmovups xmmword [rax + 2], xmm6
mov eax, dword [rsi + 0x11]
mov byte [rdi + 0x16], 0x87
mov dword [rdi + 0x12], eax
jmp 0x40cd43
lea rdx, str.Coinbase_address_uses_B58_coding
mov ecx, 4
call fcn.0040afc0
jmp 0x40d29c
mov ecx, eax
mov byte [rbp + r9 + 0x50], 0
shr ecx, 0x19
mov r8d, ecx
mov edx, ecx
shr cx, 2
shr r8w, 1
and ecx, 1
mov r10d, edx
shr dx, 4
and r8d, 1
neg ecx
shr r10w, 3
and edx, 1
neg r8d
and ecx, 0x1ea119fa
and r10d, 1
neg edx
and r8d, 0x26508e6d
neg r10d
and edx, 0x2a1462b3
xor r8d, ecx
mov ecx, eax
shl eax, 5
and r10d, 0x3d4233dd
shl ecx, 6
and eax, 0x3fffffe0
sar ecx, 0x1f
and ecx, 0x3b6a57b2
xor eax, ecx
xor r8d, eax
mov eax, r10d
mov r10, qword [rbp - 0x58]
xor eax, edx
xor eax, r8d
lea r8, [rbx + r9]
mov edx, eax
nop word cs:[rax + rax]
mov r11d, edx
shl edx, 5
inc r10
shr r11d, 0x19
and edx, 0x3fffffe0
mov eax, r11d
movzx ecx, r11b
shr r11d, 4
and eax, 1
neg r11d
neg eax
and r11d, 0x2a1462b3
and eax, 0x3b6a57b2
xor r11d, eax
movzx eax, byte [r10 - 1]
and eax, 0x1f
xor eax, edx
mov edx, ecx
shr dx, 1
xor eax, r11d
and edx, 1
neg edx
and edx, 0x26508e6d
mov r11d, edx
mov edx, ecx
shr cx, 3
shr dx, 2
and ecx, 1
and edx, 1
neg ecx
neg edx
and ecx, 0x3d4233dd
and edx, 0x1ea119fa
xor edx, r11d
xor edx, ecx
xor edx, eax
cmp r10, r8
jne 0x40d3e0
inc r9
mov eax, edx
cmp r12, r9
jbe 0x40d570
mov rdx, rsi
lea r11, [0x006b7900]
sub rdx, r12
lea r10, [rbp + rdx - 0x10]
jmp 0x40d537
sub edx, 0x41
mov ecx, 1
cmp dl, 0x19
cmovbe edi, ecx
cmp r8d, 0xffffffff
je 0x40cd40
mov ecx, eax
shr ecx, 0x19
mov r15d, ecx
shr r15w, 1
and r15d, 1
neg r15d
mov edx, r15d
mov r15d, ecx
shr r15w, 2
and edx, 0x26508e6d
and r15d, 1
neg r15d
and r15d, 0x1ea119fa
xor r15d, edx
mov edx, eax
shl eax, 5
shl edx, 6
and eax, 0x3fffffe0
sar edx, 0x1f
and edx, 0x3b6a57b2
xor eax, edx
mov edx, ecx
shr cx, 4
shr dx, 3
and ecx, 1
xor r15d, eax
and edx, 1
neg ecx
neg edx
and ecx, 0x2a1462b3
and edx, 0x3d4233dd
mov eax, edx
lea rdx, [r9 + 6]
xor eax, ecx
xor eax, r8d
xor eax, r15d
cmp r12, rdx
jbe 0x40d52f
mov byte [r10 + r9], r8b
inc r9
cmp r12, r9
jbe 0x40d570
movzx edx, byte [rbx + r9]
mov r8d, 0xffffffff
test dl, 0x80
jne 0x40d550
movsx rcx, dl
movsx r8d, byte [r11 + rcx]
lea ecx, [rdx - 0x61]
cmp cl, 0x19
ja 0x40d490
mov r13d, 1
jmp 0x40d49e
test edi, r13d
jne 0x40cd40
cmp eax, 1
jne 0x40cd40
lea rax, [rsi - 7]
cmp rax, 0x40
ja 0x40cd40
movzx ebx, byte [rbp - 0x10]
mov edi, ebx
mov word [rbp - 0x44], bx
cmp bl, 0x10
ja 0x40cd40
test rax, rax
je 0x40cd40
movzx eax, byte [rbp - 0xf]
cmp rsi, 8
je 0x40cd40
vmovups xmm11, xmmword [0x006b7fe0]
vmovups xmm4, xmmword [0x006b7fc0]
lea rsi, [rbp + rsi - 0x16]
mov byte [rbp - 0x50], dil
vmovups xmm5, xmmword [0x006b7fd0]
mov ecx, 5
xor r8d, r8d
lea r10, [rbp - 0xe]
vmovups xmm10, xmmword [0x006b7ff0]
vmovups xmm9, xmmword [0x006b8000]
lea r15, [rbp - 0x40]
mov rdi, rsi
vmovups xmm8, xmmword [0x006b8010]
vmovups xmm7, xmmword [0x006b8020]
vmovups xmm6, xmmword [0x006b8030]
nop word cs:[rax + rax]
movzx edx, byte [r10]
shl eax, 5
inc r10
or eax, edx
lea edx, [rcx + 5]
cmp edx, 7
jle 0x40d911
lea r11d, [rcx - 3]
mov r9d, r11d
shr r9d, 3
lea esi, [r9 + 1]
cmp r11d, 0x77
jbe 0x40d8f0
mov ebx, esi
vmovd xmm2, ecx
lea rcx, [r15 + r8]
vpshufd xmm2, xmm2, 0
shr ebx, 4
vmovd xmm3, eax
vpaddd xmm2, xmm2, xmm11
vpshufd xmm3, xmm3, 0
shl rbx, 4
add rbx, rcx
nop dword [rax + rax]
vmovups xmm1, xmm2
add rcx, 0x10
vpaddd xmm2, xmm2, xmm10
vpaddd xmm12, xmm1, xmm9
vpaddd xmm0, xmm1, xmm8
vpsrlvd xmm12, xmm3, xmm12
vpsrlvd xmm0, xmm3, xmm0
vandps xmm12, xmm4, xmm12
vandps xmm0, xmm4, xmm0
vpackusdw xmm0, xmm12, xmm0
vpaddd xmm12, xmm1, xmm7
vpaddd xmm1, xmm1, xmm6
vpsrlvd xmm12, xmm3, xmm12
vpsrlvd xmm1, xmm3, xmm1
vandps xmm12, xmm4, xmm12
vandps xmm1, xmm4, xmm1
vpackusdw xmm1, xmm12, xmm1
vandps xmm0, xmm5, xmm0
vandps xmm1, xmm5, xmm1
vpackuswb xmm1, xmm0, xmm1
vmovups xmmword [rcx - 0x10], xmm1
cmp rcx, rbx
jne 0x40d680
mov ebx, esi
and ebx, 0xfffffff0
mov ecx, ebx
neg ecx
lea edx, [rdx + rcx*8]
mov ecx, ebx
add rcx, r8
cmp ebx, esi
je 0x40d830
lea ebx, [rdx - 8]
shrx r12d, eax, ebx
mov byte [rbp + rcx - 0x40], r12b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x10]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x3f], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x18]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x3e], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x20]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x3d], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x28]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x3c], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x30]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x3b], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x38]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x3a], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x40]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x39], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x48]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x38], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x50]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x37], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x58]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x36], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x60]
shrx r13d, eax, ebx
mov byte [rbp + rcx - 0x35], r13b
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x68]
lea r13, [rcx + 0xd]
shrx esi, eax, ebx
mov byte [rbp + rcx - 0x34], sil
cmp ebx, 7
jle 0x40d830
lea ebx, [rdx - 0x70]
add rcx, 0xe
shrx esi, eax, ebx
mov byte [rbp + r13 - 0x40], sil
cmp ebx, 7
jle 0x40d830
sub edx, 0x78
shrx edx, eax, edx
mov byte [rbp + rcx - 0x40], dl
nop
mov edx, r9d
lea r8, [r8 + r9 + 1]
neg edx
lea ecx, [r11 + rdx*8]
cmp r10, rdi
jne 0x40d620
mov edx, 8
movzx edi, byte [rbp - 0x50]
sub edx, ecx
shlx eax, eax, edx
test al, al
jne 0x40cd40
cmp ecx, 4
jg 0x40cd40
lea rax, [r8 - 2]
cmp rax, 0x26
ja 0x40cd40
cmp r8, 0x14
setne al
cmp r8, 0x20
setne dl
and eax, edx
test al, 1
je 0x40d895
cmp word [rbp - 0x44], 0
je 0x40cd40
lea r12, [r8 + 2]
cmp r14, r12
jb 0x40cd40
cmp word [rbp - 0x44], 0
je 0x40d8ac
add edi, 0x50
mov rax, qword [rbp + 0x170]
lea rdx, [rbp - 0x40]
mov byte [rax], dil
mov byte [rax + 1], r8b
lea rcx, [rax + 2]
call sub.msvcrt.dll_memcpy
mov rax, qword [0x00713810]
cmp byte [rax], 0
je 0x40cd43
lea rdx, str.Coinbase_address_uses_Bech32_coding
mov ecx, 4
call fcn.0040afc0
jmp 0x40cd43
mov rcx, r8
jmp 0x40d6fe
mov byte [rbp + 0x50], 0
xor r13d, r13d
xor edi, edi
mov eax, 0x20
mov r9d, 1
jmp 0x40d473
mov ecx, edx
jmp 0x40d83e