Function at 0x140450a40
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2f8
mov qword [rsp + 0x358], r9
mov r13, rcx
cmp rdx, r8
je 0x140450dc8
mov rsi, qword [rsp + 0x360]
movzx r14d, byte [rdx]
mov qword [rsp + 0xc8], 0
mov r10, rdx
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
shl rsi, 0x18
mov qword [rsp + 0xc0], 0
sar rsi, 0x38
cmp r14b, 0x2d
sete r12b
mov byte [rsp + 0x28], sil
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
mov byte [rsp + 0xc8], r12b
je 0x140450c18
mov rax, r10
xor r9d, r9d
jmp 0x140450b23
sub ecx, 0x30
lea r9, [r9 + r9*4]
add rax, 1
movsxd rcx, ecx
lea r9, [rcx + r9*2]
cmp r8, rax
je 0x140450d28
movsx ecx, byte [rax]
lea ebx, [rcx - 0x30]
cmp bl, 9
jbe 0x140450b08
mov rbp, rax
mov qword [rsp + 0xd0], r10
sub rbp, r10
mov qword [rsp + 0xd8], rbp
cmp r8, rax
je 0x140450d3e
cmp sil, cl
je 0x140450ee0
mov qword [rsp + 0x30], 0
mov rbx, rax
xor ecx, ecx
xor r11d, r11d
test rbp, rbp
je 0x140450e00
cmp r8, rbx
setne sil
and sil, byte [rsp + 0x360]
mov r15d, esi
je 0x140450d5b
movzx esi, byte [rbx]
and esi, 0xffffffdf
cmp sil, 0x45
jne 0x140450d5b
lea rsi, [rbx + 1]
cmp r8, rsi
je 0x140450de9
movzx edi, byte [rbx + 1]
cmp dil, 0x2d
je 0x140451af7
xor r15d, r15d
cmp dil, 0x2b
je 0x140451af7
sub edi, 0x30
cmp dil, 9
ja 0x140450de9
xor edx, edx
lea rdx, [rdx + rdx*4]
movzx edi, dil
lea rdx, [rdi + rdx*2]
cmp rdx, 0xfffffff
jle 0x1404516b8
add rsi, 1
cmp r8, rsi
je 0x140450bfc
movzx edi, byte [rsi]
lea ebx, [rdi - 0x30]
cmp bl, 9
jbe 0x140450be8
mov rbx, rdx
neg rbx
test r15b, r15b
cmovne rdx, rbx
mov rbx, rsi
add r11, rdx
jmp 0x140450d70
lea r10, [rdx + 1]
cmp r8, r10
je 0x140450c3a
movzx eax, byte [rdx + 1]
lea ecx, [rax - 0x30]
cmp cl, 9
jbe 0x140450af9
cmp al, sil
je 0x140450af9
mov dword [r13 + 0xc], 0
mov qword [r13], rdx
mov dword [r13 + 8], 0
mov rdx, r10
mov r9, r8
mov ebx, 1
sub r9, rdx
cmp r9, 2
jle 0x140450e30
movzx esi, byte [rdx]
movzx ecx, byte [rdx + 1]
movzx eax, byte [rdx + 2]
mov r10d, ecx
mov r11d, esi
xor r10d, 0x61
xor r11d, 0x6e
or r11d, r10d
mov r10d, eax
xor r10d, 0x6e
or r10d, r11d
and r10d, 0xdf
jne 0x1404513d8
lea rax, [rdx + 3]
movsd xmm0, qword [0x140566288]
mov qword [r13], rax
test bl, bl
je 0x14045164f
mov rdi, qword [rsp + 0x358]
movsd qword [rdi], xmm0
cmp r8, rax
je 0x140450dd2
cmp byte [rdx + 3], 0x28
jne 0x140450dd2
add rdx, 4
cmp r8, rdx
jne 0x140450d0d
jmp 0x140450dd2
mov eax, ecx
and eax, 0xffffffdf
sub eax, 0x41
cmp al, 0x19
jbe 0x140450d00
lea eax, [rcx - 0x30]
cmp al, 9
jbe 0x140450d00
cmp cl, 0x5f
jne 0x140450dd2
nop dword [rax]
add rdx, 1
cmp r8, rdx
je 0x140450dd2
movzx ecx, byte [rdx]
cmp cl, 0x29
jne 0x140450ce0
add rdx, 1
mov qword [r13], rdx
jmp 0x140450dd2
mov rbp, r8
mov qword [rsp + 0xd0], r10
sub rbp, r10
mov qword [rsp + 0xd8], rbp
test rbp, rbp
je 0x140450e00
mov qword [rsp + 0x30], 0
mov rbx, rax
xor ecx, ecx
mov rax, r8
xor r11d, r11d
mov esi, dword [rsp + 0x360]
and esi, 3
cmp esi, 1
je 0x140450e00
xor edx, edx
mov qword [rsp + 0xc0], rbx
mov byte [rsp + 0xc9], 1
cmp rbp, 0x13
jle 0x140450e4a
cmp r8, r10
je 0x140451457
movzx r15d, byte [rsp + 0x28]
mov rsi, r10
jmp 0x140450db6
cmp r15b, dil
jne 0x140450e40
add rsi, 1
cmp r8, rsi
je 0x140450e40
movzx edi, byte [rsi]
cmp dil, 0x30
jne 0x140450da0
sub rbp, 1
jmp 0x140450da9
mov qword [rcx], rdx
mov dword [rcx + 8], 0x16
mov rax, r13
add rsp, 0x2f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test byte [rsp + 0x360], 2
jne 0x140450d6e
nop word [rax + rax]
mov dword [r13 + 0xc], 0
mov qword [r13], rdx
mov dword [r13 + 8], 0
cmp r14b, 0x2d
je 0x1404517a7
mov r9, r8
xor ebx, ebx
sub r9, rdx
cmp r9, 2
jg 0x140450c66
mov dword [r13 + 8], 0x16
jmp 0x140450dd2
cmp rbp, 0x13
jg 0x140451457
lea rax, [r11 + 0x16]
mov qword [rsp + 0xb0], r11
mov qword [rsp + 0xb8], r9
cmp rax, 0x2c
jbe 0x140450ff0
cmp r11, 0xfffffffffffffeaa
setl al
test r9, r9
sete dl
or al, dl
mov byte [rsp + 0x38], al
je 0x1404516da
mov rdi, qword [rsp + 0x358]
mov rax, r12
shl rax, 0x3f
mov qword [rdi], rax
test r9, r9
jne 0x140450ed8
xor eax, eax
mov qword [r13], rbx
mov dword [r13 + 8], eax
jmp 0x140450dd2
cmp byte [rsp + 0x38], 0
je 0x140451cab
mov rax, r9
add rax, 1
jne 0x140451502
mov rdi, qword [rsp + 0x358]
mov rax, r12
shl rax, 0x3f
mov qword [rdi], rax
nop dword [rax]
mov eax, 0x22
jmp 0x140450e9d
lea rbx, [rax + 1]
mov rcx, r8
sub rcx, rbx
mov qword [rsp + 0x30], rbx
cmp rcx, 7
jle 0x140450fba
movabs rsi, 0xcfcfcfcfcfcfcfd0
mov qword [rsp + 0x38], rax
movabs rdi, 0x4646464646464646
movabs r11, 0xff000000ff
jmp 0x140450f76
imul r15, r9, 0x5f5e100
lea r9, [rcx + rcx*4]
shr rcx, 8
add rbx, 8
movabs rax, 0x271000000001
lea r9, [rcx + r9*2]
mov rcx, r9
and r9, r11
shr rcx, 0x10
and rcx, r11
imul rcx, rax
movabs rax, 0xf424000000064
imul r9, rax
add r9, rcx
mov rcx, r8
shr r9, 0x20
sub rcx, rbx
add r9, r15
cmp rcx, 7
jle 0x140450f92
movabs rax, 0x8080808080808080
mov r15, qword [rbx]
lea rcx, [r15 + rsi]
add r15, rdi
or r15, rcx
test r15, rax
je 0x140450f20
mov rax, qword [rsp + 0x38]
cmp r8, rbx
je 0x140450fbf
nop dword [rax]
movzx edi, byte [rbx]
lea ecx, [rdi - 0x30]
cmp cl, 9
ja 0x140450fbf
lea r9, [r9 + r9*4]
movzx ecx, cl
add rbx, 1
lea r9, [rcx + r9*2]
cmp r8, rbx
jne 0x140450fa0
mov rdi, qword [rsp + 0x30]
mov rcx, rbx
mov r11, rdi
sub rcx, rdi
mov qword [rsp + 0xe0], rdi
sub r11, rbx
mov qword [rsp + 0xe8], rcx
sub rbp, r11
jmp 0x140450b67
movss xmm1, dword [0x14054ec00]
movss xmm0, dword [0x140566298]
movups xmm2, xmm1
addss xmm2, xmm0
subss xmm0, xmm1
ucomiss xmm2, xmm0
jp 0x140451370
jne 0x140451370
movabs rax, 0x20000000000000
cmp r9, rax
jbe 0x140451628
mov byte [rsp + 0x38], 0
bsr rcx, r9
mov rax, r9
lea r14, [0x14061cf00]
xor rcx, 0x3f
shl rax, cl
mov r10d, ecx
mov rcx, rax
lea eax, [r11 + 0x156]
lea r15d, [rax + rax]
mov dword [rsp + 0x30], eax
movsxd rax, r15d
mov rax, qword [r14 + rax*8]
mov qword [rsp + 0x28], rax
mul rcx
mov rsi, rax
mov rax, rdx
mov rdi, rdx
and eax, 0x1ff
cmp rax, 0x1ff
jne 0x1404510a0
lea eax, [r15 + 1]
movsxd r8, eax
mov rax, rcx
mul qword [r14 + r8*8]
add rsi, rdx
setb dl
movzx edx, dl
cmp rdx, 1
sbb rdi, 0xffffffffffffffff
imul ebp, r11d, 0x3526a
mov rdx, rdi
mov rax, rdi
mov r8d, r11d
shr rdx, 0x3f
lea ecx, [rdx + 9]
sar ebp, 0x10
shr rax, cl
lea edx, [rbp + rdx + 0x3f]
sub edx, r10d
lea r10d, [rdx + 0x3ff]
test r10d, r10d
jle 0x14045170b
cmp rsi, 1
jbe 0x140451ac0
lea rsi, [rax + 1]
movabs rax, 0x1fffffffffffff
shr rsi, 1
cmp rsi, rax
ja 0x140451a7c
btr rsi, 0x34
cmp r10d, 0x7fe
jle 0x14045173a
cmp byte [rsp + 0x38], 0
je 0x1404516e7
mov rax, r9
add rax, 1
jne 0x140451c30
lea r15d, [r11 + r11 + 0x2ac]
lea r14, [0x14061cf00]
mov r8d, r11d
mov r9, 0xffffffffffffffff
movsxd rax, r15d
imul ebp, r11d, 0x3526a
mov rax, qword [r14 + rax*8]
mov qword [rsp + 0x28], rax
sar ebp, 0x10
bsr rcx, r9
mov rax, r9
xor rcx, 0x3f
shl rax, cl
mov edi, ecx
mov rcx, rax
mov rax, qword [rsp + 0x28]
mul rcx
mov r10, rax
mov rax, rdx
mov rsi, rdx
and eax, 0x1ff
cmp rax, 0x1ff
jne 0x14045119a
lea eax, [r15 + 1]
movsxd r15, eax
mov rax, rcx
mul qword [r14 + r15*8]
mov rax, rdx
add rax, r10
adc rsi, 0
mov rcx, rsi
add ebp, 0x472
shr rcx, 0x3f
xor ecx, 1
sub ebp, ecx
shl rsi, cl
sub ebp, edi
mov r10d, ebp
sub r10d, 0x803e
jns 0x140451670
movabs r10, 0x346dc5d63886594b
mov rdx, r9
cmp r9, 0x270f
jbe 0x1404511fd
nop word [rax + rax]
mov rax, rdx
mov rcx, rdx
add r8d, 4
mul r10
shr rdx, 0xb
cmp rcx, 0x5f5e0ff
ja 0x1404511e0
mov r9, rdx
cmp r9, 0x63
jbe 0x140451222
shr r9, 2
add r8d, 2
movabs rdx, 0x28f5c28f5c28f5c3
mov rax, r9
mul rdx
shr rdx, 2
mov r9, rdx
xor r14d, r14d
cmp r9, 9
lea rdi, [rsp + 0xf0]
mov ecx, 0x3f
seta r14b
xor eax, eax
lea r12, [rsp + 0xf0]
mov qword [rsp + 0xa8], 0
rep stosq qword [rdi], rax
lea r14d, [r8 + r14 + 1]
mov rcx, r12
lea rdx, [rsp + 0xb0]
lea r9, [rsp + 0xa8]
mov r8d, 0x301
mov edi, r14d
call fcn.140450020
sub edi, dword [rsp + 0xa8]
js 0x140451760
mov esi, edi
lea r14, [0x14061cde0]
lea rbp, [rsp + 0x90]
cmp edi, 0x86
jg 0x1404512ba
jmp 0x1404517b0
sub esi, 0x87
cmp esi, 0x86
jbe 0x1404517b0
mov rdx, rbp
mov rcx, r12
mov qword [rsp + 0x90], r14
mov qword [rsp + 0x98], 5
call fcn.140452620
test al, al
jne 0x1404512a8
movzx r8d, word [rsp + 0x2e0]
mov r9, r8
movzx r9d, r9w
shl r9d, 6
test r8, r8
jne 0x1404519e6
lea r10d, [r9 + 0x3fe]
xor esi, esi
btr rsi, 0x34
cmp r10d, 0x7fe
jg 0x140451a60
mov rax, r10
shl rax, 0x34
test rsi, rsi
sete cl
movzx r12d, byte [rsp + 0xc8]
mov r9, qword [rsp + 0xb8]
mov rdx, r12
or rsi, rax
mov rax, qword [rsp + 0x358]
shl rdx, 0x3f
or rsi, rdx
mov qword [rax], rsi
test r9, r9
je 0x140451358
test cl, cl
jne 0x1404516a6
cmp r10d, 0x7ff
jne 0x140450e9b
jmp 0x140450ed8
test r11, r11
js 0x14045165c
lea rax, [0x14061f7c0]
cmp qword [rax + r11*8], r9
jb 0x14045165c
test r9, r9
js 0x140451d02
pxor xmm0, xmm0
cvtsi2sd xmm0, r9
lea rax, [0x14061f880]
mulsd xmm0, qword [rax + r11*8]
cmp r14b, 0x2d
jne 0x1404513b7
xorpd xmm0, xmmword [0x1405662a0]
mov rax, qword [rsp + 0x358]
mov qword [r13], rbx
mov dword [r13 + 8], 0
movsd qword [rax], xmm0
jmp 0x140450dd2
xor ecx, 0x6e
xor esi, 0x69
xor eax, 0x66
or ecx, esi
or eax, ecx
test al, 0xdf
jne 0x140450e30
cmp r9, 7
jle 0x140451ba9
movzx ecx, byte [rdx + 4]
movzx eax, byte [rdx + 3]
xor ecx, 0x6e
xor eax, 0x69
or eax, ecx
movzx ecx, byte [rdx + 5]
xor ecx, 0x69
or ecx, eax
movzx eax, byte [rdx + 6]
xor eax, 0x74
or ecx, eax
movzx eax, byte [rdx + 7]
xor eax, 0x79
or eax, ecx
test al, 0xdf
jne 0x140451ba9
add rdx, 8
mov qword [r13], rdx
movsd xmm0, qword [0x140566290]
test bl, bl
jne 0x140451446
movsd xmm0, qword [0x140566278]
mov rax, qword [rsp + 0x358]
movsd qword [rax], xmm0
jmp 0x140450dd2
mov byte [rsp + 0xca], 1
xor r9d, r9d
cmp r10, rax
je 0x140451b0d
movabs r11, 0xde0b6b3a763ffff
nop dword [rax]
movsx r8d, byte [r10]
lea r9, [r9 + r9*4]
add r10, 1
sub r8d, 0x30
movsxd r8, r8d
lea r9, [r8 + r9*2]
cmp r9, r11
ja 0x140451499
cmp r10, rax
jne 0x140451478
movabs r8, 0xde0b6b3a763ffff
cmp r9, r8
jbe 0x140451b0d
sub rax, r10
mov qword [rsp + 0xb8], r9
lea r11, [rax + rdx]
mov qword [rsp + 0xb0], r11
cmp r11, 0xfffffffffffffeaa
setl dl
test r9, r9
je 0x1404514da
test dl, dl
je 0x140451d75
lea rax, [r9 + 1]
cmp r9, 0xffffffffffffffff
je 0x140450e84
test dl, dl
jne 0x140450e84
lea edi, [r11 + 0x156]
lea r14, [0x14061cf00]
mov dword [rsp + 0x30], edi
cmp r11, 0x134
jg 0x140451d4b
xor r10d, r10d
xor esi, esi
bsr rcx, rax
xor rcx, 0x3f
shl rax, cl
mov dword [rsp + 0x4c], ecx
mov rcx, rax
mov eax, dword [rsp + 0x30]
lea r15d, [rax + rax]
movsxd rax, r15d
mov rax, qword [r14 + rax*8]
mov qword [rsp + 0x28], rax
mul rcx
mov qword [rsp + 0x40], rax
mov rax, rdx
mov rdi, rdx
and eax, 0x1ff
cmp rax, 0x1ff
jne 0x14045157e
lea eax, [r15 + 1]
movsxd r8, eax
mov rax, rcx
mov rcx, qword [rsp + 0x40]
mul qword [r14 + r8*8]
add rcx, rdx
setb dl
mov qword [rsp + 0x40], rcx
movzx edx, dl
cmp rdx, 1
sbb rdi, 0xffffffffffffffff
imul ebp, r11d, 0x3526a
mov rax, rdi
mov rdx, rdi
mov r8d, r11d
shr rax, 0x3f
lea ecx, [rax + 9]
sar ebp, 0x10
shr rdx, cl
lea eax, [rbp + rax + 0x3f]
sub eax, dword [rsp + 0x4c]
mov qword [rsp + 0x38], rdx
lea edx, [rax + 0x3ff]
mov dword [rsp + 0x4c], eax
test edx, edx
jle 0x140451b6f
cmp qword [rsp + 0x40], 1
jbe 0x140451c5c
movabs rdi, 0x1fffffffffffff
mov rcx, qword [rsp + 0x38]
add rcx, 1
shr rcx, 1
cmp rcx, rdi
ja 0x140451c07
mov rax, rcx
btr rax, 0x34
cmp edx, 0x7fe
jle 0x140451600
mov edx, 0x7ff
xor eax, eax
nop dword [rax]
cmp rax, rsi
jne 0x140451151
cmp edx, r10d
jne 0x140451d4b
mov rax, r10
shl rax, 0x34
test rsi, rsi
sete cl
jmp 0x140451333
pxor xmm0, xmm0
cvtsi2sd xmm0, r9
test r11, r11
jns 0x14045139c
neg r11
lea rax, [0x14061f880]
divsd xmm0, qword [rax + r11*8]
jmp 0x1404513a9
movsd xmm0, qword [0x140566280]
jmp 0x140450cb1
test r9, r9
je 0x140450e84
jmp 0x14045102d
mov rax, r10
shl rax, 0x34
test rsi, rsi
sete dl
or rsi, rax
mov rax, r12
shl rax, 0x3f
or rsi, rax
mov rax, qword [rsp + 0x358]
mov qword [rax], rsi
test r9, r9
je 0x140450e9b
test dl, dl
je 0x140450e9b
test r10d, r10d
jne 0x140451358
jmp 0x140450ed8
add rsi, 1
cmp r8, rsi
je 0x140450bfc
movzx edi, byte [rsi]
sub edi, 0x30
cmp dil, 9
jbe 0x140450bcf
jmp 0x140450bfc
cmp r11, 0x134
jle 0x140451032
mov rax, r12
mov rdi, qword [rsp + 0x358]
movabs rdx, 0x7ff0000000000000
shl rax, 0x3f
or rax, rdx
mov qword [rdi], rax
jmp 0x140450ed8
mov ecx, 1
sub ecx, r10d
cmp ecx, 0x3f
jg 0x140450eaa
shr rax, cl
xor r10d, r10d
lea rsi, [rax + 1]
movabs rax, 0xfffffffffffff
shr rsi, 1
cmp rsi, rax
seta r10b
cmp byte [rsp + 0x38], 0
je 0x140451670
mov rax, r9
add rax, 1
jne 0x140451514
mov r9, 0xffffffffffffffff
xor edx, edx
jmp 0x140451600
sub ebp, 0x3e
mov r9d, edi
lea r8, [rsp + 0x70]
mov rdx, r12
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rbp
call fcn.140451d90
mov rax, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov r10d, eax
shl rax, 0x34
test rsi, rsi
sete cl
jmp 0x140451322
lea r10, [rdx + 1]
jmp 0x140450c4e
movzx r9d, word [rsp + 0x2e0]
cmp esi, 0x1a
jbe 0x140451863
mov qword [rsp + 0x28], rbx
mov r14d, r9d
xor r15d, r15d
mov ebp, r9d
movabs r11, 0x6765c793fa10079d
mov dword [rsp + 0x30], edi
movzx edi, r14w
test rdi, rdi
je 0x140451ca3
mov rcx, r12
lea rbx, [r12 + rdi*8]
xor r10d, r10d
nop dword [rax]
mov rax, r11
mul qword [rcx]
xor r9d, r9d
add rax, r10
adc rdx, r9
mov qword [rcx], rax
add rcx, 8
mov r10, rdx
cmp rbx, rcx
jne 0x1404517f8
test rdx, rdx
je 0x14045183c
cmp r14w, 0x3d
ja 0x1404519c0
movzx eax, r14w
mov r15d, 1
add r14d, 1
mov qword [rsp + rax*8 + 0xf0], rdx
sub esi, 0x1b
cmp esi, 0x1a
ja 0x1404517de
mov rbx, qword [rsp + 0x28]
mov edi, dword [rsp + 0x30]
movzx r9d, bp
test r15b, r15b
je 0x140451863
mov word [rsp + 0x2e0], r14w
movzx r9d, r14w
movzx r8d, r9w
test esi, esi
je 0x140451a8a
lea rax, [0x14061ce20]
mov r11, qword [rax + rsi*8]
test r8, r8
je 0x140451a8a
mov rcx, r12
lea r10, [r12 + r8*8]
xor esi, esi
mov rax, r11
mul qword [rcx]
xor r15d, r15d
add rax, rsi
adc rdx, r15
mov qword [rcx], rax
add rcx, 8
mov rsi, rdx
cmp rcx, r10
jne 0x14045188c
test rdx, rdx
je 0x140451a8a
cmp r9w, 0x3d
ja 0x1404519e2
movzx eax, r9w
mov esi, edi
add r9d, 1
mov qword [rsp + rax*8 + 0xf0], rdx
movzx r8d, r9w
mov word [rsp + 0x2e0], r9w
and esi, 0x3f
je 0x140451c18
mov eax, esi
mov r11d, 0x40
sub r11, rax
mov rax, r12
lea rbp, [r12 + r8*8]
xor r10d, r10d
nop dword [rax + rax]
mov r14, r10
mov r10, qword [rax]
mov ecx, esi
add rax, 8
mov rdx, r10
shl rdx, cl
mov ecx, r11d
shr r14, cl
or rdx, r14
mov qword [rax - 8], rdx
cmp rax, rbp
jne 0x140451900
shr r10, cl
test r10, r10
je 0x140451954
cmp r9w, 0x3d
ja 0x140451d21
movzx eax, r9w
add r9d, 1
mov qword [rsp + rax*8 + 0xf0], r10
movzx r8d, r9w
mov word [rsp + 0x2e0], r9w
cmp edi, 0x3f
jle 0x140451d21
movsxd rsi, edi
shr rsi, 6
lea rax, [rsi + r8]
cmp rax, 0x3e
ja 0x1404512e9
test r9w, r9w
je 0x1404512e9
lea rcx, [r12 + rsi*8]
shl r8, 3
mov rdx, r12
call sub.msvcrt.dll_memmove
xor edx, edx
mov rcx, rax
sub rcx, r12
mov r8, rcx
mov rcx, r12
call sub.msvcrt.dll_memset
movzx r8d, word [rsp + 0x2e0]
add r8, rsi
mov word [rsp + 0x2e0], r8w
mov r9d, r8d
movzx r8d, r8w
jmp 0x1404512e9
mov rbx, qword [rsp + 0x28]
movzx r9d, bp
mov r8, rdi
test r15b, r15b
je 0x140451cd0
mov word [rsp + 0x2e0], r14w
movzx r9d, r14w
shl r9d, 6
mov rsi, qword [rsp + r8*8 + 0xe8]
bsr rax, rsi
xor rax, 0x3f
mov r10d, eax
cmp r8, 1
jne 0x140451bb2
mov rsi, qword [rsp + 0xf0]
xor r11d, r11d
bsr rcx, rsi
xor rcx, 0x3f
shl rsi, cl
mov rax, rsi
sub r9d, r10d
shr rsi, 0xb
and eax, 0x7ff
lea r10d, [r9 + 0x3fe]
cmp rax, 0x400
jbe 0x140451d32
movabs rax, 0x20000000000000
add rsi, 1
cmp rsi, rax
jne 0x140451303
lea r10d, [r9 + 0x3ff]
xor esi, esi
jmp 0x140451308
mov ecx, 1
mov r10d, 0x7ff
xor esi, esi
movabs rax, 0x7ff0000000000000
jmp 0x140451322
lea r10d, [rdx + 0x400]
xor esi, esi
jmp 0x1404510fd
mov esi, edi
and esi, 0x3f
je 0x140451c18
mov eax, esi
mov r11d, 0x40
sub r11, rax
test r8, r8
jne 0x1404518f1
cmp edi, 0x3f
jg 0x14045195d
shl r9d, 6
jmp 0x1404512fa
lea rsi, [r11 + 4]
cmp rsi, 0x1b
ja 0x1404510de
mov rsi, rax
and esi, 3
cmp rsi, 1
jne 0x1404510de
mov rsi, rax
shl rsi, cl
mov rcx, rax
and rcx, 0xfffffffffffffffe
cmp rdi, rsi
cmove rax, rcx
jmp 0x1404510de
lea rsi, [rbx + 2]
cmp r8, rsi
je 0x140450de9
movzx edi, byte [rbx + 2]
jmp 0x140450bc0
mov r8, qword [rsp + 0x30]
add rcx, r8
cmp rcx, r8
je 0x140451d2a
movabs r10, 0xde0b6b3a763ffff
jmp 0x140451b35
cmp rcx, r8
je 0x140451b4f
movsx eax, byte [r8]
lea r9, [r9 + r9*4]
add r8, 1
sub eax, 0x30
cdqe
lea r9, [rax + r9*2]
cmp r9, r10
jbe 0x140451b30
mov r11, qword [rsp + 0x30]
sub r11, r8
add r11, rdx
mov qword [rsp + 0xb0], r11
mov qword [rsp + 0xb8], r9
jmp 0x1404514c3
mov ecx, 1
sub ecx, edx
cmp ecx, 0x3f
jg 0x140451cc7
movabs rdx, 0xfffffffffffff
mov rax, qword [rsp + 0x38]
shr rax, cl
lea rcx, [rax + 1]
mov rax, rcx
shr rax, 1
cmp rax, rdx
seta dl
movzx edx, dl
jmp 0x140451600
add rdx, 3
jmp 0x14045142e
mov rdx, qword [rsp + r8*8 + 0xe0]
test eax, eax
jne 0x140451cd9
test rdx, rdx
setne r11b
cmp r8, 2
jbe 0x140451a19
lea rax, [r12 + r8*8]
lea rdx, [rsp + 0x100]
jmp 0x140451bf5
sub rax, 8
cmp rdx, rax
je 0x140451a19
cmp qword [rax - 0x18], 0
je 0x140451be8
mov r11d, 1
jmp 0x140451a19
mov edx, dword [rsp + 0x4c]
xor eax, eax
add edx, 0x400
jmp 0x1404515ed
cmp edi, 0x3f
jle 0x1404512e9
jmp 0x14045195d
mov r10d, 0x7ff
xor esi, esi
cmp r11, 0x134
jg 0x140451612
lea edi, [r11 + 0x156]
lea r14, [0x14061cf00]
mov dword [rsp + 0x30], edi
jmp 0x140451514
lea rax, [r11 + 4]
cmp rax, 0x1b
ja 0x1404515c6
mov rax, qword [rsp + 0x38]
and eax, 3
cmp rax, 1
jne 0x1404515c6
mov rax, qword [rsp + 0x38]
shl rax, cl
mov rcx, qword [rsp + 0x38]
and rcx, 0xfffffffffffffffe
cmp rdi, rax
mov rdi, rcx
cmovne rdi, qword [rsp + 0x38]
mov qword [rsp + 0x38], rdi
jmp 0x1404515c6
xor r14d, r14d
jmp 0x14045183c
mov rdi, qword [rsp + 0x358]
mov rax, r12
shl rax, 0x3f
mov qword [rdi], rax
mov eax, 0x22
jmp 0x140450e9d
xor edx, edx
xor eax, eax
jmp 0x140451600
movzx r8d, r9w
jmp 0x1404519e2
mov rax, rdx
mov ecx, r10d
shl rax, cl
mov ecx, 0x40
test rax, rax
setne r11b
sub ecx, r10d
shr rdx, cl
mov ecx, r10d
shl rsi, cl
or rsi, rdx
jmp 0x140451bc9
mov rax, r9
and r9d, 1
pxor xmm0, xmm0
shr rax, 1
or rax, r9
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
jmp 0x14045139c
movzx r9d, r9w
jmp 0x1404519e2
mov r11, rdx
jmp 0x140451b5a
jne 0x140451303
mov eax, esi
and eax, 1
or al, r11b
jne 0x140451a3b
jmp 0x140451303
mov r15d, dword [rsp + 0x30]
mov r8d, r11d
imul r11d, r11d, 0x3526a
add r15d, r15d
movsxd rax, r15d
sar r11d, 0x10
mov rax, qword [r14 + rax*8]
mov ebp, r11d
mov qword [rsp + 0x28], rax
jmp 0x140451151
cmp r11, 0x134
jg 0x140451115
mov byte [rsp + 0x38], 1
jmp 0x140451032