Function at 0x140040c30
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x628
mov qword [rsp + 0x48], r8
mov rsi, qword [rdx]
test rsi, rsi
je 0x140042562
mov r12, qword [rdx + 8]
test r12, r12
je 0x140042562
mov r13, qword [rdx + 0x10]
test r13, r13
je 0x140042562
mov r15, rsi
add r15, r13
jb 0x140042562
mov rdi, rsi
sub rdi, r12
jb 0x140042562
mov rax, r15
shr rax, 0x3d
jne 0x140042562
mov r14, rcx
movsx rbp, word [rdx + 0x18]
mov rax, r15
shr rax, 0x20
mov rcx, r15
shl rcx, 0x20
lea r8d, [rbp - 0x20]
test rax, rax
cmovne rcx, r15
cmovne r8d, ebp
mov rax, rcx
shr rax, 0x30
mov r9, rcx
shl r9, 0x10
lea r10d, [r8 - 0x10]
test rax, rax
cmovne r9, rcx
cmovne r10d, r8d
mov rax, r9
shr rax, 0x38
mov rcx, r9
shl rcx, 8
lea r8d, [r10 - 8]
test rax, rax
cmovne rcx, r9
cmovne r8d, r10d
mov rax, rcx
shr rax, 0x3c
mov r10, rcx
shl r10, 4
lea r11d, [r8 - 4]
test rax, rax
cmovne r10, rcx
cmovne r11d, r8d
mov rax, r10
shr rax, 0x3e
lea r8, [r10*4]
lea r9d, [r11 - 2]
test rax, rax
cmovne r8, r10
cmovne r9d, r11d
xor eax, eax
test r8, r8
setns al
sub r9d, eax
mov ecx, ebp
sub cx, r9w
js 0x140042562
and ecx, 0x3f
mov rax, rdi
shl rax, cl
mov r10, rax
shr r10, cl
cmp r10, rdi
jne 0x140042562
mov rbx, rsi
shl rbx, cl
mov r10, rbx
shr r10, cl
cmp r10, rsi
jne 0x140042562
mov ecx, 0xffffffa0
sub ecx, r9d
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
add ecx, 0x153b0
movsxd rcx, ecx
imul r10, rcx, 0x7b4dc993
mov rcx, r10
shr rcx, 0x3f
sar r10, 0x2a
add r10d, ecx
cmp r10d, 0x51
jae 0x140042562
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x88], r12
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x180], r15
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x188], rsi
test r8, r8
setns cl
shl r8, cl
mov r10d, r10d
shl r10, 4
lea r11, [0x1402839e8]
mov rsi, qword [r10 + r11]
movzx ecx, word [r10 + r11 + 0xa]
mov dword [rsp + 0x30], ecx
mov r12, r8
shr r12, 0x20
mov r8d, r8d
mov ecx, esi
shr rsi, 0x20
mov qword [rsp + 0x38], rbp
mov rbp, rsi
imul rbp, r8
mov r14, rcx
imul r14, r12
imul r8, rcx
shr r8, 0x20
mov edi, r14d
add rdi, r8
mov r13d, ebp
add r9w, word [r10 + r11 + 8]
add r13, rdi
mov r8, rax
shr r8, 0x20
mov eax, eax
mov rdx, rsi
imul rdx, r8
mov qword [rsp + 0x20], rdx
mov r11, rsi
imul r11, rax
imul r8, rcx
imul rax, rcx
shr rax, 0x20
mov r10d, r8d
add r10, rax
mov eax, r11d
add rax, r10
mov rdi, rbx
shr rdi, 0x20
mov edx, ebx
mov rbx, rsi
imul rbx, rdx
mov r10, rcx
imul r10, rdi
imul rcx, rdx
shr rcx, 0x20
mov edx, r10d
add rdx, rcx
mov r15d, ebx
add r15, rdx
mov rcx, rsi
mov qword [rsp + 0x170], r12
imul rcx, r12
sub r13, 0xffffffff80000000
shr r14, 0x20
shr rbp, 0x20
shr r13, 0x20
neg r9d
sub rax, 0xffffffff80000000
shr r8, 0x20
shr r11, 0x20
mov r12, r11
shr rax, 0x20
mov r11, rsi
imul r11, rdi
sub r15, 0xffffffff80000000
shr r10, 0x20
mov qword [rsp + 0x160], r10
add r11, r10
shr rbx, 0x20
mov qword [rsp + 0x158], rbx
add r11, rbx
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x68], rcx
add rcx, r14
mov qword [rsp + 0x70], rbp
add rcx, rbp
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0x58], r13
lea rbx, [rcx + r13]
inc rbx
and r9d, 0x3f
mov qword [rsp + 0x28], rbx
mov ecx, r9d
shr rbx, cl
mov edx, 1
shl rdx, cl
shr r15, 0x20
mov qword [rsp + 0x50], r15
movzx ecx, r10w
lea r10, [rdx - 1]
mov qword [rsp + 0x40], r10
cmp ebx, 0x2710
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x168], rdi
jae 0x140040f88
cmp ebx, 0x64
jae 0x140040faf
xor ecx, ecx
cmp ebx, 0xa
setae cl
lea edi, [rcx + rcx*8]
inc edi
jmp 0x140040fc8
cmp ebx, 0xf4240
jae 0x14004128d
cmp ebx, 0x186a0
setb cl
mov edx, 0x2710
mov edi, 0x186a0
cmovb edi, edx
xor cl, 5
jmp 0x140040fc8
cmp ebx, 0x3e8
setb cl
mov edx, 0x64
mov edi, 0x3e8
cmovb edi, edx
xor cl, 3
mov r10, qword [rsp + 0x20]
mov ebp, dword [rsp + 0x30]
mov r13, r12
add r11, qword [rsp + 0x50]
mov qword [rsp + 0x30], r11
mov rdx, qword [rsp + 0x28]
mov r12, rdx
mov r15, qword [rsp + 0x40]
and r12, r15
movzx r14d, cl
mov ecx, r14d
sub ecx, ebp
inc ecx
mov dword [rsp + 0x64], ecx
add r10, r8
add r10, r13
add r10, rax
mov qword [rsp + 0x20], r10
sub rdx, r10
mov qword [rsp + 0x150], rdx
lea r11, [rdx + 1]
mov r8, r11
and r8, r15
xor r15d, r15d
mov r13d, 0xcccccccd
nop dword [rax]
mov eax, ebx
xor edx, edx
div edi
add al, 0x30
mov ebx, edx
mov rdx, rbx
mov ecx, r9d
shl rdx, cl
mov rcx, qword [rsp + 0x48]
mov byte [rcx + r15], al
lea rbp, [rdx + r12]
mov r10, r11
sub r10, rbp
ja 0x14004107a
cmp r14, r15
je 0x140041171
mov eax, edi
imul rax, r13
shr rax, 0x23
inc r15
cmp edi, 0xa
mov edi, eax
jae 0x140041030
jmp 0x140042562
mov r8d, edi
mov ecx, r9d
shl r8, cl
mov r13, qword [rsp + 0x28]
mov r11, qword [rsp + 0x30]
sub r13, r11
lea rcx, [r13 + 1]
dec r13
cmp r10, r8
setb dil
cmp r13, rbp
jbe 0x1400412bf
cmp r10, r8
mov r14, qword [rsp + 0x48]
jb 0x1400412f1
mov qword [rsp + 0x28], rcx
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea r9, [rbx + rcx]
add r9, qword [rsp + 0x58]
add r9, qword [rsp + 0x68]
mov r10, r9
sub r10, r11
sub r10, rbp
sub r9, qword [rsp + 0x20]
lea r11, [r12 + r8]
sub r9, r11
sub r9, rdx
mov rbp, qword [rsp + 0x160]
add rbp, r11
add rbp, qword [rsp + 0x158]
add rbp, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x168]
sub rdi, qword [rsp + 0x170]
imul rsi, rdi
add rsi, rbp
sub rsi, rbx
sub rsi, rcx
sub rsi, qword [rsp + 0x58]
add r9, 2
nop dword [rax + rax]
lea rbx, [rdx + r11]
cmp rbx, r13
jb 0x140041146
lea rdi, [rdx + rsi]
cmp r10, rdi
jb 0x1400412e4
dec al
mov byte [r14 + r15], al
sub r9, r8
setb dil
add r12, r8
cmp rbx, r13
jae 0x140041169
sub r10, r8
add r11, r8
add rsi, r8
test dil, dil
je 0x140041130
add rdx, r12
jmp 0x1400412e9
inc r15
mov esi, 1
mov r14, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x28]
mov r13, qword [rsp + 0x178]
mov r11, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
nop word cs:[rax + rax]
cmp r15, 0x10
ja 0x140042562
mov rax, rsi
add r12, r12
lea rdx, [r12 + r12*4]
mov r12, rdx
and r12, rdi
lea rcx, [rsi + rsi]
lea rsi, [rcx + rcx*4]
add r8, r8
lea r8, [r8 + r8*4]
mov ecx, r9d
shr rdx, cl
lea ecx, [rdx + 0x30]
mov byte [r14 + r15], cl
inc r15
mov r10, r8
sub r10, r12
jbe 0x1400411a0
sub rbx, r11
imul rbx, rsi
lea rcx, [rbx + rsi]
cmp r10, r13
setb r10b
jb 0x14004132d
sub rbx, rsi
mov r11, rbx
sub r11, r12
jbe 0x14004132d
add dl, 0x2f
mov rsi, r8
sub rsi, r13
sub rsi, r12
mov r9, qword [rsp + 0x78]
add r9, qword [rsp + 0x70]
add r9, qword [rsp + 0x58]
add r9, qword [rsp + 0x68]
add r9, r9
lea r9, [r9 + r9*4]
mov r10, qword [rsp + 0x30]
add r10, r10
lea rdi, [r10 + r10*4]
sub rdi, r9
imul rdi, rax
add rdi, r13
nop word cs:[rax + rax]
lea r9, [r12 + r13]
cmp r9, rbx
jb 0x140041266
lea r10, [rdi + r12]
cmp r11, r10
jb 0x14004132a
mov byte [r14 + r15 - 1], dl
sub rsi, r13
setb r10b
cmp r9, rbx
jae 0x140041330
dec dl
sub r11, r13
mov r12, r9
test r10b, r10b
je 0x140041250
jmp 0x140041330
cmp ebx, 0x5f5e100
mov r10, qword [rsp + 0x20]
mov ebp, dword [rsp + 0x30]
mov r13, r12
jae 0x1400412c6
cmp ebx, 0x989680
setb cl
mov edx, 0xf4240
mov edi, 0x989680
cmovb edi, edx
xor cl, 7
jmp 0x140040fd4
mov r14, qword [rsp + 0x48]
jmp 0x1400412f1
cmp ebx, 0x3b9aca00
setb cl
mov edx, 0x5f5e100
mov edi, 0x3b9aca00
cmovb edi, edx
xor cl, 9
jmp 0x140040fd4
add rdx, r12
xor edi, edi
mov rbp, rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
sub rax, rbp
jbe 0x14004130b
test dil, dil
jne 0x14004130b
add r8, rbp
sub r8, rcx
jb 0x14004136f
cmp rax, r8
jae 0x14004136f
cmp rbp, 2
jb 0x14004136f
mov rax, qword [rsp + 0x150]
add rax, 0xfffffffffffffffd
cmp rbp, rax
ja 0x14004136f
inc r15
jmp 0x1400416c3
xor r10d, r10d
mov r9, r12
mov rdx, rcx
sub rdx, r9
jbe 0x14004134a
test r10b, r10b
jne 0x14004134a
add r13, r9
sub r13, rcx
jb 0x14004136f
cmp rdx, r13
jae 0x14004136f
lea rcx, [rax*4]
lea rcx, [rcx + rcx*4]
cmp rcx, r9
ja 0x14004136f
shl rax, 3
lea rax, [rax + rax*4]
sub r8, rax
cmp r9, r8
jbe 0x1400416c3
mov rax, qword [rsp + 0x180]
dec rax
je 0x140041386
bsr rax, rax
xor rax, 0x3f
jmp 0x14004138b
mov eax, 0x40
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x90]
mov r10, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
movzx ecx, byte [rcx + 0x1a]
mov byte [rsp + 0x20], cl
mov rcx, r8
sub rcx, rax
imul rax, rcx, 0x4d104d42
movabs rdi, 0x1344135080
add rdi, rax
shr rdi, 0x20
xor eax, eax
xor ecx, ecx
mov r11, qword [rsp + 0x188]
mov rdx, r11
shr rdx, 0x20
cmove edx, eax
setne cl
inc rcx
mov qword [rsp + 0x148], rcx
mov dword [rsp + 0xa8], r11d
mov dword [rsp + 0xac], edx
xorps xmm0, xmm0
movups xmmword [rsp + 0xb0], xmm0
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xd0], xmm0
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf0], xmm0
movups xmmword [rsp + 0x100], xmm0
movups xmmword [rsp + 0x110], xmm0
movups xmmword [rsp + 0x120], xmm0
movups xmmword [rsp + 0x130], xmm0
mov qword [rsp + 0x140], 0
xor ecx, ecx
mov rdx, r10
shr rdx, 0x20
cmove edx, eax
setne cl
inc rcx
mov qword [rsp + 0x380], rcx
mov dword [rsp + 0x2e0], r10d
mov dword [rsp + 0x2e4], edx
movups xmmword [rsp + 0x2e8], xmm0
movups xmmword [rsp + 0x2f8], xmm0
movups xmmword [rsp + 0x308], xmm0
movups xmmword [rsp + 0x318], xmm0
movups xmmword [rsp + 0x328], xmm0
movups xmmword [rsp + 0x338], xmm0
movups xmmword [rsp + 0x348], xmm0
movups xmmword [rsp + 0x358], xmm0
movups xmmword [rsp + 0x368], xmm0
mov qword [rsp + 0x378], 0
xor ecx, ecx
mov rdx, r9
shr rdx, 0x20
cmove edx, eax
setne cl
inc rcx
mov qword [rsp + 0x230], rcx
mov dword [rsp + 0x190], r9d
mov dword [rsp + 0x194], edx
movups xmmword [rsp + 0x198], xmm0
movups xmmword [rsp + 0x1a8], xmm0
movups xmmword [rsp + 0x1b8], xmm0
movups xmmword [rsp + 0x1c8], xmm0
movups xmmword [rsp + 0x1d8], xmm0
movups xmmword [rsp + 0x1e8], xmm0
movups xmmword [rsp + 0x1f8], xmm0
movups xmmword [rsp + 0x208], xmm0
movups xmmword [rsp + 0x218], xmm0
mov qword [rsp + 0x228], 0
movups xmmword [rsp + 0x2c8], xmm0
movups xmmword [rsp + 0x2bc], xmm0
movups xmmword [rsp + 0x2ac], xmm0
movups xmmword [rsp + 0x29c], xmm0
movups xmmword [rsp + 0x28c], xmm0
movups xmmword [rsp + 0x27c], xmm0
movups xmmword [rsp + 0x26c], xmm0
movups xmmword [rsp + 0x25c], xmm0
movups xmmword [rsp + 0x24c], xmm0
movups xmmword [rsp + 0x23c], xmm0
mov qword [rsp + 0x2d8], 1
mov dword [rsp + 0x238], 1
test r8w, r8w
js 0x140041609
lea rcx, [rsp + 0xa8]
mov rsi, qword [rsp + 0x98]
mov rdx, rsi
call fcn.14003c000
lea rcx, [rsp + 0x2e0]
mov rdx, rsi
call fcn.14003c000
lea rcx, [rsp + 0x190]
mov rdx, rsi
call fcn.14003c000
test di, di
js 0x140041629
movzx edx, di
lea rcx, [rsp + 0x238]
jmp 0x14004165c
mov rax, qword [rsp + 0x98]
neg eax
movsx rdx, ax
lea rcx, [rsp + 0x238]
call fcn.14003c000
test di, di
jns 0x1400415fc
mov eax, edi
neg eax
movsx rsi, ax
lea rcx, [rsp + 0xa8]
mov rdx, rsi
call fcn.140043ec0
lea rcx, [rsp + 0x2e0]
mov rdx, rsi
call fcn.140043ec0
lea rcx, [rsp + 0x190]
mov rdx, rsi
call fcn.140043ec0
mov r15, qword [rsp + 0x148]
lea rcx, [rsp + 0x388]
lea rdx, [rsp + 0xa8]
mov r8d, 0xa0
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x428], r15
mov r12, qword [rsp + 0x230]
cmp r15, r12
mov rax, r12
cmova rax, r15
cmp rax, 0x29
jae 0x140042562
test rax, rax
movzx r10d, byte [rsp + 0x20]
je 0x140041778
cmp rax, 1
jne 0x1400416df
xor ecx, ecx
xor edx, edx
jmp 0x14004172b
mov rax, qword [rsp + 0xa0]
mov qword [rax], r14
mov qword [rax + 8], r15
mov ecx, dword [rsp + 0x64]
mov word [rax + 0x10], cx
jmp 0x140042521
mov r8, rax
and r8, 0xfffffffffffffffe
xor edx, edx
xor ecx, ecx
nop word [rax + rax]
movzx edx, dl
bt edx, 0
mov edx, dword [rsp + rcx*4 + 0x190]
mov r9d, dword [rsp + rcx*4 + 0x194]
adc dword [rsp + rcx*4 + 0x388], edx
adc dword [rsp + rcx*4 + 0x38c], r9d
lea rcx, [rcx + 2]
setb dl
cmp r8, rcx
jne 0x1400416f0
test al, 1
jne 0x14004172b
test dl, dl
je 0x140041778
jmp 0x140041760
mov r8d, dword [rsp + rcx*4 + 0x388]
mov r9d, dword [rsp + rcx*4 + 0x190]
lea r10d, [r8 + r9]
movzx r11d, dl
add r11d, r10d
setb dl
mov dword [rsp + rcx*4 + 0x388], r11d
add r8d, r9d
movzx r10d, byte [rsp + 0x20]
jb 0x140041760
test dl, dl
je 0x140041778
cmp rax, 0x27
ja 0x140042562
mov dword [rsp + rax*4 + 0x388], 1
inc rax
mov qword [rsp + 0x428], rax
mov r13, qword [rsp + 0x2d8]
cmp r13, rax
cmova rax, r13
cmp rax, 0x29
jae 0x140042562
shl rax, 2
mov ecx, 0xff
nop word cs:[rax + rax]
test rax, rax
je 0x1400417e1
mov r8d, dword [rsp + rax + 0x384]
xor edx, edx
cmp r8d, dword [rsp + rax + 0x234]
setne dl
cmova edx, ecx
add rax, 0xfffffffffffffffc
test dl, dl
je 0x1400417b0
cmp dl, r10b
jge 0x1400417ff
inc edi
jmp 0x14004194b
add rax, rsp
add rax, 0x388
lea rcx, [rsp + 0x388]
cmp rax, rcx
setne dl
neg dl
cmp dl, r10b
jl 0x1400417da
cmp r15, 0x29
jae 0x140042562
test r15, r15
je 0x140041860
lea rcx, [r15*4]
xor edx, edx
xor eax, eax
nop word [rax + rax]
mov r8d, dword [rsp + rdx + 0xa8]
lea r8, [r8 + r8*4]
lea rax, [rax + r8*2]
mov dword [rsp + rdx + 0xa8], eax
shr rax, 0x20
add rdx, 4
cmp rcx, rdx
jne 0x140041820
test rax, rax
je 0x140041863
cmp r15, 0x27
ja 0x140042562
mov dword [rsp + r15*4 + 0xa8], eax
inc r15
jmp 0x140041863
xor r15d, r15d
mov qword [rsp + 0x148], r15
mov rax, qword [rsp + 0x380]
cmp rax, 0x29
jae 0x140042562
test rax, rax
je 0x1400418d0
lea rdx, [rax*4]
xor r8d, r8d
xor ecx, ecx
nop
mov r9d, dword [rsp + r8 + 0x2e0]
lea r9, [r9 + r9*4]
lea rcx, [rcx + r9*2]
mov dword [rsp + r8 + 0x2e0], ecx
shr rcx, 0x20
add r8, 4
cmp rdx, r8
jne 0x140041890
test rcx, rcx
je 0x1400418d2
cmp rax, 0x27
ja 0x140042562
mov dword [rsp + rax*4 + 0x2e0], ecx
inc rax
jmp 0x1400418d2
xor eax, eax
mov qword [rsp + 0x380], rax
cmp r12, 0x29
jae 0x140042562
test r12, r12
je 0x140041940
lea rcx, [r12*4]
xor edx, edx
xor eax, eax
nop word cs:[rax + rax]
mov r8d, dword [rsp + rdx + 0x190]
lea r8, [r8 + r8*4]
lea rax, [rax + r8*2]
mov dword [rsp + rdx + 0x190], eax
shr rax, 0x20
add rdx, 4
cmp rcx, rdx
jne 0x140041900
test rax, rax
je 0x140041943
cmp r12, 0x27
ja 0x140042562
mov dword [rsp + r12*4 + 0x190], eax
inc r12
jmp 0x140041943
xor r12d, r12d
mov qword [rsp + 0x230], r12
lea rcx, [rsp + 0x430]
lea rdx, [rsp + 0x238]
mov r8d, 0xa0
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x4d0], r13
test r13, r13
je 0x140042562
lea rsi, [r13 - 1]
mov rax, r13
nop
cmp r13, 0x29
jae 0x140042562
dec rax
jne 0x140041980
mov eax, dword [rsp + r13*4 + 0x42c]
mov qword [rsp + 0x40], r13
test eax, eax
js 0x1400419a8
cmp r13, 2
jae 0x1400419ce
jmp 0x140041a01
cmp r13, 0x27
ja 0x140042562
mov ecx, eax
shr ecx, 0x1f
mov dword [rsp + r13*4 + 0x430], ecx
lea rcx, [r13 + 1]
mov qword [rsp + 0x40], rcx
cmp r13, 2
jb 0x140041a01
mov rcx, r13
nop word cs:[rax + rax]
mov edx, dword [rsp + rcx*4 + 0x428]
shld eax, edx, 1
mov dword [rsp + rcx*4 + 0x42c], eax
lea r8, [rcx - 1]
mov eax, edx
mov rcx, r8
cmp r8, 1
ja 0x1400419e0
shl dword [rsp + 0x430], 1
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x4d0], rax
lea rcx, [rsp + 0x4d8]
lea rdx, [rsp + 0x238]
mov r8d, 0xa0
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x578], r13
mov rax, r13
nop dword [rax + rax]
cmp rsi, 0x28
jae 0x140042562
dec rax
jne 0x140041a40
mov eax, dword [rsp + r13*4 + 0x4d4]
mov qword [rsp + 0x28], r13
cmp eax, 0x3fffffff
jbe 0x140041a83
cmp r13, 0x27
ja 0x140042562
mov ecx, eax
shr ecx, 0x1e
mov dword [rsp + r13*4 + 0x4d8], ecx
lea rcx, [r13 + 1]
mov qword [rsp + 0x28], rcx
cmp r13, 2
jb 0x140041ab1
mov rcx, r13
nop dword [rax]
mov edx, dword [rsp + rcx*4 + 0x4d0]
shld eax, edx, 2
mov dword [rsp + rcx*4 + 0x4d4], eax
lea r8, [rcx - 1]
mov eax, edx
mov rcx, r8
cmp r8, 1
ja 0x140041a90
shl dword [rsp + 0x4d8], 2
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x578], rax
lea rcx, [rsp + 0x580]
lea rdx, [rsp + 0x238]
mov r8d, 0xa0
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x620], r13
mov rax, r13
nop dword [rax]
cmp rsi, 0x28
jae 0x140042562
dec rax
jne 0x140041af0
mov eax, dword [rsp + r13*4 + 0x57c]
mov qword [rsp + 0x38], r13
cmp eax, 0x1fffffff
jbe 0x140041b33
cmp r13, 0x27
ja 0x140042562
mov ecx, eax
shr ecx, 0x1d
mov dword [rsp + r13*4 + 0x580], ecx
lea rcx, [r13 + 1]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x50], rdi
cmp r13, 2
jb 0x140041b71
mov rcx, r13
nop word cs:[rax + rax]
mov edx, dword [rsp + rcx*4 + 0x578]
shld eax, edx, 3
mov dword [rsp + rcx*4 + 0x57c], eax
lea r8, [rcx - 1]
mov eax, edx
mov rcx, r8
cmp r8, 1
ja 0x140041b50
shl dword [rsp + 0x580], 3
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x620], rax
xor ebp, ebp
mov r14d, 0xff
jmp 0x140041b9e
xor r12d, r12d
mov qword [rsp + 0x230], r12
mov rbp, rbx
mov rdx, qword [rsp + 0x38]
cmp r15, rdx
cmova rdx, r15
cmp rdx, 0x29
jae 0x140042562
lea rax, [rdx*4]
nop dword [rax]
test rax, rax
je 0x140041c00
mov r8d, dword [rsp + rax + 0x57c]
xor ecx, ecx
cmp r8d, dword [rsp + rax + 0xa4]
setne cl
cmova ecx, r14d
add rax, 0xfffffffffffffffc
test cl, cl
je 0x140041bc0
cmp cl, 1
ja 0x140041c1e
test rdx, rdx
je 0x140041cb1
cmp rdx, 1
jne 0x140041c28
mov al, 1
xor ecx, ecx
jmp 0x140041c7b
add rax, rsp
add rax, 0x580
lea rcx, [rsp + 0x580]
cmp rax, rcx
setne cl
neg cl
cmp cl, 1
jbe 0x140041beb
xor eax, eax
mov rdx, r15
jmp 0x140041cbb
mov r8, rdx
and r8, 0xfffffffffffffffe
mov al, 1
xor ecx, ecx
nop word cs:[rax + rax]
mov r9d, dword [rsp + rcx*4 + 0x580]
not r9d
movzx eax, al
bt eax, 0
adc dword [rsp + rcx*4 + 0xa8], r9d
mov eax, dword [rsp + rcx*4 + 0x584]
not eax
adc dword [rsp + rcx*4 + 0xac], eax
lea rcx, [rcx + 2]
setb al
cmp r8, rcx
jne 0x140041c40
test dl, 1
je 0x140041ca9
mov r8d, dword [rsp + rcx*4 + 0x580]
not r8d
mov r9d, dword [rsp + rcx*4 + 0xa8]
lea r10d, [r8 + r9]
movzx r11d, al
add r11d, r10d
setb al
mov dword [rsp + rcx*4 + 0xa8], r11d
add r8d, r9d
jb 0x140041cb1
test al, al
je 0x140042562
mov qword [rsp + 0x148], rdx
mov al, 8
mov rcx, qword [rsp + 0x28]
cmp rdx, rcx
cmova rcx, rdx
cmp rcx, 0x29
jae 0x140042562
lea r8, [rcx*4]
nop dword [rax]
test r8, r8
je 0x140041d30
mov r10d, dword [rsp + r8 + 0x4d4]
xor r9d, r9d
cmp r10d, dword [rsp + r8 + 0xa4]
setne r9b
cmova r9d, r14d
add r8, 0xfffffffffffffffc
test r9b, r9b
je 0x140041ce0
cmp r9b, 1
ja 0x140041d52
test rcx, rcx
je 0x140041de2
cmp rcx, 1
jne 0x140041d5a
mov dl, 1
xor r8d, r8d
jmp 0x140041dad
add r8, rsp
add r8, 0x4d8
lea r9, [rsp + 0x4d8]
cmp r8, r9
setne r9b
neg r9b
cmp r9b, 1
jbe 0x140041d0f
mov rcx, rdx
jmp 0x140041dec
mov r9, rcx
and r9, 0xfffffffffffffffe
mov dl, 1
xor r8d, r8d
nop word cs:[rax + rax]
mov r10d, dword [rsp + r8*4 + 0x4d8]
not r10d
movzx edx, dl
bt edx, 0
adc dword [rsp + r8*4 + 0xa8], r10d
mov edx, dword [rsp + r8*4 + 0x4dc]
not edx
adc dword [rsp + r8*4 + 0xac], edx
lea r8, [r8 + 2]
setb dl
cmp r9, r8
jne 0x140041d70
test cl, 1
je 0x140041dda
mov r9d, dword [rsp + r8*4 + 0x4d8]
not r9d
mov r10d, dword [rsp + r8*4 + 0xa8]
lea r11d, [r9 + r10]
movzx esi, dl
add esi, r11d
setb dl
mov dword [rsp + r8*4 + 0xa8], esi
add r9d, r10d
jb 0x140041de2
test dl, dl
je 0x140042562
mov qword [rsp + 0x148], rcx
or al, 4
mov rdx, qword [rsp + 0x40]
cmp rcx, rdx
cmova rdx, rcx
cmp rdx, 0x29
jae 0x140042562
lea r8, [rdx*4]
nop word [rax + rax]
test r8, r8
je 0x140041e60
mov r10d, dword [rsp + r8 + 0x42c]
xor r9d, r9d
cmp r10d, dword [rsp + r8 + 0xa4]
setne r9b
cmova r9d, r14d
add r8, 0xfffffffffffffffc
test r9b, r9b
je 0x140041e10
cmp r9b, 1
ja 0x140041e82
test rdx, rdx
je 0x140041f12
cmp rdx, 1
jne 0x140041e8a
mov cl, 1
xor r8d, r8d
jmp 0x140041edd
add r8, rsp
add r8, 0x430
lea r9, [rsp + 0x430]
cmp r8, r9
setne r9b
neg r9b
cmp r9b, 1
jbe 0x140041e3f
mov rdx, rcx
jmp 0x140041f1c
mov r9, rdx
and r9, 0xfffffffffffffffe
mov cl, 1
xor r8d, r8d
nop word cs:[rax + rax]
mov r10d, dword [rsp + r8*4 + 0x430]
not r10d
movzx ecx, cl
bt ecx, 0
adc dword [rsp + r8*4 + 0xa8], r10d
mov ecx, dword [rsp + r8*4 + 0x434]
not ecx
adc dword [rsp + r8*4 + 0xac], ecx
lea r8, [r8 + 2]
setb cl
cmp r9, r8
jne 0x140041ea0
test dl, 1
je 0x140041f0a
mov r9d, dword [rsp + r8*4 + 0x430]
not r9d
mov r10d, dword [rsp + r8*4 + 0xa8]
lea r11d, [r9 + r10]
movzx esi, cl
add esi, r11d
setb cl
mov dword [rsp + r8*4 + 0xa8], esi
add r9d, r10d
jb 0x140041f12
test cl, cl
je 0x140042562
mov qword [rsp + 0x148], rdx
add al, 2
cmp rdx, r13
mov r15, r13
cmova r15, rdx
cmp r15, 0x29
jae 0x140042562
lea rcx, [r15*4]
nop dword [rax + rax]
test rcx, rcx
je 0x140041f90
mov r9d, dword [rsp + rcx + 0x234]
xor r8d, r8d
cmp r9d, dword [rsp + rcx + 0xa4]
setne r8b
cmova r8d, r14d
add rcx, 0xfffffffffffffffc
test r8b, r8b
je 0x140041f40
cmp r8b, 1
ja 0x140041fb2
test r15, r15
je 0x140042042
cmp r15, 1
jne 0x140041fba
mov cl, 1
xor edx, edx
jmp 0x14004200c
add rcx, rsp
add rcx, 0x238
lea r8, [rsp + 0x238]
cmp rcx, r8
setne r8b
neg r8b
cmp r8b, 1
jbe 0x140041f6f
mov r15, rdx
jmp 0x14004204c
mov r8, r15
and r8, 0xfffffffffffffffe
mov cl, 1
xor edx, edx
nop word cs:[rax + rax]
mov r9d, dword [rsp + rdx*4 + 0x238]
not r9d
movzx ecx, cl
bt ecx, 0
adc dword [rsp + rdx*4 + 0xa8], r9d
mov ecx, dword [rsp + rdx*4 + 0x23c]
not ecx
adc dword [rsp + rdx*4 + 0xac], ecx
lea rdx, [rdx + 2]
setb cl
cmp r8, rdx
jne 0x140041fd0
test r15b, 1
je 0x14004203a
mov r8d, dword [rsp + rdx*4 + 0x238]
not r8d
mov r9d, dword [rsp + rdx*4 + 0xa8]
lea r10d, [r8 + r9]
movzx r11d, cl
add r11d, r10d
setb cl
mov dword [rsp + rdx*4 + 0xa8], r11d
add r8d, r9d
jb 0x140042042
test cl, cl
je 0x140042562
mov qword [rsp + 0x148], r15
inc al
cmp rbp, 0x11
je 0x140042562
add al, 0x30
mov rcx, qword [rsp + 0x48]
mov byte [rcx + rbp], al
mov rsi, qword [rsp + 0x380]
cmp r15, rsi
mov rax, rsi
cmova rax, r15
cmp rax, 0x29
jae 0x140042562
lea rbx, [rbp + 1]
shl rax, 2
nop word cs:[rax + rax]
test rax, rax
je 0x1400420c0
mov ecx, dword [rsp + rax + 0x2dc]
xor edi, edi
cmp ecx, dword [rsp + rax + 0xa4]
setne dil
cmova edi, r14d
add rax, 0xfffffffffffffffc
test dil, dil
je 0x140042090
jmp 0x1400420db
add rax, rsp
add rax, 0x2e0
lea rcx, [rsp + 0x2e0]
cmp rax, rcx
setne dil
neg dil
mov r8d, 0xa0
lea rcx, [rsp + 0x388]
lea rdx, [rsp + 0xa8]
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0x428], r15
cmp r15, r12
mov rax, r12
cmova rax, r15
cmp rax, 0x29
jae 0x140042562
test rax, rax
movzx r10d, byte [rsp + 0x20]
je 0x1400421cd
cmp rax, 1
jne 0x140042130
xor ecx, ecx
xor edx, edx
jmp 0x140042180
mov r8, rax
and r8, 0xfffffffffffffffe
xor edx, edx
xor ecx, ecx
nop dword [rax + rax]
movzx edx, dl
bt edx, 0
mov edx, dword [rsp + rcx*4 + 0x190]
mov r9d, dword [rsp + rcx*4 + 0x194]
adc dword [rsp + rcx*4 + 0x388], edx
adc dword [rsp + rcx*4 + 0x38c], r9d
lea rcx, [rcx + 2]
setb dl
cmp r8, rcx
jne 0x140042140
test al, 1
jne 0x140042180
test dl, dl
je 0x1400421cd
jmp 0x1400421b5
mov r8d, dword [rsp + rcx*4 + 0x388]
mov r9d, dword [rsp + rcx*4 + 0x190]
lea r10d, [r8 + r9]
movzx r11d, dl
add r11d, r10d
setb dl
mov dword [rsp + rcx*4 + 0x388], r11d
add r8d, r9d
movzx r10d, byte [rsp + 0x20]
jb 0x1400421b5
test dl, dl
je 0x1400421cd
cmp rax, 0x27
ja 0x140042562
mov dword [rsp + rax*4 + 0x388], 1
inc rax
mov qword [rsp + 0x428], rax
cmp r13, rax
cmova rax, r13
cmp rax, 0x29
jae 0x140042562
shl rax, 2
nop word [rax + rax]
test rax, rax
je 0x140042220
mov edx, dword [rsp + rax + 0x384]
xor ecx, ecx
cmp edx, dword [rsp + rax + 0x234]
setne cl
cmova ecx, r14d
add rax, 0xfffffffffffffffc
test cl, cl
je 0x1400421f0
cmp dil, r10b
jge 0x140042242
jmp 0x1400423c7
add rax, rsp
add rax, 0x388
lea rcx, [rsp + 0x388]
cmp rax, rcx
setne cl
neg cl
cmp dil, r10b
jl 0x1400423c7
cmp cl, r10b
jl 0x1400423c7
cmp r15, 0x29
jae 0x140042562
test r15, r15
je 0x1400422d0
lea rcx, [r15*4]
xor edx, edx
xor eax, eax
nop word cs:[rax + rax]
mov r8d, dword [rsp + rdx + 0xa8]
lea r8, [r8 + r8*4]
lea rax, [rax + r8*2]
mov dword [rsp + rdx + 0xa8], eax
shr rax, 0x20
add rdx, 4
cmp rcx, rdx
jne 0x140042270
test rax, rax
je 0x1400422ae
cmp r15, 0x27
ja 0x140042562
mov dword [rsp + r15*4 + 0xa8], eax
inc r15
mov qword [rsp + 0x148], r15
cmp rsi, 0x29
jb 0x1400422e5
jmp 0x140042562
xor r15d, r15d
mov qword [rsp + 0x148], r15
cmp rsi, 0x29
jae 0x140042562
test rsi, rsi
je 0x140042350
lea rcx, [rsi*4]
xor edx, edx
xor eax, eax
nop word cs:[rax + rax]
mov r8d, dword [rsp + rdx + 0x2e0]
lea r8, [r8 + r8*4]
lea rax, [rax + r8*2]
mov dword [rsp + rdx + 0x2e0], eax
shr rax, 0x20
add rdx, 4
cmp rcx, rdx
jne 0x140042300
test rax, rax
je 0x14004233d
cmp rsi, 0x27
ja 0x140042562
mov dword [rsp + rsi*4 + 0x2e0], eax
inc rsi
mov qword [rsp + 0x380], rsi
cmp r12, 0x29
jb 0x140042364
jmp 0x140042562
xor esi, esi
mov qword [rsp + 0x380], rsi
cmp r12, 0x29
jae 0x140042562
test r12, r12
je 0x140041b90
lea rcx, [r12*4]
xor edx, edx
xor eax, eax
nop dword [rax]
mov r8d, dword [rsp + rdx + 0x190]
lea r8, [r8 + r8*4]
lea rax, [rax + r8*2]
mov dword [rsp + rdx + 0x190], eax
shr rax, 0x20
add rdx, 4
cmp rcx, rdx
jne 0x140042380
test rax, rax
je 0x140041b93
cmp r12, 0x27
ja 0x140042562
mov dword [rsp + r12*4 + 0x190], eax
inc r12
jmp 0x140041b93
cmp cl, r10b
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
jge 0x140042507
cmp dil, r10b
jge 0x1400424cb
test r15, r15
je 0x140042562
mov rax, r15
nop
cmp r15, 0x29
jae 0x140042562
dec rax
jne 0x1400423f0
mov eax, dword [rsp + r15*4 + 0xa4]
mov rcx, r15
test eax, eax
jns 0x140042429
cmp r15, 0x27
ja 0x140042562
mov ecx, eax
shr ecx, 0x1f
mov dword [rsp + r15*4 + 0xa8], ecx
lea rcx, [r15 + 1]
cmp r15, 2
jb 0x140042453
nop
mov edx, dword [rsp + r15*4 + 0xa0]
shld eax, edx, 1
mov dword [rsp + r15*4 + 0xa4], eax
lea r8, [r15 - 1]
mov eax, edx
mov r15, r8
cmp r8, 1
ja 0x140042430
shl dword [rsp + 0xa8], 1
mov qword [rsp + 0x148], rcx
cmp rcx, r13
cmova r13, rcx
cmp r13, 0x29
jae 0x140042562
shl r13, 2
mov eax, 0xff
nop dword [rax]
test r13, r13
je 0x1400424ac
mov edx, dword [rsp + r13 + 0x234]
xor ecx, ecx
cmp edx, dword [rsp + r13 + 0xa4]
setne cl
cmova ecx, eax
add r13, 0xfffffffffffffffc
test cl, cl
je 0x140042480
cmp cl, 2
jb 0x1400424cb
jmp 0x140042507
lea rax, [rsp + r13]
add rax, 0x238
lea rcx, [rsp + 0x238]
cmp rax, rcx
setne cl
neg cl
cmp cl, 2
jae 0x140042507
mov r8, 0xffffffffffffffff
mov rax, rbx
nop word cs:[rax + rax]
test rax, rax
je 0x140042535
mov rcx, rax
dec rax
inc r8
cmp byte [rsi + rcx - 1], 0x39
je 0x1400424e0
inc byte [rsi + rax]
cmp rcx, rbp
ja 0x140042507
add rcx, rsi
mov dl, 0x30
call sub.VCRUNTIME140.dll_memset
cmp rbp, 0x11
jae 0x140042562
mov rax, qword [rsp + 0xa0]
mov qword [rax], rsi
mov qword [rax + 8], rbx
mov word [rax + 0x10], r14w
add rsp, 0x628
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rsi], 0x31
test rbp, rbp
je 0x140042551
lea rcx, [rsi + 1]
mov dl, 0x30
mov r8, rbp
call sub.VCRUNTIME140.dll_memset
cmp rbp, 0xf
ja 0x140042562
mov byte [rsi + rbp + 1], 0x30
add rbp, 2
inc r14d
mov rbx, rbp
jmp 0x14004250d
ud2