Function at 0x1400b2340
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions
Query environment variable

Disassembly:
endbr64
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x678
movups xmmword [rsp + 0x5d0], xmm6
movups xmmword [rsp + 0x5e0], xmm7
movups xmmword [rsp + 0x5f0], xmm8
movups xmmword [rsp + 0x600], xmm9
movups xmmword [rsp + 0x610], xmm10
movups xmmword [rsp + 0x620], xmm11
movups xmmword [rsp + 0x630], xmm12
movups xmmword [rsp + 0x640], xmm13
movups xmmword [rsp + 0x650], xmm14
movups xmmword [rsp + 0x660], xmm15
mov rsi, rcx
mov rcx, qword [0x14023b4a0]
mov rdi, rdx
mov r13d, r9d
mov qword [rsp + 0xa0], r8
mov rax, qword [rcx]
mov qword [rsp + 0x5c8], rax
xor eax, eax
mov eax, dword [0x1401702c4]
mov qword [rsp + 0xc8], 0
cmp eax, 0xffffffff
je 0x1400b44c3
test eax, eax
je 0x1400b44f1
mov dword [rsp + 0x40], 0
lea rcx, [0x140170220]
call sym.__emutls_get_address
mov rbp, qword [rax]
mov rbx, rax
test rbp, rbp
je 0x1400b4f35
mov r11d, dword [rsp + 0x6e0]
lea r15, [rsp + 0x140]
test r11d, r11d
je 0x1400b26d8
mov r9d, 0xc8
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call dbg.__memcpy_chk
movdqu xmm1, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x450], xmm1
movdqu xmm1, xmmword [rsp + 0x190]
movups xmmword [rsp + 0x460], xmm1
movdqu xmm1, xmmword [rsp + 0x1a0]
movups xmmword [rsp + 0x470], xmm1
movdqu xmm1, xmmword [rsp + 0x1b0]
movups xmmword [rsp + 0x480], xmm1
movdqu xmm1, xmmword [rsp + 0x1c0]
movups xmmword [rsp + 0x490], xmm1
movdqu xmm1, xmmword [rsp + 0x1d0]
movups xmmword [rsp + 0x4a0], xmm1
movdqu xmm1, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x4b0], xmm1
movdqu xmm1, xmmword [rsp + 0x1f0]
movups xmmword [rsp + 0x4c0], xmm1
cmp r13d, 1
je 0x1400b444b
jle 0x1400b4f42
mov rax, qword [rsp + 0x1a0]
mov r11, qword [rsp + 0x1a8]
mov qword [rsp + 0x38], 0
movdqu xmm0, xmmword [rsp + 0x190]
pxor xmm0, xmmword [rsp + 0x180]
mov qword [rsp + 0x70], rax
mov eax, dword [0x1401702c8]
movups xmmword [rsp + 0x100], xmm0
cmp eax, 0xffffffff
je 0x1400b4481
mov eax, dword [0x1401702c8]
mov dword [rsp + 0x7c], eax
cmp r13d, 3
jle 0x1400b2577
movdqu xmm1, xmmword [rsp + 0x1a0]
mov rdx, qword [rsp + 0x6e8]
mov qword [rsp + 0x20], r11
lea rbx, [rsp + 0x210]
mov rcx, rbx
movups xmmword [rsp + 0x110], xmm1
call sym.v4_random_math_init.isra.0
mov r10d, dword [rsp + 0x7c]
mov r11, qword [rsp + 0x20]
test r10d, r10d
jne 0x1400b4620
mov r9d, dword [rsp + 0x40]
test r9d, r9d
je 0x1400b26eb
lea rbx, [rsp + 0x4d0]
mov rcx, r15
lea rdi, [rbp + 0x200000]
mov rdx, rbx
lea rsi, [rsp + 0x450]
call sym.aes_expand_key
mov rdx, rbp
movdqu xmm10, xmmword [rsp + 0x4d0]
movdqu xmm9, xmmword [rsp + 0x4e0]
movdqu xmm8, xmmword [rsp + 0x4f0]
movdqu xmm7, xmmword [rsp + 0x500]
movdqu xmm6, xmmword [rsp + 0x510]
movdqu xmm5, xmmword [rsp + 0x520]
movdqu xmm4, xmmword [rsp + 0x530]
movdqu xmm3, xmmword [rsp + 0x540]
movdqu xmm2, xmmword [rsp + 0x550]
movdqu xmm1, xmmword [rsp + 0x560]
nop word [rax + rax]
mov rax, rsi
nop dword [rax + rax]
movdqu xmm0, xmmword [rax]
add rax, 0x10
aesenc xmm0, xmm10
aesenc xmm0, xmm9
aesenc xmm0, xmm8
aesenc xmm0, xmm7
aesenc xmm0, xmm6
aesenc xmm0, xmm5
aesenc xmm0, xmm4
aesenc xmm0, xmm3
aesenc xmm0, xmm2
aesenc xmm0, xmm1
movups xmmword [rax - 0x10], xmm0
cmp rax, rbx
jne 0x1400b2618
movdqu xmm0, xmmword [rsp + 0x450]
sub rdx, 0xffffffffffffff80
movups xmmword [rdx - 0x80], xmm0
movdqu xmm0, xmmword [rsp + 0x460]
movups xmmword [rdx - 0x70], xmm0
movdqu xmm0, xmmword [rsp + 0x470]
movups xmmword [rdx - 0x60], xmm0
movdqu xmm0, xmmword [rsp + 0x480]
movups xmmword [rdx - 0x50], xmm0
movdqu xmm0, xmmword [rsp + 0x490]
movups xmmword [rdx - 0x40], xmm0
movdqu xmm0, xmmword [rsp + 0x4a0]
movups xmmword [rdx - 0x30], xmm0
movdqu xmm0, xmmword [rsp + 0x4b0]
movups xmmword [rdx - 0x20], xmm0
movdqu xmm0, xmmword [rsp + 0x4c0]
movups xmmword [rdx - 0x10], xmm0
cmp rdx, rdi
jne 0x1400b2610
jmp 0x1400b27d8
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call sym.hash_process
jmp 0x1400b2447
mov qword [rsp + 0x50], r11
lea rdi, [rbp + 0x200000]
lea rbx, [rsp + 0x4d0]
call sym.oaes_alloc
mov r8d, 0x20
mov rdx, r15
lea rsi, [rsp + 0x450]
mov rcx, rax
mov qword [rsp + 0xc8], rax
call sym.oaes_key_import_data
mov qword [rsp + 0x20], rbp
mov r12, qword [rsp + 0x50]
nop
mov r14, rsi
nop dword [rax + rax]
mov rax, qword [rsp + 0xc8]
mov rdx, r14
mov rcx, r14
add r14, 0x10
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call sym.aesb_pseudo_round
cmp r14, rbx
jne 0x1400b2738
movdqu xmm7, xmmword [rsp + 0x450]
sub rbp, 0xffffffffffffff80
movups xmmword [rbp - 0x80], xmm7
movdqu xmm6, xmmword [rsp + 0x460]
movups xmmword [rbp - 0x70], xmm6
movdqu xmm7, xmmword [rsp + 0x470]
movups xmmword [rbp - 0x60], xmm7
movdqu xmm6, xmmword [rsp + 0x480]
movups xmmword [rbp - 0x50], xmm6
movdqu xmm5, xmmword [rsp + 0x490]
movups xmmword [rbp - 0x40], xmm5
movdqu xmm7, xmmword [rsp + 0x4a0]
movups xmmword [rbp - 0x30], xmm7
movdqu xmm6, xmmword [rsp + 0x4b0]
movups xmmword [rbp - 0x20], xmm6
movdqu xmm5, xmmword [rsp + 0x4c0]
movups xmmword [rbp - 0x10], xmm5
cmp rbp, rdi
jne 0x1400b2730
mov rbp, qword [rsp + 0x20]
mov r11, r12
movdqu xmm0, xmmword [rsp + 0x160]
mov r8d, dword [rsp + 0x40]
pxor xmm0, xmmword [rsp + 0x140]
movdqu xmm1, xmmword [rsp + 0x170]
movdqu xmm2, xmmword [rsp + 0x100]
pxor xmm1, xmmword [rsp + 0x150]
movq r14, xmm0
movups xmmword [rsp + 0x20], xmm0
test r8d, r8d
je 0x1400b3409
mov eax, 0x80000
mov r9, r14
mov qword [rsp + 0x90], r15
mov qword [rsp + 0x98], rdi
mov r14, rax
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xb0], rbx
jmp 0x1400b2a79
mov r8, rax
mov rcx, rax
movdqa xmm6, xmm2
xor rax, 0x30
xor r8, 0x10
add rax, rbp
xor rcx, 0x20
add r8, rbp
movdqu xmm5, xmmword [rax]
add rcx, rbp
movdqu xmm4, xmmword [r8]
movdqu xmm3, xmmword [rcx]
paddq xmm6, xmm5
pxor xmm5, xmm4
paddq xmm4, xmm1
movups xmmword [r8], xmm6
movups xmmword [rcx], xmm4
movdqu xmm4, xmmword [rsp + 0xd0]
paddq xmm4, xmm3
movups xmmword [rax], xmm4
cmp r13d, 3
jg 0x1400b2b18
movdqu xmm0, xmmword [rsp + 0xe0]
mov rax, r11
mov rbx, qword [rsp + 0x70]
movabs rdi, 0x100000000
shl rax, 0x20
movq rcx, xmm0
movdqa xmm3, xmm0
movhlps xmm5, xmm0
pxor xmm3, xmm1
lea r9d, [rcx + r11*2]
pxor xmm0, xmm0
mov r12, rcx
and r12d, 0x1ffff0
movups xmmword [rdx], xmm3
xor edx, edx
or r9d, 0x80000001
lea r15, [rbp + r12]
xor rbx, qword [r15]
mov r8, qword [r15 + 8]
xor rbx, rax
movq rax, xmm5
div r9
shl rdx, 0x20
mov eax, eax
add rax, rdx
lea r11, [rcx + rax]
mov qword [rsp + 0x70], rax
mov rax, r11
shr rax, 0xc
movq xmm3, rax
paddq xmm3, xmmword [0x14022f630]
movsd xmm0, xmm3
sqrtsd xmm0, xmm0
paddq xmm0, xmmword [0x14022f640]
movq rax, xmm0
mov r10, rax
shr rax, 0x14
shr r10, 0x13
mov r9, r10
mov rsi, r10
and r9d, 1
shl rsi, 0x20
lea rdx, [rax + r9]
imul rdx, rax
add rdx, rsi
mov rsi, r11
sub rsi, rax
add rdi, rdx
xor eax, eax
cmp rdi, rsi
mov rsi, r12
setb al
add r9, rdx
cmp r11, r9
mov r9, r12
sbb eax, 0
xor r9, 0x10
xor rsi, 0x20
add r9, rbp
movsxd r11, eax
mov rax, rcx
movdqu xmm7, xmmword [r9]
add r11, r10
lea r10, [rbp + rsi]
mul rbx
movq xmm0, rdx
movq xmm6, rax
punpcklqdq xmm0, xmm6
pxor xmm0, xmm7
movups xmmword [r9], xmm0
xor rdx, qword [r10]
xor rax, qword [rbp + rsi + 8]
xor r12, 0x30
movdqu xmm4, xmmword [r9]
movdqu xmm3, xmmword [r10]
add r12, rbp
movdqu xmm0, xmmword [r12]
paddq xmm2, xmm0
movups xmmword [r9], xmm2
movdqa xmm2, xmm4
paddq xmm2, xmm1
movups xmmword [r10], xmm2
movdqu xmm2, xmmword [rsp + 0xd0]
paddq xmm2, xmm3
movups xmmword [r12], xmm2
cmp r13d, 3
jle 0x1400b2a27
pxor xmm0, xmmword [rsp + 0xe0]
pxor xmm3, xmm4
pxor xmm0, xmm3
movups xmmword [rsp + 0xe0], xmm0
mov r9, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
add r9, rdx
mov rdx, qword [rsp + 0x38]
movdqa xmm2, xmm1
mov qword [r15], r9
xor r9, rbx
add rax, rdi
mov qword [rsp + 0x20], r9
xor r8, rax
xor rdx, rax
cmp r13d, 1
cmove rax, rdx
mov qword [rsp + 0x28], r8
mov qword [r15 + 8], rax
movdqu xmm0, xmmword [rsp + 0xe0]
sub r14, 1
je 0x1400b406f
mov rax, r9
movdqu xmm0, xmmword [rsp + 0x20]
and eax, 0x1ffff0
lea rdx, [rbp + rax]
movdqu xmm3, xmmword [rdx]
movups xmmword [rsp + 0xd0], xmm0
aesenc xmm3, xmm0
movups xmmword [rsp + 0xe0], xmm3
cmp r13d, 1
jg 0x1400b2850
movdqa xmm0, xmm3
pxor xmm0, xmm1
movups xmmword [rdx], xmm0
movq rdx, xmm3
mov r15, rdx
and r15d, 0x1ffff0
add r15, rbp
cmp r13d, 1
jne 0x1400b5536
lea r10, [rbp + rax + 0xb]
movzx r8d, byte [r10]
mov ecx, r8d
mov eax, r8d
shr cl, 3
and eax, 1
and ecx, 6
or ecx, eax
mov eax, 0x75310
add ecx, ecx
shr eax, cl
and eax, 0x30
xor eax, r8d
mov byte [r10], al
mov rbx, qword [r15]
mov r8, qword [r15 + 8]
mov rax, rdx
mul rbx
jmp 0x1400b2a2c
pxor xmm3, xmmword [rsp + 0xe0]
movd xmm7, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x7c]
pxor xmm3, xmm5
movdqa xmm4, xmm3
movups xmmword [rsp + 0xe0], xmm3
pxor xmm4, xmm1
movups xmmword [rdx], xmm4
movd xmm4, dword [rsp + 0x20]
movq rdx, xmm3
movdqa xmm3, xmm1
punpckldq xmm3, xmm2
mov r12, rdx
mov ebx, dword [rsp + 0x11c]
add ebx, dword [rsp + 0x118]
punpckldq xmm4, xmm7
and r12d, 0x1ffff0
mov eax, dword [rsp + 0x114]
shl rbx, 0x20
punpcklqdq xmm4, xmm3
movdqa xmm3, xmm2
lea r15, [rbp + r12]
add eax, dword [rsp + 0x110]
punpckhdq xmm3, xmm2
mov r8, qword [r15 + 8]
or rbx, rax
xor rbx, qword [r15]
movups xmmword [rsp + 0x120], xmm4
movd dword [rsp + 0x130], xmm3
test ecx, ecx
je 0x1400b2c50
lea rcx, [0x140170260]
mov qword [rsp + 0x88], r11
lea rdi, [rsp + 0x110]
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x50], rdx
movups xmmword [rsp + 0x60], xmm1
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0x20], xmm0
call sym.__emutls_get_address
call qword [rax]
movdqu xmm0, xmmword [rsp + 0x20]
movdqu xmm2, xmmword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
movdqu xmm1, xmmword [rsp + 0x60]
mov r8, qword [rsp + 0x80]
mov r11, qword [rsp + 0x88]
movdqu xmm3, xmmword [rsp + 0x110]
mov r9, r12
mov r10, r12
mov rax, rdx
xor r9, 0x10
xor r10, 0x20
shufpd xmm3, xmm3, 1
pxor xmm3, xmm0
add r9, rbp
add r10, rbp
movups xmmword [rsp + 0x20], xmm3
mul rbx
jmp 0x1400b29cb
movzx eax, byte [rsp + 0x212]
lea r10, [0x14022e628]
movzx r9d, byte [rsp + 0x211]
mov ecx, dword [rsp + rax*4 + 0x110]
lea rax, [rsp + 0x110]
lea rsi, [rax + r9*4]
movzx r9d, byte [rsp + 0x210]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x21a]
movzx r9d, byte [rsp + 0x219]
cmp byte [rsp + 0x218], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x218]
lea r10, [0x14022e644]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b2c98
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b2c98
mov r9d, dword [rsp + 0x214]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b2c98
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b2c98
xor ecx, dword [rsi]
mov r9d, ecx
nop dword [rax]
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x222]
movzx r9d, byte [rsp + 0x221]
cmp byte [rsp + 0x220], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x220]
lea r10, [0x14022e660]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b2d18
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b2d18
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b2d18
mov r9d, dword [rsp + 0x21c]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b2d18
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b2d18
xor ecx, dword [rsi]
mov r9d, ecx
nop dword [rax]
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x22a]
movzx r9d, byte [rsp + 0x229]
cmp byte [rsp + 0x228], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x228]
lea r10, [0x14022e67c]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b2d98
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b2d98
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b2d98
mov r9d, dword [rsp + 0x224]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b2d98
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b2d98
xor ecx, dword [rsi]
mov r9d, ecx
nop dword [rax]
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x232]
movzx r9d, byte [rsp + 0x231]
cmp byte [rsp + 0x230], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x230]
lea r10, [0x14022e698]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b2e18
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b2e18
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b2e18
mov r9d, dword [rsp + 0x22c]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b2e18
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b2e18
xor ecx, dword [rsi]
mov r9d, ecx
nop dword [rax]
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x23a]
movzx r9d, byte [rsp + 0x239]
cmp byte [rsp + 0x238], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x238]
lea r10, [0x14022e6b4]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b2e98
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b2e98
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b2e98
mov r9d, dword [rsp + 0x234]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b2e98
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b2e98
xor ecx, dword [rsi]
mov r9d, ecx
nop dword [rax]
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x242]
movzx r9d, byte [rsp + 0x241]
cmp byte [rsp + 0x240], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x240]
lea r10, [0x14022e6d0]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b2f18
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b2f18
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b2f18
mov r9d, dword [rsp + 0x23c]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b2f18
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b2f18
xor ecx, dword [rsi]
mov r9d, ecx
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x24a]
movzx r9d, byte [rsp + 0x249]
cmp byte [rsp + 0x248], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x248]
lea r10, [0x14022e6ec]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b2f94
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b2f94
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b2f94
mov r9d, dword [rsp + 0x244]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b2f94
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b2f94
xor ecx, dword [rsi]
mov r9d, ecx
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x252]
movzx r9d, byte [rsp + 0x251]
cmp byte [rsp + 0x250], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x250]
lea r10, [0x14022e708]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b3010
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b3010
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b3010
mov r9d, dword [rsp + 0x24c]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b3010
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b3010
xor ecx, dword [rsi]
mov r9d, ecx
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x25a]
movzx r9d, byte [rsp + 0x259]
cmp byte [rsp + 0x258], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea rsi, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x258]
lea r10, [0x14022e724]
movsxd r9, dword [r10 + r9*4]
add r9, r10
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b308c
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b308c
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b308c
mov r9d, dword [rsp + 0x254]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b308c
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b308c
xor ecx, dword [rsi]
mov r9d, ecx
mov dword [rsi], r9d
movzx ecx, byte [rsp + 0x262]
movzx r9d, byte [rsp + 0x261]
cmp byte [rsp + 0x260], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r10, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x260]
lea rsi, [0x14022e740]
movsxd r9, dword [rsi + r9*4]
add r9, rsi
notrack jmp r9
mov r9d, dword [rsi]
rol r9d, cl
jmp 0x1400b3108
mov r9d, dword [rsi]
ror r9d, cl
jmp 0x1400b3108
mov r9d, dword [rsi]
sub r9d, ecx
jmp 0x1400b3108
mov r9d, dword [rsp + 0x25c]
add ecx, dword [rsi]
add r9d, ecx
jmp 0x1400b3108
imul ecx, dword [rsi]
mov r9d, ecx
jmp 0x1400b3108
xor ecx, dword [r10]
mov r9d, ecx
mov dword [r10], r9d
movzx ecx, byte [rsp + 0x26a]
movzx r9d, byte [rsp + 0x269]
cmp byte [rsp + 0x268], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r10, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x268]
lea rsi, [0x14022e75c]
movsxd r9, dword [rsi + r9*4]
add r9, rsi
notrack jmp r9
mov r9d, dword [r10]
rol r9d, cl
jmp 0x1400b3185
mov r9d, dword [r10]
ror r9d, cl
jmp 0x1400b3185
mov r9d, dword [r10]
sub r9d, ecx
jmp 0x1400b3185
mov r9d, dword [rsp + 0x264]
add ecx, dword [r10]
add r9d, ecx
jmp 0x1400b3185
imul ecx, dword [r10]
mov r9d, ecx
jmp 0x1400b3185
xor ecx, dword [r10]
mov r9d, ecx
mov dword [r10], r9d
movzx ecx, byte [rsp + 0x272]
movzx r9d, byte [rsp + 0x271]
cmp byte [rsp + 0x270], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r10, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x270]
lea rsi, [0x14022e778]
movsxd r9, dword [rsi + r9*4]
add r9, rsi
notrack jmp r9
mov r9d, dword [r10]
rol r9d, cl
jmp 0x1400b3204
mov r9d, dword [r10]
ror r9d, cl
jmp 0x1400b3204
mov r9d, dword [r10]
sub r9d, ecx
jmp 0x1400b3204
mov r9d, dword [rsp + 0x26c]
add ecx, dword [r10]
add r9d, ecx
jmp 0x1400b3204
imul ecx, dword [r10]
mov r9d, ecx
jmp 0x1400b3204
xor ecx, dword [r10]
mov r9d, ecx
mov dword [r10], r9d
movzx ecx, byte [rsp + 0x27a]
movzx r9d, byte [rsp + 0x279]
cmp byte [rsp + 0x278], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x278]
lea rsi, [0x14022e794]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
mov r9d, dword [r10]
rol r9d, cl
jmp 0x1400b3283
mov r9d, dword [r10]
ror r9d, cl
jmp 0x1400b3283
mov r9d, dword [r10]
sub r9d, ecx
jmp 0x1400b3283
mov r9d, dword [rsp + 0x274]
add ecx, dword [r10]
add r9d, ecx
jmp 0x1400b3283
imul ecx, dword [r10]
mov r9d, ecx
jmp 0x1400b3283
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x282]
movzx r9d, byte [rsp + 0x281]
cmp byte [rsp + 0x280], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r10, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r9d, byte [rsp + 0x280]
lea rsi, [0x14022e7b0]
movsxd r9, dword [rsi + r9*4]
add r9, rsi
notrack jmp r9
xor ecx, dword [r10]
mov r9d, ecx
mov dword [r10], r9d
movzx ecx, byte [rsp + 0x28a]
movzx r9d, byte [rsp + 0x289]
cmp byte [rsp + 0x288], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x288]
lea rsi, [0x14022e7cc]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
mov r9d, dword [r10]
rol r9d, cl
jmp 0x1400b3350
mov r9d, dword [r10]
ror r9d, cl
jmp 0x1400b3350
mov r9d, dword [r10]
sub r9d, ecx
jmp 0x1400b3350
mov r9d, dword [rsp + 0x284]
add ecx, dword [r10]
add r9d, ecx
jmp 0x1400b3350
imul ecx, dword [r10]
mov r9d, ecx
jmp 0x1400b3350
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b3302
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b3302
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b3302
mov r10d, dword [rsp + 0x27c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b3302
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b3302
lea rax, [rsp + 0xd0]
mov edi, 0x80000
mov qword [rsp + 0xb0], rsi
mov rsi, r14
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0xe0]
mov r14d, r13d
mov r13, rdi
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], r11
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0xb8], rbx
jmp 0x1400b369c
mov rdx, rbx
mov rax, rbx
xor rbx, 0x30
movdqu xmm2, xmmword [rsp + 0x50]
add rbx, rbp
xor rdx, 0x10
xor rax, 0x20
movdqu xmm4, xmmword [rbx]
add rdx, rbp
add rax, rbp
movdqu xmm3, xmmword [rdx]
movdqu xmm0, xmmword [rax]
movdqa xmm5, xmm4
paddq xmm5, xmm2
pxor xmm4, xmm3
paddq xmm3, xmm1
movups xmmword [rdx], xmm5
movups xmmword [rax], xmm3
movdqu xmm3, xmmword [rsp + 0xd0]
paddq xmm3, xmm0
movups xmmword [rbx], xmm3
cmp r14d, 3
jg 0x1400b3770
xor r12, 0x30
movdqu xmm4, xmmword [r9]
movdqu xmm3, xmmword [r10]
add r12, rbp
movdqu xmm0, xmmword [r12]
paddq xmm2, xmm0
movups xmmword [r9], xmm2
movdqa xmm2, xmm4
paddq xmm2, xmm1
movups xmmword [r10], xmm2
movdqu xmm2, xmmword [rsp + 0xd0]
paddq xmm2, xmm3
movups xmmword [r12], xmm2
cmp r14d, 3
jle 0x1400b364a
pxor xmm0, xmmword [rsp + 0xe0]
pxor xmm3, xmm4
pxor xmm0, xmm3
movups xmmword [rsp + 0xe0], xmm0
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
add rsi, rdx
mov rdx, qword [rsp + 0x38]
movdqa xmm2, xmm1
mov qword [r15], rsi
xor rsi, rbx
add rax, rdi
mov qword [rsp + 0x20], rsi
xor r8, rax
xor rdx, rax
cmp r14d, 1
cmove rax, rdx
mov qword [rsp + 0x28], r8
mov qword [r15 + 8], rax
movdqu xmm0, xmmword [rsp + 0xe0]
sub r13, 1
je 0x1400b4321
movdqa xmm1, xmm0
mov rbx, rsi
mov rcx, qword [rsp + 0x88]
movdqu xmm5, xmmword [rsp + 0x20]
movups xmmword [rsp + 0x40], xmm1
and ebx, 0x1ffff0
mov r8, qword [rsp + 0x80]
movups xmmword [rsp + 0x50], xmm2
lea rdi, [rbp + rbx]
mov rdx, rcx
movups xmmword [rsp + 0x60], xmm5
movdqu xmm6, xmmword [rdi]
movups xmmword [rsp + 0xd0], xmm5
movups xmmword [rsp + 0xe0], xmm6
call sym.aesb_single_round
cmp r14d, 1
movdqu xmm1, xmmword [rsp + 0x40]
jg 0x1400b3460
movdqu xmm0, xmmword [rsp + 0xe0]
movq rax, xmm0
movdqa xmm2, xmm0
mov r15, rax
pxor xmm2, xmm1
and r15d, 0x1ffff0
movups xmmword [rdi], xmm2
add r15, rbp
cmp r14d, 1
jne 0x1400b552a
movdqu xmm0, xmmword [rsp + 0x110]
mov r9, r12
mov r10, r12
mov rax, rdx
xor r9, 0x10
xor r10, 0x20
shufpd xmm0, xmm0, 1
pxor xmm0, xmmword [rsp + 0x60]
add r9, rbp
add r10, rbp
mul rbx
movups xmmword [rsp + 0x20], xmm0
jmp 0x1400b35ee
movdqu xmm1, xmmword [rsp + 0x180]
mov rcx, qword [rsp + 0xc8]
lea rdx, [rsp + 0x160]
mov r8d, 0x20
movdqu xmm5, xmmword [rsp + 0x190]
mov r15, qword [rsp + 0xa8]
mov rdi, r13
movups xmmword [rsp + 0x450], xmm1
mov rsi, qword [rsp + 0xb0]
movdqu xmm1, xmmword [rsp + 0x1a0]
movups xmmword [rsp + 0x460], xmm5
mov rbx, qword [rsp + 0xb8]
movdqu xmm5, xmmword [rsp + 0x1b0]
movups xmmword [rsp + 0x470], xmm1
movdqu xmm1, xmmword [rsp + 0x1c0]
movups xmmword [rsp + 0x480], xmm5
movdqu xmm5, xmmword [rsp + 0x1d0]
movups xmmword [rsp + 0x490], xmm1
movdqu xmm1, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0x4a0], xmm5
movdqu xmm5, xmmword [rsp + 0x1f0]
movups xmmword [rsp + 0x4b0], xmm1
movups xmmword [rsp + 0x4c0], xmm5
call sym.oaes_key_import_data
nop
mov r12, rsi
mov r13, rbp
nop word cs:[rax + rax]
mov rax, qword [r13]
xor qword [r12], rax
mov rdx, r12
mov rcx, r12
mov rax, qword [r13 + 8]
xor qword [r12 + 8], rax
add r12, 0x10
add r13, 0x10
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
call sym.aesb_pseudo_round
cmp r12, rbx
jne 0x1400b43f0
add rdi, 8
sub rbp, 0xffffffffffffff80
cmp rdi, 0x20000
jne 0x1400b43e0
cmp rdi, 0x2a
jbe 0x1400b5547
mov rax, qword [rsp + 0x200]
xor rax, qword [rsi + 0x23]
xor r11d, r11d
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x38], rax
mov eax, dword [0x1401702c8]
cmp eax, 0xffffffff
jne 0x1400b2526
lea rcx, str.LUNEXA_USE_CNV4_JIT
mov qword [rsp + 0x20], r11
call sym.getenv
mov r11, qword [rsp + 0x20]
test rax, rax
je 0x1400b44b4
cmp byte [rax], 0x30
je 0x1400b4678
cmp byte [rax], 0x6e
jne 0x1400b44b4
cmp byte [rax + 1], 0x6f
je 0x1400b5500
mov dword [0x1401702c8], 1
jmp 0x1400b2526
lea rcx, str.LUNEXA_USE_SOFTWARE_AES
call sym.getenv
test rax, rax
je 0x1400b44e7
cmp byte [rax], 0x30
jne 0x1400b4860
cmp byte [rax + 1], 0
jne 0x1400b4860
mov dword [0x1401702c4], 0
mov eax, dword [0x1401702c0]
test eax, eax
jns 0x1400b4511
mov eax, 1
xor ecx, ecx
cpuid
mov eax, ecx
and eax, 0x2000000
mov dword [0x1401702c0], eax
test eax, eax
setne al
movzx eax, al
mov dword [rsp + 0x40], eax
jmp 0x1400b23ff
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x292]
movzx r9d, byte [rsp + 0x291]
cmp byte [rsp + 0x290], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x290]
lea rsi, [0x14022e9c4]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b45a7
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b45a7
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b45a7
mov r10d, dword [rsp + 0x28c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b45a7
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b45a7
lea rcx, [0x140170260]
call sym.__emutls_get_address
mov r8d, 0x1000
mov rcx, rbx
mov rdx, qword [rax]
call sym.v4_generate_JIT_code
mov r11, qword [rsp + 0x20]
test eax, eax
jns 0x1400b2577
mov ecx, 2
call qword [dbg.__acrt_iob_func]
lea r8, str.Error_generating_CryptonightR_code
lea rdx, [0x14022e623]
mov rcx, rax
call sym.fprintf_1
mov ecx, 1
call sym._exit
nop dword [rax]
cmp byte [rax + 1], 0
jne 0x1400b44a5
mov dword [0x1401702c8], 0
jmp 0x1400b2526
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x29a]
movzx r9d, byte [rsp + 0x299]
cmp byte [rsp + 0x298], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x298]
lea rsi, [0x14022ea18]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x2a2]
movzx r9d, byte [rsp + 0x2a1]
cmp byte [rsp + 0x2a0], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x2a0]
lea rsi, [0x14022ea34]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b47dc
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b47dc
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b47dc
mov r10d, dword [rsp + 0x29c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b47dc
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b47dc
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b478e
cmp byte [rax], 0x6e
jne 0x1400b486f
cmp byte [rax + 1], 0x6f
je 0x1400b54ef
mov dword [0x1401702c4], 1
jmp 0x1400b23f7
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b478e
mov r10d, dword [rsp + 0x294]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b478e
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b478e
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b478e
mov r10d, dword [r9]
ror r10d, cl
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x2aa]
movzx r9d, byte [rsp + 0x2a9]
cmp byte [rsp + 0x2a8], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x2a8]
lea rsi, [0x14022ea50]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x2b2]
movzx r9d, byte [rsp + 0x2b1]
cmp byte [rsp + 0x2b0], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x2b0]
lea rsi, [0x14022ea6c]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x2ba]
movzx r9d, byte [rsp + 0x2b9]
cmp byte [rsp + 0x2b8], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x2b8]
lea rsi, [0x14022ea88]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x2c2]
movzx r9d, byte [rsp + 0x2c1]
cmp byte [rsp + 0x2c0], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x2c0]
lea rsi, [0x14022eaa4]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b49b9
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b49b9
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b49b9
mov r10d, dword [rsp + 0x2bc]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b49b9
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b49b9
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b496b
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b496b
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b496b
mov r10d, dword [rsp + 0x2b4]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b496b
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b496b
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b491d
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b491d
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b491d
mov r10d, dword [rsp + 0x2ac]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b491d
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b491d
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b48cf
mov r10d, dword [rsp + 0x2a4]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b48cf
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b48cf
xor ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b48cf
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b48cf
mov r10d, dword [rsp + 0x2c4]
add ecx, dword [r9]
add r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x2ca]
movzx r9d, byte [rsp + 0x2c9]
cmp byte [rsp + 0x2c8], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x2c8]
lea rsi, [0x14022eb68]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x2d2]
movzx r9d, byte [rsp + 0x2d1]
cmp byte [rsp + 0x2d0], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x2d0]
lea rsi, [0x14022eb84]
movsxd r10, dword [rsi + r10*4]
add r10, rsi
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b4e84
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b4e84
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b4e84
mov r10d, dword [rsp + 0x2cc]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b4e84
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b4e84
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b4e36
xor ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b4e36
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b4e36
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b4e36
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b4e36
call sym.cn_slow_hash_allocate_state.part.0
mov rbp, qword [rbx]
jmp 0x1400b241a
mov eax, dword [0x1401702c8]
cmp eax, 0xffffffff
je 0x1400b5510
mov eax, dword [0x1401702c8]
xor r11d, r11d
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x7c], eax
jmp 0x1400b2577
cmp byte [rax + 2], 0
je 0x1400b44e7
jmp 0x1400b486f
cmp byte [rax + 2], 0
je 0x1400b4682
jmp 0x1400b44b4
mov qword [rsp + 0x70], 0
xor r11d, r11d
mov qword [rsp + 0x38], 0
jmp 0x1400b4481
mov rbx, qword [r15]
mov r8, qword [r15 + 8]
jmp 0x1400b2b09
mov ecx, 2
call qword [dbg.__acrt_iob_func]
lea rdx, str.Cryptonight_variant_1_needs_at_least_43_bytes_of_data
mov rcx, rax
call sym.fprintf_1
mov ecx, 1
call sym._exit
nop dword [rax + rax]
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x302]
movzx r9d, byte [rsp + 0x301]
cmp byte [rsp + 0x300], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x300]
lea r11, [0x14022ecb8]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
ror r10d, cl
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x30a]
movzx r9d, byte [rsp + 0x309]
cmp byte [rsp + 0x308], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x308]
lea r11, [0x14022ecf0]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5622
mov r10d, dword [rsp + 0x304]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5622
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5622
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x312]
movzx r9d, byte [rsp + 0x311]
cmp byte [rsp + 0x310], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x310]
lea r11, [0x14022ed0c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5691
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x31a]
movzx r9d, byte [rsp + 0x319]
cmp byte [rsp + 0x318], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x318]
lea r11, [0x14022ed28]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b56e7
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x322]
movzx r9d, byte [rsp + 0x321]
cmp byte [rsp + 0x320], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x320]
lea r11, [0x14022ed44]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b573d
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x32a]
movzx r9d, byte [rsp + 0x329]
cmp byte [rsp + 0x328], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x328]
lea r11, [0x14022ed60]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5793
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x332]
movzx r9d, byte [rsp + 0x331]
cmp byte [rsp + 0x330], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x330]
lea r11, [0x14022ed7c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b57e9
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x33a]
movzx r9d, byte [rsp + 0x339]
cmp byte [rsp + 0x338], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x338]
lea r11, [0x14022ed98]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b583f
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x342]
movzx r9d, byte [rsp + 0x341]
cmp byte [rsp + 0x340], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x340]
lea r11, [0x14022edb4]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5895
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x34a]
movzx r9d, byte [rsp + 0x349]
cmp byte [rsp + 0x348], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x348]
lea r11, [0x14022edd0]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b58eb
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x352]
movzx r9d, byte [rsp + 0x351]
cmp byte [rsp + 0x350], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x350]
lea r11, [0x14022edec]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5941
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x35a]
movzx r9d, byte [rsp + 0x359]
cmp byte [rsp + 0x358], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x358]
lea r11, [0x14022ee08]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5997
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x362]
movzx r9d, byte [rsp + 0x361]
cmp byte [rsp + 0x360], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x360]
lea r11, [0x14022ee24]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b59ed
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x36a]
movzx r9d, byte [rsp + 0x369]
cmp byte [rsp + 0x368], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x368]
lea r11, [0x14022ee40]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5a43
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x372]
movzx r9d, byte [rsp + 0x371]
cmp byte [rsp + 0x370], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x370]
lea r11, [0x14022ee5c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5a99
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x37a]
movzx r9d, byte [rsp + 0x379]
cmp byte [rsp + 0x378], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x378]
lea r11, [0x14022ee78]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5aef
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x382]
movzx r9d, byte [rsp + 0x381]
cmp byte [rsp + 0x380], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x380]
lea r11, [0x14022ee94]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5b45
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x38a]
movzx r9d, byte [rsp + 0x389]
cmp byte [rsp + 0x388], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x388]
lea r11, [0x14022eeb0]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5b9b
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x392]
movzx r9d, byte [rsp + 0x391]
cmp byte [rsp + 0x390], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x390]
lea r11, [0x14022eecc]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5bf1
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x39a]
movzx r9d, byte [rsp + 0x399]
cmp byte [rsp + 0x398], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x398]
lea r11, [0x14022eee8]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5c47
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x3a2]
movzx r9d, byte [rsp + 0x3a1]
cmp byte [rsp + 0x3a0], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x3a0]
lea r11, [0x14022ef04]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5c9d
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x3aa]
movzx r9d, byte [rsp + 0x3a9]
cmp byte [rsp + 0x3a8], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x3a8]
lea r11, [0x14022ef20]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5cf3
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x3b2]
movzx r9d, byte [rsp + 0x3b1]
cmp byte [rsp + 0x3b0], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x3b0]
lea r11, [0x14022ef3c]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5d49
xor ecx, dword [r9]
mov r10d, ecx
mov dword [r9], r10d
movzx ecx, byte [rsp + 0x3ba]
movzx r9d, byte [rsp + 0x3b9]
cmp byte [rsp + 0x3b8], 6
mov ecx, dword [rsp + rcx*4 + 0x110]
lea r9, [rax + r9*4]
ja sym.cn_slow_hash.cold
movzx r10d, byte [rsp + 0x3b8]
lea r11, [0x14022ef58]
movsxd r10, dword [r11 + r10*4]
add r10, r11
notrack jmp r10
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5d9f
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5d9f
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5d9f
mov r10d, dword [rsp + 0x3b4]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5d9f
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5d9f
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5d49
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5d49
mov r10d, dword [rsp + 0x3ac]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5d49
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5d49
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5cf3
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5cf3
mov r10d, dword [rsp + 0x3a4]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5cf3
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5cf3
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5c9d
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5c9d
mov r10d, dword [rsp + 0x39c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5c9d
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5c9d
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5c47
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5c47
mov r10d, dword [rsp + 0x394]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5c47
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5c47
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5bf1
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5bf1
mov r10d, dword [rsp + 0x38c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5bf1
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5bf1
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5b9b
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5b9b
mov r10d, dword [rsp + 0x384]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5b9b
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5b9b
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5b45
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5b45
mov r10d, dword [rsp + 0x37c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5b45
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5b45
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5aef
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5aef
mov r10d, dword [rsp + 0x374]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5aef
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5aef
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5a99
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5a99
mov r10d, dword [rsp + 0x36c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5a99
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5a99
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5a43
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5a43
mov r10d, dword [rsp + 0x364]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5a43
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5a43
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b59ed
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b59ed
mov r10d, dword [rsp + 0x35c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b59ed
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b59ed
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5997
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5997
mov r10d, dword [rsp + 0x354]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5997
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5997
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5941
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5941
mov r10d, dword [rsp + 0x34c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5941
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5941
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b58eb
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b58eb
mov r10d, dword [rsp + 0x344]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b58eb
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b58eb
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5895
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5895
mov r10d, dword [rsp + 0x33c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5895
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5895
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b583f
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b583f
mov r10d, dword [rsp + 0x334]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b583f
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b583f
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b57e9
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b57e9
mov r10d, dword [rsp + 0x32c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b57e9
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b57e9
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5793
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5793
mov r10d, dword [rsp + 0x324]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5793
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5793
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b573d
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b573d
mov r10d, dword [rsp + 0x31c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b573d
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b573d
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b56e7
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b56e7
mov r10d, dword [rsp + 0x314]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b56e7
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b56e7
mov r10d, dword [r9]
ror r10d, cl
jmp 0x1400b5691
mov r10d, dword [r9]
sub r10d, ecx
jmp 0x1400b5691
mov r10d, dword [rsp + 0x30c]
add ecx, dword [r9]
add r10d, ecx
jmp 0x1400b5691
imul ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5691
xor ecx, dword [r9]
mov r10d, ecx
jmp 0x1400b5622
mov r10d, dword [r9]
rol r10d, cl
jmp 0x1400b5622