Function at 0x517580
Capabilities:
Encode data using base64

Disassembly:
lea r12, [rsp - 0x170]
cmp r12, qword [r14 + 0x10]
jbe 0x518d26
push rbp
mov rbp, rsp
sub rsp, 0x1e8
mov qword [rsp + 0x208], rcx
mov qword [rsp + 0x200], rbx
mov qword [rsp + 0x1f8], rax
movups xmmword [rsp + 0x168], xmm15
movups xmmword [rsp + 0x178], xmm15
mov edi, 1
lea rcx, [0x00583359]
call fcn.004780e0
nop dword [rax + rax]
test sil, sil
je 0x517927
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0x130], rax
test rbx, rbx
jne 0x51760f
xor edx, edx
jmp 0x517640
lea rcx, [0x005acea0]
call fcn.00477540
test rax, rax
setl dl
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x50]
nop
test dl, dl
je 0x51791a
test rdi, rdi
jne 0x517651
xor edx, edx
jmp 0x517688
mov rax, rcx
mov rbx, rdi
lea rcx, [0x005acea0]
nop
call fcn.00477540
test rax, rax
setl dl
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x50]
test dl, dl
je 0x51791a
call fcn.00476ea0
mov rcx, qword [rsp + 0x168]
nop
nop
test rcx, rcx
je 0x5176b7
lea rdx, [rsp + 0x168]
cmp rcx, rdx
je 0x5176c7
jmp 0x518d11
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x178]
lea r8, [rdx + rbx]
mov r9, qword [rsp + 0x170]
cmp rcx, r8
jae 0x51772d
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0xd8], rdx
mov rax, r9
mov rdi, rbx
lea rsi, [0x0054fdc0]
mov rbx, r8
call fcn.0044b0a0
mov rdx, qword [rsp + 0xd8]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0x160], r9
add rdx, r9
mov rsi, rax
mov rax, rdx
mov rdi, rbx
mov rbx, rsi
mov rcx, rdi
call fcn.004661e0
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x168]
nop
nop
test rdx, rdx
je 0x5177ad
lea r8, [rsp + 0x168]
cmp rdx, r8
je 0x5177bd
jmp 0x518cfe
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x5177fe
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], 0x2f
mov rax, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0x50]
call fcn.00476ea0
mov rcx, qword [rsp + 0x168]
nop
test rcx, rcx
je 0x51783d
lea rdx, [rsp + 0x168]
cmp rcx, rdx
je 0x51784d
jmp 0x518ceb
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x178]
lea r8, [rdx + rbx]
mov r9, qword [rsp + 0x170]
cmp rcx, r8
jae 0x5178b3
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x118], rax
mov qword [rsp + 0xd8], rdx
mov rax, r9
mov rdi, rbx
lea rsi, [0x0054fdc0]
mov rbx, r8
call fcn.0044b0a0
mov rdx, qword [rsp + 0xd8]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x70]
mov qword [rsp + 0xd8], r8
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0x160], r9
add rdx, r9
mov rsi, rax
mov rax, rdx
mov rdi, rbx
mov rbx, rsi
mov rcx, rdi
nop dword [rax]
call fcn.004661e0
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
jmp 0x517a65
xor eax, eax
xor ebx, ebx
add rsp, 0x1e8
pop rbp
ret
mov rbx, qword [rsp + 0x200]
test rbx, rbx
je 0x517ae9
mov rax, qword [rsp + 0x1f8]
lea rcx, [0x005acea0]
call fcn.00477540
test rax, rax
jge 0x517ae9
mov rax, qword [rsp + 0x1f8]
mov rbx, qword [rsp + 0x200]
call fcn.00476ea0
mov rcx, qword [rsp + 0x168]
nop
test rcx, rcx
je 0x51798a
lea rdx, [rsp + 0x168]
cmp rcx, rdx
je 0x51799a
jmp 0x518cd8
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x178]
lea r8, [rdx + rbx]
mov r9, qword [rsp + 0x170]
cmp rcx, r8
jae 0x517a06
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x128], rax
mov qword [rsp + 0xd8], rdx
mov rax, r9
mov rdi, rbx
lea rsi, [0x0054fdc0]
mov rbx, r8
call fcn.0044b0a0
mov rdx, qword [rsp + 0xd8]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x80]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0x160], r9
add rdx, r9
mov rsi, rax
mov rax, rdx
mov rdi, rbx
mov rbx, rsi
mov rcx, rdi
call fcn.004661e0
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x208]
test rdx, rdx
je 0x517a77
mov rsi, qword [rdx]
jmp 0x517a79
xor esi, esi
mov qword [rsp + 0xb0], rsi
lea rax, [0x0054fa80]
xor ebx, ebx
mov rcx, rsi
call fcn.0044afc0
mov qword [rsp + 0x158], rax
lea rdi, [rsp + 0x188]
lea rdi, [rdi - 0x20]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00465b0b
mov rbp, qword [rbp]
mov rbx, qword [rsp + 0x208]
lea rcx, [rsp + 0x188]
lea rax, [0x005582e0]
call fcn.0040f360
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x158]
xor edx, edx
jmp 0x517b27
xor eax, eax
xor ebx, ebx
add rsp, 0x1e8
pop rbp
ret
mov qword [rsp + 0x138], rcx
mov qword [rcx + rsi], rdx
lea rax, [rsp + 0x188]
call fcn.0040f600
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x188]
test r8, r8
je 0x517bca
lea rbx, [rdx + 1]
mov rdx, qword [r8]
mov r8, qword [r8 + 8]
cmp rax, rbx
jae 0x517b8b
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0x148], rdx
mov edi, 1
lea rsi, [0x0054fa80]
mov rdx, rax
mov rax, rcx
mov rcx, rdx
call fcn.0044b0a0
mov rdx, qword [rsp + 0x148]
mov r8, qword [rsp + 0xc0]
mov rsi, rcx
mov rcx, rax
mov rax, rsi
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xb0], rax
lea rsi, [rbx - 1]
shl rsi, 4
mov qword [rcx + rsi + 8], r8
cmp dword [0x00730d00], 0
je 0x517af6
call fcn.00465460
mov qword [r11], rdx
mov rdi, qword [rcx + rsi]
mov qword [r11 + 8], rdi
jmp 0x517af6
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0x150], rcx
mov rbx, rdx
mov rdx, rax
mov rax, rcx
mov rcx, rdx
call fcn.0040ad60
mov rbx, rax
lea rax, [0x005d6e40]
call fcn.0047a260
mov rdx, qword [rsp + 0x150]
xor eax, eax
jmp 0x517c1d
mov rdx, qword [rsp + 0x158]
add rdx, 0x10
mov rax, qword [rsp + 0xd8]
inc rax
mov rsi, qword [rsp + 0xa8]
cmp rax, rsi
jge 0x5182b6
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x158], rdx
mov rdi, qword [rdx + 8]
mov qword [rsp + 0xb8], rdi
mov rcx, qword [rdx]
mov qword [rsp + 0x140], rcx
lea rax, [0x005582e0]
mov rbx, qword [rsp + 0x208]
call fcn.00411ca0
mov rdx, qword [rsp + 0x168]
mov rsi, qword [rax + 8]
mov r8, qword [rax]
nop
nop
test rdx, rdx
je 0x517c91
lea r9, [rsp + 0x168]
cmp rdx, r9
je 0x517ca1
jmp 0x518cc5
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0xe0], r8
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x517cfc
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov rsi, qword [rsp + 0x48]
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], 0x3b
mov rdx, qword [rsp + 0x168]
nop
nop
test rdx, rdx
je 0x517d2a
lea r9, [rsp + 0x168]
cmp rdx, r9
je 0x517d3a
jmp 0x518cb2
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x517d88
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov rsi, qword [rsp + 0x48]
mov r8, qword [rsp + 0xe0]
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], 0x20
mov rbx, qword [rsp + 0xb8]
nop dword [rax]
test rbx, rbx
je 0x5182a9
mov rax, qword [rsp + 0x140]
lea rcx, [0x005acea0]
call fcn.00477540
nop dword [rax]
test rax, rax
jge 0x5182a9
mov rax, qword [rsp + 0x140]
mov rbx, qword [rsp + 0xb8]
call fcn.00476ea0
mov rcx, qword [rsp + 0x168]
nop
test rcx, rcx
je 0x517dfe
lea rdx, [rsp + 0x168]
cmp rcx, rdx
je 0x517e0e
jmp 0x518c9f
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x178]
lea r8, [rdx + rbx]
mov r9, qword [rsp + 0x170]
cmp rcx, r8
jae 0x517e74
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0xd0], rdx
mov rax, r9
mov rdi, rbx
lea rsi, [0x0054fdc0]
mov rbx, r8
call fcn.0044b0a0
mov rdx, qword [rsp + 0xd0]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x68]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0x160], r9
mov qword [rsp + 0xc8], r8
add rdx, r9
mov rsi, rax
mov rax, rdx
mov rdi, rbx
mov rbx, rsi
mov rcx, rdi
nop
call fcn.004661e0
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
nop
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xe0]
xor eax, eax
jmp 0x5182ed
cmp rax, rdx
jge 0x517f91
mov r8, qword [rsp + 0x168]
nop
nop
nop dword [rax]
test r8, r8
je 0x517f17
lea r9, [rsp + 0x168]
cmp r8, r9
je 0x517f27
jmp 0x518c8c
lea r8, [rsp + 0x168]
mov qword [rsp + 0x168], r8
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov r8, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x517f83
mov rax, r8
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xe0]
mov r8, rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x178], rbx
mov byte [rbx + r8 - 1], 0x2a
mov r8, qword [rsp + 0x168]
nop
nop
nop dword [rax + rax]
test r8, r8
je 0x517fb7
lea r9, [rsp + 0x168]
cmp r8, r9
je 0x517fc7
jmp 0x518c79
lea r8, [rsp + 0x168]
mov qword [rsp + 0x168], r8
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov r8, qword [rsp + 0x170]
cmp rcx, rbx
jb 0x517fec
cmp rax, rdx
jmp 0x518033
mov rax, r8
mov edi, 1
lea rsi, [0x0054fdc0]
nop dword [rax + rax]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x48]
cmp rdx, rcx
mov rdx, rcx
mov rsi, qword [rsp + 0xe0]
mov r8, rax
mov qword [rsp + 0x178], rbx
mov byte [rbx + r8 - 1], 0x3d
jge 0x5180ff
mov r8, qword [rsp + 0x168]
nop
test r8, r8
je 0x51806a
lea r9, [rsp + 0x168]
nop dword [rax]
cmp r8, r9
je 0x51807a
jmp 0x518c66
lea r8, [rsp + 0x168]
mov qword [rsp + 0x168], r8
mov rbx, qword [rsp + 0x178]
lea r8, [rbx + 7]
mov rcx, qword [rsp + 0x180]
mov rax, qword [rsp + 0x170]
cmp rcx, r8
jae 0x5180cf
mov qword [rsp + 0xd0], rbx
mov rbx, r8
mov edi, 7
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xe0]
mov r8, rbx
mov rbx, qword [rsp + 0xd0]
mov dword [rax + rbx], 0x2d667475
mov dword [rax + rbx + 3], 0x2727382d
mov qword [rsp + 0x178], r8
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
xor eax, eax
xor ecx, ecx
jmp 0x518740
nop
test rdx, rdx
jne 0x518109
xor eax, eax
jmp 0x518130
mov rax, rsi
mov rbx, rdx
lea rcx, [0x005acea0]
call fcn.00477540
test rax, rax
setl dl
mov rsi, qword [rsp + 0xe0]
mov eax, edx
mov rdx, qword [rsp + 0x48]
test al, al
jne 0x5181cc
mov r8, qword [rsp + 0x168]
nop
test r8, r8
je 0x518158
lea r9, [rsp + 0x168]
cmp r8, r9
je 0x518168
jmp 0x51872a
lea r8, [rsp + 0x168]
mov qword [rsp + 0x168], r8
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x5181b6
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xe0]
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], 0x22
xor eax, eax
xor ecx, ecx
jmp 0x51836b
mov r8, qword [rsp + 0x168]
nop
nop
test r8, r8
je 0x5181ed
lea r9, [rsp + 0x168]
cmp r8, r9
je 0x5181fd
jmp 0x518355
lea r8, [rsp + 0x168]
mov qword [rsp + 0x168], r8
mov rcx, qword [rsp + 0x180]
mov r8, qword [rsp + 0x178]
lea rbx, [rdx + r8]
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x51824a
mov qword [rsp + 0xd0], r8
mov rdi, rdx
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xe0]
mov r8, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x160], rax
lea rdi, [rax + r8]
mov rax, rdi
mov rbx, rsi
mov rcx, rdx
call fcn.004661e0
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
jmp 0x517c06
xor eax, eax
xor ebx, ebx
add rsp, 0x1e8
pop rbp
ret
mov rax, qword [rsp + 0x170]
mov rcx, rax
neg rcx
mov rbx, qword [rsp + 0x178]
cmp rbx, rcx
ja 0x5182da
add rsp, 0x1e8
pop rbp
ret
test rax, rax
je 0x5182e5
nop
call fcn.0045c7c0
call fcn.0045c800
mov rax, r9
mov qword [rsp + 0xd0], rax
cmp rax, rdx
jge 0x517eed
movzx r8d, byte [rsi + rax]
cmp r8d, 0x80
jge 0x518312
lea r9, [rax + 1]
jmp 0x518340
mov rbx, rdx
mov rcx, rax
mov rax, rsi
nop dword [rax + rax]
call fcn.0045c980
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xe0]
mov r8d, eax
mov r9, rbx
mov rax, qword [rsp + 0xd0]
lea r10d, [r8 - 0x20]
cmp r10d, 0x5e
jbe 0x5182ea
cmp r8d, 9
je 0x5182ea
jmp 0x517eea
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
inc rax
cmp rax, rdx
jge 0x518536
movzx r8d, byte [rsi + rax]
cmp r8b, 0x22
je 0x518386
nop
cmp r8b, 0x5c
jne 0x518368
cmp rcx, rax
ja 0x51871c
mov rdi, rax
sub rdi, rcx
mov r8, rdi
neg r8
sar r8, 0x3f
and rcx, r8
mov r8, qword [rsp + 0x168]
lea rbx, [rcx + rsi]
nop
test r8, r8
je 0x5183ca
lea r9, [rsp + 0x168]
nop dword [rax]
cmp r8, r9
je 0x5183da
jmp 0x518709
lea r8, [rsp + 0x168]
mov qword [rsp + 0x168], r8
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x180]
mov r8, qword [rsp + 0x178]
lea r9, [rdi + r8]
mov r10, qword [rsp + 0x170]
nop
cmp rcx, r9
jae 0x518447
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0xf8], rbx
mov rax, r10
mov rbx, r9
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov rdi, qword [rsp + 0x58]
mov r8, qword [rsp + 0xd0]
mov r10, rax
mov r9, rbx
mov rbx, qword [rsp + 0xf8]
mov qword [rsp + 0xd0], r9
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x160], r10
lea rax, [r10 + r8]
mov rcx, rdi
call fcn.004661e0
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x168]
nop
test rdx, rdx
je 0x5184bb
lea r8, [rsp + 0x168]
cmp rdx, r8
je 0x5184cb
jmp 0x5186f6
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x51850c
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], 0x5c
mov rax, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xe0]
mov rcx, rax
jmp 0x518368
cmp rcx, rdx
ja 0x5186eb
sub rdx, rcx
mov rdi, rdx
neg rdx
sar rdx, 0x3f
and rcx, rdx
mov rdx, qword [rsp + 0x168]
lea rbx, [rcx + rsi]
nop
nop dword [rax]
test rdx, rdx
je 0x518577
lea r8, [rsp + 0x168]
cmp rdx, r8
je 0x518587
jmp 0x5186d8
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x178]
lea r8, [rdi + rdx]
mov rax, qword [rsp + 0x170]
cmp rcx, r8
jae 0x5185ea
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0xf0], rbx
mov rbx, r8
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov rdx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xc8]
mov r8, rbx
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0x160], rax
mov qword [rsp + 0xc8], r8
add rdx, rax
mov rax, rdx
mov rcx, rdi
call fcn.004661e0
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x168]
nop
test rdx, rdx
je 0x51865d
lea r8, [rsp + 0x168]
cmp rdx, r8
je 0x51866d
jmp 0x5186c5
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x5186ae
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], 0x22
nop dword [rax + rax]
jmp 0x517c06
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
mov rax, rcx
mov rcx, rdx
call fcn.004658c0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
mov rdx, rax
mov rax, rcx
mov rcx, rdx
call fcn.004658c0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
inc rax
cmp rax, rdx
jge 0x518ae0
mov qword [rsp + 0xa0], rax
movzx r8d, byte [rsi + rax]
mov byte [rsp + 0x45], r8b
lea r9d, [r8 - 0x21]
nop
cmp r9b, 0x5e
jb 0x51876d
mov ebx, 1
jmp 0x5187e3
cmp r8b, 0x2a
jne 0x518780
mov ebx, 1
jmp 0x5187e3
cmp r8b, 0x27
jne 0x51878d
mov ebx, 1
jmp 0x5187e3
cmp r8b, 0x25
jne 0x51879a
mov ebx, 1
jmp 0x5187e3
mov qword [rsp + 0x90], rcx
nop
nop
lea rax, [0x00586159]
mov ebx, 0xf
mov ecx, r8d
call fcn.00476120
test rax, rax
setge dl
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xe0]
movzx r8d, byte [rsp + 0x45]
mov ebx, edx
mov rdx, qword [rsp + 0x48]
test bl, bl
je 0x51873d
cmp rcx, rax
ja 0x518c58
mov rdi, rax
sub rdi, rcx
mov r9, rdi
neg r9
sar r9, 0x3f
and rcx, r9
mov r9, qword [rsp + 0x168]
lea rbx, [rsi + rcx]
nop
test r9, r9
je 0x51882b
lea r10, [rsp + 0x168]
cmp r9, r10
je 0x51883b
jmp 0x518c45
lea r9, [rsp + 0x168]
mov qword [rsp + 0x168], r9
mov rcx, qword [rsp + 0x180]
mov r9, qword [rsp + 0x178]
lea r10, [r9 + rdi]
mov r11, qword [rsp + 0x170]
cmp rcx, r10
jae 0x5188a0
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0xd0], r9
mov rax, r11
mov rbx, r10
lea rsi, [0x0054fdc0]
nop
call fcn.0044b0a0
mov rdi, qword [rsp + 0x60]
mov r9, qword [rsp + 0xd0]
mov r11, rax
mov r10, rbx
mov rbx, qword [rsp + 0x108]
mov qword [rsp + 0xd0], r10
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x160], r11
lea rax, [r11 + r9]
mov rcx, rdi
nop
call fcn.004661e0
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
mov rdx, qword [rsp + 0x168]
nop
nop
nop
test rdx, rdx
je 0x518917
lea r8, [rsp + 0x168]
cmp rdx, r8
je 0x518927
jmp 0x518c2f
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x518968
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], 0x25
movzx edx, byte [rsp + 0x45]
mov r8d, edx
shr dl, 4
movzx edx, dl
mov r9, qword [rsp + 0x168]
lea r10, [0x00586782]
movzx edx, byte [r10 + rdx]
nop
test r9, r9
je 0x5189af
lea r11, [rsp + 0x168]
cmp r9, r11
je 0x5189bf
jmp 0x518c1c
lea r9, [rsp + 0x168]
mov qword [rsp + 0x168], r9
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x518a16
mov byte [rsp + 0x47], dl
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
movzx edx, byte [rsp + 0x47]
movzx r8d, byte [rsp + 0x45]
lea r10, [0x00586782]
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], dl
and r8d, 0xf
mov rdx, qword [rsp + 0x168]
movzx r8d, byte [r8 + r10]
nop
test rdx, rdx
je 0x518a4b
lea r9, [rsp + 0x168]
cmp rdx, r9
je 0x518a5b
jmp 0x518c09
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x178]
inc rbx
mov rax, qword [rsp + 0x170]
cmp rcx, rbx
jae 0x518aa7
mov byte [rsp + 0x46], r8b
mov edi, 1
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x170], rax
movzx r8d, byte [rsp + 0x46]
mov qword [rsp + 0x178], rbx
mov byte [rbx + rax - 1], r8b
mov rcx, qword [rsp + 0xa0]
lea rdx, [rcx + 1]
mov rax, rcx
mov rsi, qword [rsp + 0xe0]
mov rcx, rdx
mov rdx, qword [rsp + 0x48]
jmp 0x51873d
cmp rcx, rdx
ja 0x518bfe
sub rdx, rcx
mov rdi, rdx
neg rdx
sar rdx, 0x3f
and rcx, rdx
mov rdx, qword [rsp + 0x168]
lea rbx, [rsi + rcx]
nop
test rdx, rdx
je 0x518b1d
lea r8, [rsp + 0x168]
cmp rdx, r8
je 0x518b2d
jmp 0x518beb
lea rdx, [rsp + 0x168]
mov qword [rsp + 0x168], rdx
mov rcx, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x178]
lea r8, [rdi + rdx]
mov rax, qword [rsp + 0x170]
cmp rcx, r8
jae 0x518b90
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xc8], rdi
mov qword [rsp + 0x100], rbx
mov rbx, r8
lea rsi, [0x0054fdc0]
call fcn.0044b0a0
mov rdx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xc8]
mov r8, rbx
mov rbx, qword [rsp + 0x100]
mov qword [rsp + 0xd0], r8
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x160], rax
add rdx, rax
mov rax, rdx
mov rcx, rdi
call fcn.004661e0
mov rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x178], rdx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x180], rdx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x170], rdx
jmp 0x517c06
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
mov rax, rcx
mov rcx, rdx
call fcn.004658c0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
nop dword [rax]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
mov rdx, rax
mov rax, rcx
mov rcx, rdx
call fcn.004658c0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
call fcn.004362a0
lea rax, [0x0054fa80]
lea rbx, [0x005d5810]
nop
call fcn.004362a0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
call fcn.00463540
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
jmp fcn.00517580