Function at 0x1800503fc
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck
Parse credit card information
Parse pe header

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
mov r12, qword [rdx]
xor r10d, r10d
mov rbx, qword [r8]
mov edx, r10d
mov rdi, r9
mov dword [rbp - 0x40], r10d
mov r9d, dword [rcx]
mov r8d, r10d
mov eax, r9d
mov dword [rbp - 0x50], r10d
shr eax, 9
mov r11d, r9d
and eax, 1
shr r11d, 0xb
mov dword [rbp + 0x24], eax
and r11d, 1
xor eax, 1
mov dword [rbp - 0x1c], r10d
mov dword [rbp + 0x20], eax
mov rcx, r12
lea eax, [r10 - 2]
mov dword [rbp - 0x38], r10d
mov dword [rbp - 0x60], eax
mov r13d, eax
mov dword [rsp + 0x7c], eax
mov r14d, eax
mov dword [rsp + 0x78], eax
mov r15d, r10d
mov dword [rbp - 0x74], eax
mov eax, r9d
and eax, 1
mov dword [rsp + 0x68], r10d
shl eax, 8
mov dword [rbp - 0x20], r10d
mov qword [rbp - 0x58], r10
mov qword [rbp - 0x10], r10
mov r10, qword [rbp + 0xd0]
mov dword [rbp - 0x34], eax
mov dword [rbp - 0x7c], r9d
mov qword [rsp + 0x70], r12
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x28], r12
mov qword [rbp - 0x68], rdx
mov dword [rbp - 0x80], r11d
mov r11, qword [rbp + 0xc8]
mov qword [rsp + 0x60], rbx
movzx esi, byte [rbx]
mov rax, qword [r11 + 0x20]
add rax, 0x1000
test r10, r10
je 0x180050560
cmp r12, rax
ja 0x180052cbe
cmp r12, rcx
cmovb r12, rcx
mov eax, r12d
mov qword [rsp + 0x70], r12
sub eax, ecx
add dword [r10], eax
test r15, r15
je 0x180050551
mov rcx, qword [rbp + 0x28]
cmp r15, rcx
jbe 0x18005055a
mov r8, r12
mov rdx, r15
sub r8, r15
call fcn.18003152c
mov rcx, qword [rbp + 0x28]
mov rbx, qword [rsp + 0x60]
mov rax, rcx
mov r11, qword [rbp + 0xc8]
sub rax, r15
mov r10, qword [rbp + 0xd0]
add r12, rax
mov r9d, dword [rbp - 0x7c]
mov r15, rcx
mov rdx, qword [rbp - 0x68]
mov r8d, dword [rsp + 0x68]
mov qword [rbp - 0x58], rcx
jmp 0x180050555
mov r12, qword [rbp + 0x28]
mov qword [rsp + 0x70], r12
mov qword [rbp + 0x30], r12
jmp 0x18005056a
cmp qword [r11 + 0x40], rax
ja 0x180052cbe
xor ecx, ecx
test r8d, r8d
je 0x18005060e
test esi, esi
je 0x18005060e
cmp esi, 0x5c
jne 0x180050597
cmp byte [rbx + 1], 0x45
jne 0x180050597
mov r8d, ecx
mov dword [rsp + 0x68], ecx
inc rbx
jmp 0x180050c91
test rdx, rdx
je 0x1800505ca
test r10, r10
jne 0x1800505c6
movzx ecx, byte [rdx + 2]
movzx eax, byte [rdx + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [r11 + 0x30]
mov eax, ebx
mov byte [rdx + 5], bl
sar eax, 8
mov byte [rdx + 4], al
xor ecx, ecx
mov rbx, qword [rsp + 0x60]
mov qword [rbp - 0x68], rcx
xor edx, edx
bt r9d, 0xe
jae 0x180051352
mov word [r12], 0xff4d
mov eax, ebx
sub eax, dword [r11 + 0x30]
sar rax, 8
mov byte [r12 + 2], al
sub bl, byte [r11 + 0x30]
mov byte [r12 + 3], bl
mov word [r12 + 4], dx
mov rbx, qword [rsp + 0x60]
mov qword [rbp - 0x68], r12
add r12, 6
jmp 0x180051352
lea eax, [rsi - 0x2a]
cmp eax, 1
jbe 0x18005068e
cmp esi, 0x3f
je 0x18005068e
cmp esi, 0x7b
jne 0x18005063b
lea rcx, [rbx + 1]
call fcn.1800539ac
mov r11, qword [rbp + 0xc8]
xor ecx, ecx
mov r8d, dword [rsp + 0x68]
test eax, eax
jne 0x18005068e
mov rdx, qword [rbp - 0x68]
mov r14d, ecx
test rdx, rdx
je 0x180050694
mov ecx, dword [rbp - 0x1c]
mov eax, ecx
dec ecx
mov dword [rbp - 0x1c], ecx
xor ecx, ecx
test eax, eax
jg 0x180050694
cmp qword [rbp + 0xd0], rcx
jne 0x180050685
movzx ecx, byte [rdx + 2]
movzx eax, byte [rdx + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [r11 + 0x30]
mov eax, ebx
mov byte [rdx + 5], bl
sar eax, 8
mov byte [rdx + 4], al
xor ecx, ecx
mov rbx, qword [rsp + 0x60]
mov rdx, rcx
mov qword [rbp - 0x68], rcx
jmp 0x180050694
mov r14d, 1
mov r9d, dword [rbp - 0x7c]
test r9b, 8
je 0x180050725
mov rax, qword [r11 + 0x18]
test byte [rsi + rax], 1
jne 0x1800514bf
cmp esi, 0x23
jne 0x180050725
inc rbx
xor esi, esi
mov qword [rsp + 0x60], rbx
mov dl, byte [rbx]
test dl, dl
je 0x180050725
cmp dword [r11 + 0x70], esi
je 0x1800507c2
mov rdx, qword [r11 + 0x38]
cmp rbx, rdx
jae 0x1800507f1
mov r9d, dword [rbp - 0x80]
lea rdi, [r11 + 0x74]
mov r8, rdi
mov rcx, rbx
call fcn.1800598fc
mov rbx, qword [rsp + 0x60]
mov r11, qword [rbp + 0xc8]
test eax, eax
je 0x1800507f1
mov eax, dword [rdi]
dec eax
cdqe
add rbx, rax
mov qword [rsp + 0x60], rbx
cmp byte [rbx], sil
jne 0x180050c7c
mov rdi, qword [rbp + 0xa8]
mov r9d, dword [rbp - 0x7c]
xor edx, edx
bt r9d, 0xe
jae 0x18005076a
test r14d, r14d
jne 0x18005076a
mov word [r12], 0xff4d
mov eax, ebx
sub eax, dword [r11 + 0x30]
sar rax, 8
mov byte [r12 + 2], al
sub bl, byte [r11 + 0x30]
mov byte [r12 + 3], bl
mov word [r12 + 4], dx
mov rbx, qword [rsp + 0x60]
mov qword [rbp - 0x68], r12
add r12, 6
mov qword [rsp + 0x70], r12
cmp esi, 0x2e
jg 0x1800512c8
je 0x180051282
mov ecx, esi
test esi, esi
je 0x1800512f8
sub ecx, 0x24
je 0x180051264
sub ecx, 4
je 0x180050818
sub ecx, 1
je 0x1800512f8
sub ecx, 1
je 0x180050808
cmp ecx, 1
jne 0x18005134d
mov r8d, ecx
mov dword [rbp - 0x40], ecx
or ecx, 0xffffffff
mov edi, ecx
mov dword [rbp - 0x78], ecx
mov dword [rbp - 0x50], ecx
jmp 0x1800521a5
mov rcx, qword [r11 + 0x38]
lea rdi, [r11 + 0x74]
movsxd rax, dword [rdi]
sub rcx, rax
cmp rbx, rcx
ja 0x1800507f1
cmp dl, byte [r11 + 0x78]
jne 0x1800507f1
cmp dword [rdi], 1
je 0x180050703
mov al, byte [r11 + 0x79]
cmp byte [rbx + 1], al
je 0x180050703
inc rbx
mov qword [rsp + 0x60], rbx
mov dl, byte [rbx]
test dl, dl
je 0x180050711
jmp 0x1800506c5
or ecx, 0xffffffff
mov edi, ecx
mov dword [rbp - 0x78], ecx
mov dword [rbp - 0x50], ecx
jmp 0x18005219f
mov rax, qword [r11 + 0x40]
xor esi, esi
mov dword [rbp - 0x3c], r9d
mov r10d, esi
mov qword [rbp - 0x10], rax
lea r14d, [rsi + 1]
add rbx, r14
lea r13d, [rsi + 0x59]
mov qword [rsp + 0x60], rbx
mov dword [rbp - 0x78], r13d
cmp byte [rbx], 0x3f
jne 0x18005112f
add rbx, r14
mov qword [rsp + 0x60], rbx
movzx r8d, byte [rbx]
mov ecx, r8d
cmp r8d, 0x3a
ja 0x180050cc8
cmp ecx, 0x3a
je 0x180050cbb
cmp ecx, 0x21
je 0x180050ca8
cmp ecx, 0x23
je 0x180050c4a
cmp ecx, 0x26
je 0x180050c42
cmp ecx, 0x27
je 0x180050f98
cmp ecx, 0x28
je 0x1800508a3
lea eax, [r8 - 0x30]
cmp eax, 9
jbe 0x180050e27
jmp 0x180050cfe
cmp byte [rbx + 1], 0x3f
mov dword [rbp - 0x78], 0x5a
jne 0x1800508c6
mov al, byte [rbx + 2]
cmp al, 0x21
je 0x180050a4c
sub al, 0x3c
cmp al, r14b
jbe 0x180050a4c
mov byte [r12 + 3], 0x5e
mov rbx, qword [rsp + 0x60]
mov dword [rbp - 0x70], 3
lea rdx, [rbx + 1]
mov al, byte [rdx]
cmp al, 0x52
jne 0x180050907
lea rcx, [rbx + 2]
cmp byte [rcx], 0x26
jne 0x180050907
mov rax, qword [rsp + 0x70]
or r10d, 0xffffffff
mov qword [rsp + 0x60], rcx
mov r12d, r10d
mov byte [rax + 3], 0x5f
mov rbx, qword [rsp + 0x60]
jmp 0x18005092e
cmp al, 0x3c
jne 0x18005091b
mov r12d, 0x3e
mov rbx, rdx
mov qword [rsp + 0x60], rdx
jmp 0x18005092a
cmp al, 0x27
jne 0x180050927
mov r12d, 0x27
jmp 0x180050911
mov r12d, esi
or r10d, 0xffffffff
mov r8, qword [r11 + 0x18]
lea rcx, [rbx + 1]
movzx eax, byte [rcx]
test byte [rax + r8], 0x10
je 0x180052bb2
mov qword [rsp + 0x60], rcx
mov edi, esi
movzx edx, byte [rcx]
mov rbx, rcx
mov r13, rcx
mov eax, edx
test byte [rdx + r8], 0x10
je 0x18005099c
lea r9, [0x180000000]
test edi, edi
js 0x180050984
test byte [rax + r9 + 0x61a70], 4
je 0x180050981
lea edi, [rdi + rdi*4]
movzx eax, dl
lea edi, [rdi - 0x18]
lea edi, [rax + rdi*2]
jmp 0x180050984
mov edi, r10d
add rbx, r14
mov qword [rsp + 0x60], rbx
movzx edx, byte [rbx]
mov eax, edx
test byte [rdx + r8], 0x10
jne 0x180050964
mov r9d, dword [rbp - 0x7c]
mov r15d, ebx
sub r15d, r13d
test r12d, r12d
jle 0x1800509bb
movzx eax, byte [rbx]
add rbx, r14
mov qword [rsp + 0x60], rbx
cmp eax, r12d
jne 0x180052b9d
mov al, byte [rbx]
add rbx, r14
mov qword [rsp + 0x60], rbx
cmp al, 0x29
jne 0x180052b9d
cmp qword [rbp + 0xd0], rsi
jne 0x180050a48
mov rsi, qword [r11 + 0x48]
xor eax, eax
mov r14d, eax
cmp dword [r11 + 0x50], eax
jle 0x180050a18
lea rdx, [rsi + 2]
mov r8d, r15d
mov rcx, r13
call fcn.1800314c0
mov r11, qword [rbp + 0xc8]
test eax, eax
je 0x180050a0f
movsxd rax, dword [r11 + 0x54]
inc r14d
add rsi, rax
cmp r14d, dword [r11 + 0x50]
jl 0x1800509e5
mov rbx, qword [rsp + 0x60]
mov r9d, dword [rbp - 0x7c]
cmp r14d, dword [r11 + 0x50]
mov r14d, 1
jge 0x180050b40
movzx eax, byte [rsi + 1]
movzx ecx, byte [rsi]
mov r10, qword [rsp + 0x70]
shl ecx, 8
or ecx, eax
mov eax, ecx
sar eax, 8
mov byte [r10 + 4], al
xor esi, esi
mov byte [r10 + 5], cl
mov r10d, dword [rbp - 0x70]
mov rax, qword [rsp + 0x70]
mov r13d, dword [rbp - 0x78]
mov edx, dword [rbp - 0x7c]
mov r9d, esi
mov ecx, dword [rbp - 0x3c]
cmp r13d, 0x57
mov byte [rax], r13b
mov r15, rsi
mov edi, dword [r11 + 0x68]
cmovge r15, rax
mov qword [rbp - 0x48], rax
lea eax, [r13 - 0x54]
cmp eax, r14d
mov dword [rbp - 0x38], esi
mov rax, qword [rbp + 0xd0]
mov rsi, qword [rbp + 0xa8]
setbe r9b
neg rax
mov qword [rbp - 0x58], r15
lea rax, [rbp - 0x38]
sbb r8, r8
and edx, 7
and r8, rax
mov rax, qword [rbp + 0xc0]
mov qword [rsp + 0x58], r8
lea r8, [rbp - 0x48]
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x28]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x24]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r10d
mov dword [rsp + 0x28], r9d
lea r9, [rsp + 0x60]
mov qword [rsp + 0x20], rsi
call fcn.180052ce4
xor ecx, ecx
test eax, eax
je 0x180052b93
mov r9, qword [rsp + 0x70]
cmp r13d, 0x5a
jne 0x18005116e
mov rdx, r9
mov r8d, ecx
movzx ecx, byte [rdx + 1]
add r8d, r14d
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
add rdx, rcx
cmp byte [rdx], 0x4f
jne 0x180050b08
cmp byte [r9 + 3], 0x60
jne 0x18005114a
cmp r8d, r14d
jg 0x180052c13
mov edx, 0x60
jmp 0x180051171
mov edx, dword [r11 + 0x58]
mov eax, r9d
shr eax, 3
mov r9d, r15d
and eax, r14d
mov r8, r13
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.180053610
xor esi, esi
test eax, eax
jle 0x180050b83
mov r10, qword [rsp + 0x70]
mov ecx, eax
sar ecx, 8
mov byte [r10 + 4], cl
mov byte [r10 + 5], al
mov r11, qword [rbp + 0xc8]
jmp 0x180050a48
test r12d, r12d
jne 0x180052b86
cmp byte [r13], 0x52
jne 0x180050bef
mov ecx, esi
mov edx, r14d
cmp r15d, r14d
jle 0x180050bd1
movsxd rax, edx
movzx r8d, byte [rax + r13]
lea rax, [0x180000000]
test byte [r8 + rax + 0x61a70], 4
je 0x180052b86
lea ecx, [rcx + rcx*4]
add edx, r14d
lea ecx, [rcx - 0x18]
lea ecx, [r8 + rcx*2]
cmp edx, r15d
jl 0x180050b9d
test ecx, ecx
jne 0x180050bd6
mov ecx, 0xffff
mov r10, qword [rsp + 0x70]
mov eax, ecx
sar eax, 8
mov byte [r10 + 3], 0x5f
mov byte [r10 + 4], al
mov byte [r10 + 5], cl
jmp 0x180050b77
cmp r15d, 6
jne 0x180050c23
mov r8d, r15d
lea rdx, str.DEFINE
mov rcx, r13
call fcn.1800314c0
test eax, eax
jne 0x180050c23
mov rax, qword [rsp + 0x70]
mov r10d, r14d
mov r11, qword [rbp + 0xc8]
mov byte [rax + 3], 0x60
jmp 0x180050a51
test edi, edi
jle 0x180052b71
mov r10, qword [rsp + 0x70]
mov eax, edi
sar eax, 8
mov byte [r10 + 4], al
mov byte [r10 + 5], dil
jmp 0x180050b77
mov r12d, r14d
jmp 0x180050ea6
add rbx, r14
mov qword [rsp + 0x60], rbx
mov al, byte [rbx]
test al, al
je 0x180052bc0
cmp al, 0x29
je 0x180050c6e
add rbx, r14
mov qword [rsp + 0x60], rbx
mov al, byte [rbx]
test al, al
jne 0x180050c5c
cmp byte [rbx], sil
je 0x180052bc0
mov r13d, dword [rsp + 0x7c]
mov rdx, qword [rbp - 0x68]
mov r10, qword [rbp + 0xd0]
mov r14d, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x68]
mov rdi, qword [rbp + 0xa8]
inc rbx
mov r9d, dword [rbp - 0x7c]
mov rcx, qword [rbp + 0x30]
jmp 0x1800504c4
mov r13d, 0x53
add rbx, r14
mov qword [rsp + 0x60], rbx
jmp 0x18005113c
add rbx, r14
mov qword [rsp + 0x60], rbx
jmp 0x180051136
sub ecx, 0x3c
je 0x180050f74
sub ecx, r14d
je 0x180050f69
sub ecx, r14d
je 0x180050f5e
sub ecx, 5
je 0x180050eb5
sub ecx, 0xd
je 0x180050e6e
cmp ecx, 2
je 0x180050e1f
lea rax, [rbp - 0x70]
mov ecx, esi
mov dword [rbp - 0x78], ecx
mov edx, esi
mov dword [rbp - 0x70], edx
cmp r8b, 0x29
je 0x180050d8e
cmp r8b, 0x3a
je 0x180050d88
add rbx, r14
movzx ecx, r8b
mov qword [rsp + 0x60], rbx
cmp ecx, 0x2d
je 0x180050d7b
cmp ecx, 0x4a
je 0x180050d6f
cmp ecx, 0x55
je 0x180050d69
cmp ecx, 0x58
je 0x180050d64
cmp ecx, 0x69
je 0x180050d5f
cmp ecx, 0x6d
je 0x180050d5a
cmp ecx, 0x73
je 0x180050d55
cmp ecx, 0x78
jne 0x180052bcb
or dword [rax], 8
jmp 0x180050d7f
or dword [rax], 4
jmp 0x180050d7f
or dword [rax], 2
jmp 0x180050d7f
or dword [rax], r14d
jmp 0x180050d7f
or dword [rax], 0x40
jmp 0x180050d7f
bts dword [rax], 9
jmp 0x180050d7f
bts dword [rax], 0x13
bts dword [r11 + 0x64], 0x1b
jmp 0x180050d7f
lea rax, [rbp - 0x78]
mov r8b, byte [rbx]
cmp r8b, 0x29
jne 0x180050d12
mov edx, dword [rbp - 0x70]
mov ecx, dword [rbp - 0x78]
or edx, r9d
not ecx
and edx, ecx
cmp byte [rbx], 0x29
mov dword [rbp - 0x3c], edx
jne 0x180050cbb
mov rax, qword [r11 + 0x28]
add rax, 3
cmp r12, rax
jne 0x180050dc5
mov rax, qword [rbp + 0xd0]
test rax, rax
je 0x180050dbf
cmp dword [rax], 6
jne 0x180050dc5
mov dword [r11 + 0x64], edx
jmp 0x180050e10
mov eax, edx
xor eax, r9d
test al, 7
je 0x180050deb
mov byte [r12], 0x13
mov al, dl
add r12, r14
and al, 7
mov byte [r12], al
add r12, r14
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x70], r12
mov rax, qword [rbp + 0x90]
mov dword [rax], edx
mov eax, edx
shr eax, 9
and eax, r14d
mov dword [rbp + 0x24], eax
xor eax, r14d
mov dword [rbp + 0x20], eax
mov eax, edx
and eax, r14d
shl eax, 8
mov dword [rbp - 0x34], eax
mov dword [rbp - 0x7c], edx
mov r15, rsi
mov qword [rbp - 0x58], rsi
jmp 0x180050c77
add rbx, r14
mov qword [rsp + 0x60], rbx
mov edi, esi
lea rdx, [0x180000000]
jmp 0x180050e46
lea edi, [rdi + rdi*4]
movzx eax, al
lea edi, [rdi - 0x18]
add rbx, r14
mov qword [rsp + 0x60], rbx
lea edi, [rax + rdi*2]
movzx eax, byte [rbx]
test byte [rax + rdx + 0x61a70], 4
jne 0x180050e32
cmp byte [rbx], 0x29
je 0x180051630
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 0x1d
jmp 0x180052cc4
add rbx, r14
mov qword [rsp + 0x60], rbx
mov r8b, byte [rbx]
lea eax, [r8 - 0x3d]
cmp al, r14b
jbe 0x180050e97
cmp r8b, 0x3c
je 0x180050f98
mov dword [rdi], 0x29
jmp 0x180052cc4
mov eax, 0x3e
mov r12d, esi
cmp r8b, al
sete r12b
mov r13d, dword [rsp + 0x7c]
mov ecx, 0x29
jmp 0x180051550
mov rdx, r12
mov byte [r12], 0x4d
mov rbx, qword [rsp + 0x60]
lea r8, [0x180000000]
mov qword [rbp - 0x68], rdx
add r12, r14
mov dword [rbp - 0x1c], r14d
mov ecx, esi
jmp 0x180050ee4
lea ecx, [rcx + rcx*4]
movzx eax, al
lea ecx, [rcx - 0x18]
lea ecx, [rax + rcx*2]
add rbx, r14
mov qword [rsp + 0x60], rbx
movzx eax, byte [rbx]
test byte [rax + r8 + 0x61a70], 4
jne 0x180050ed8
cmp byte [rbx], 0x29
jne 0x180052be4
cmp ecx, 0xff
jg 0x180052bd9
mov r13d, dword [rsp + 0x7c]
mov r15, rsi
mov byte [r12], cl
add r12, r14
mov eax, dword [rsp + 0x60]
sub eax, dword [r11 + 0x30]
add rax, r14
mov qword [rbp - 0x58], rsi
sar rax, 8
mov byte [r12], al
mov al, byte [rsp + 0x60]
sub al, byte [r11 + 0x30]
add al, r14b
mov word [r12 + 2], si
mov byte [r12 + 1], al
add r12, 4
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x70], r12
jmp 0x180050c80
mov r13d, 0x57
jmp 0x180050cae
mov r13d, 0x52
jmp 0x180050cae
mov al, byte [rbx + 1]
cmp al, 0x21
je 0x180051127
cmp al, 0x3d
je 0x180051118
movzx ecx, al
mov rax, qword [r11 + 0x18]
test byte [rcx + rax], 0x10
je 0x180052c05
mov rcx, qword [r11 + 0x18]
mov edx, 0x27
cmp r8b, 0x3c
lea eax, [rdx + 0x17]
cmove edx, eax
add rbx, r14
mov r15, rbx
jmp 0x180050fb6
add rbx, r14
mov qword [rsp + 0x60], rbx
movzx eax, byte [rbx]
test byte [rax + rcx], 0x10
jne 0x180050fb3
mov r14d, ebx
sub r14d, r15d
cmp qword [rbp + 0xd0], rsi
je 0x180051013
movzx eax, byte [rbx]
cmp eax, edx
jne 0x180052bfa
cmp dword [r11 + 0x50], 0x2710
jge 0x180052bef
lea eax, [r14 + 3]
cmp eax, dword [r11 + 0x54]
jle 0x1800510e0
mov dword [r11 + 0x54], eax
cmp r14d, 0x20
jle 0x1800510e0
mov dword [rdi], 0x30
jmp 0x180052cc4
mov edi, esi
mov rbx, qword [r11 + 0x48]
cmp dword [r11 + 0x50], esi
jle 0x1800510a6
movsxd rsi, r14d
lea rdx, [rbx + 2]
mov r8, rsi
mov rcx, r15
call fcn.1800314d0
xor ecx, ecx
test eax, eax
jne 0x180051061
cmp byte [rsi + rbx + 2], cl
jne 0x18005105c
test dword [rbp - 0x7c], 0x80000
jne 0x180051063
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 0x2b
jmp 0x180052b93
or eax, 0xffffffff
test eax, eax
js 0x18005107b
mov r11, qword [rbp + 0xc8]
inc edi
movsxd rax, dword [r11 + 0x54]
add rbx, rax
cmp edi, dword [r11 + 0x50]
jl 0x180051026
jmp 0x1800510a4
mov rcx, qword [rbp + 0xc8]
mov rdx, rbx
mov eax, dword [rcx + 0x50]
sub eax, edi
imul eax, dword [rcx + 0x54]
movsxd rcx, dword [rcx + 0x54]
add rcx, rbx
movsxd r8, eax
call fcn.18003152c
mov r11, qword [rbp + 0xc8]
xor esi, esi
mov eax, dword [r11 + 0x58]
lea rcx, [rbx + 2]
inc eax
movsxd r8, r14d
sar eax, 8
mov rdx, r15
mov byte [rbx], al
mov al, byte [r11 + 0x58]
inc al
mov byte [rbx + 1], al
call fcn.18003152c
mov r11, qword [rbp + 0xc8]
lea eax, [r14 + 2]
movsxd rcx, eax
mov byte [rcx + rbx], sil
mov rbx, qword [rsp + 0x60]
mov r14d, 1
add rbx, r14
add dword [r11 + 0x50], r14d
mov qword [rsp + 0x60], rbx
add dword [r11 + 0x58], r14d
mov eax, dword [r11 + 0x58]
sar eax, 8
mov byte [r12 + 3], al
mov al, byte [r11 + 0x58]
mov dword [rbp - 0x70], 2
mov r10d, dword [rbp - 0x70]
mov byte [r12 + 4], al
jmp 0x180051140
mov r13d, 0x54
add rbx, 2
jmp 0x180050cb1
mov r13d, 0x55
jmp 0x18005111e
bt r9d, 0xc
jae 0x1800510f2
mov r13d, 0x58
mov dword [rbp - 0x78], r13d
mov rax, qword [rsp + 0x70]
jmp 0x180050a55
cmp r8d, 2
jg 0x180052c1e
cmp r8d, r14d
jne 0x18005116e
mov edx, dword [rbp - 0x78]
or r12d, 0xffffffff
mov eax, r12d
mov ecx, r12d
mov dword [rbp - 0x28], eax
mov dword [rbp - 0x24], ecx
jmp 0x18005117b
mov edx, dword [rbp - 0x78]
mov ecx, dword [rbp - 0x24]
or r12d, 0xffffffff
mov eax, dword [rbp - 0x28]
mov rbx, qword [rsp + 0x60]
cmp byte [rbx], 0x29
jne 0x180052c29
mov r10, qword [rbp + 0xd0]
xor esi, esi
test r10, r10
je 0x1800511d0
mov eax, dword [rbp - 0x38]
add r9, r14
add eax, 0xfffffffa
add dword [r10], eax
mov word [r9], 0x300
add r9, 2
mov byte [r9], 0x4f
add r9, r14
mov word [r9], 0x300
add r9, 2
mov rbx, qword [rsp + 0x60]
mov eax, dword [rbp - 0x28]
mov ecx, dword [rbp - 0x24]
mov qword [rsp + 0x70], r9
jmp 0x1800511d9
mov r8, qword [rbp - 0x48]
mov qword [rsp + 0x70], r8
cmp edx, 0x60
je 0x180051251
mov r14d, dword [rbp - 0x74]
mov r13d, r14d
mov r11d, dword [rsp + 0x78]
mov dword [rbp - 0x60], r11d
mov dword [rsp + 0x7c], r14d
mov dword [rbp - 0x20], esi
cmp edx, 0x57
jl 0x180051247
cmp r14d, 0xfffffffe
jne 0x18005121f
test ecx, ecx
js 0x180051211
mov dword [rbp - 0x74], ecx
mov dword [rbp - 0x20], 1
jmp 0x180051215
mov dword [rbp - 0x74], r12d
mov r13d, r12d
mov dword [rsp + 0x7c], r12d
jmp 0x18005122e
test ecx, ecx
js 0x18005122e
test eax, eax
jns 0x180051232
mov eax, ecx
or eax, edi
mov dword [rbp - 0x28], eax
test eax, eax
js 0x18005124c
mov r14d, eax
mov dword [rsp + 0x78], eax
mov r12, qword [rsp + 0x70]
mov rdx, qword [rbp - 0x68]
jmp 0x180050c8c
cmp edx, 0x52
je 0x18005122e
mov r14d, r11d
jmp 0x180051239
mov r12, qword [rsp + 0x70]
mov r13d, dword [rsp + 0x7c]
mov rdx, qword [rbp - 0x68]
jmp 0x180050c87
mov byte [r12], 0x15
inc r12
mov qword [rbp - 0x58], rdx
mov qword [rsp + 0x70], r12
mov r15, rdx
mov rbx, qword [rsp + 0x60]
jmp 0x180050c7c
mov edx, dword [rbp - 0x74]
mov eax, 0xffffffff
mov r14d, dword [rsp + 0x78]
cmp edx, 0xfffffffe
mov dword [rbp - 0x60], r14d
mov r15, r12
cmove edx, eax
mov qword [rbp - 0x58], r12
mov dword [rbp - 0x74], edx
mov r13d, edx
mov dword [rsp + 0x7c], edx
mov byte [r12], 0xb
inc r12
mov qword [rsp + 0x70], r12
mov rbx, qword [rsp + 0x60]
mov r10, qword [rbp + 0xd0]
jmp 0x18005123e
mov ecx, esi
sub ecx, 0x3f
je 0x180052191
sub ecx, 0x1c
je 0x18005184a
sub ecx, 1
je 0x180051467
sub ecx, 2
je 0x180051442
sub ecx, 0x1d
je 0x180051344
cmp ecx, 1
jne 0x18005134d
mov rcx, qword [rbp + 0xb0]
mov edx, dword [rbp - 0x74]
mov r11d, dword [rsp + 0x78]
mov rax, qword [rbp + 0xd0]
mov dword [rcx], edx
mov rcx, qword [rbp + 0xb8]
mov dword [rcx], r11d
mov rcx, qword [rbp + 0x98]
mov qword [rcx], r12
mov rcx, qword [rbp + 0xa0]
mov qword [rcx], rbx
test rax, rax
je 0x18005133a
sub r12d, dword [rbp + 0x30]
add dword [rax], r12d
mov eax, 1
jmp 0x180052cd0
test r14d, r14d
jne 0x18005140a
mov r14d, dword [rsp + 0x78]
mov edi, 1
mov byte [rbp - 0x18], sil
cmp dword [rbp - 0x80], edx
je 0x180051391
mov edx, 0xc0
cmp esi, edx
jl 0x180051391
inc rbx
mov al, byte [rbx]
and al, dl
cmp al, 0x80
jne 0x180051391
lea rcx, [rbp - 0x17]
mov qword [rsp + 0x60], rbx
inc edi
mov al, byte [rbx]
mov byte [rcx], al
inc rcx
inc rbx
mov al, byte [rbx]
and al, dl
cmp al, 0x80
je 0x180051378
xor esi, esi
mov al, byte [rbp - 0x7c]
mov r15, r12
and al, 1
mov qword [rbp - 0x58], r12
or al, 0x16
mov byte [r12], al
inc r12
mov qword [rsp + 0x70], r12
test edi, edi
je 0x1800513cb
movsxd rbx, edi
lea rdx, [rbp - 0x18]
mov r8, rbx
mov rcx, r12
call fcn.18003152c
add r12, rbx
mov qword [rsp + 0x70], r12
mov edx, dword [rbp - 0x74]
mov dword [rbp - 0x60], r14d
cmp edx, 0xfffffffe
jne 0x180052050
or r11d, 0xffffffff
mov dword [rsp + 0x7c], r11d
mov r13d, r11d
cmp edi, 1
je 0x180052022
cmp dword [rbp - 0x34], esi
je 0x180052022
mov r14d, r11d
mov dword [rsp + 0x78], r11d
mov dword [rbp - 0x74], r11d
jmp 0x1800512b7
lea rcx, [rbx + 1]
mov r9, rdi
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x40]
call fcn.1800540d4
xor edx, edx
mov qword [rsp + 0x60], rax
mov rbx, rax
cmp dword [rdi], edx
jne 0x180052cc4
mov edi, dword [rbp - 0x50]
or ecx, 0xffffffff
mov r8d, dword [rbp - 0x40]
mov dword [rbp - 0x78], edi
jmp 0x1800521a5
test r9b, 2
je 0x18005145d
mov r14d, dword [rbp - 0x74]
mov eax, 0xffffffff
cmp r14d, 0xfffffffe
cmove r14d, eax
mov dword [rbp - 0x74], r14d
mov byte [r12], 0x14
jmp 0x180051269
mov r8d, dword [r11 + 0x58]
lea rcx, [rsp + 0x60]
xor esi, esi
mov rdx, rdi
mov dword [rsp + 0x20], esi
call fcn.180050010
mov r8d, eax
cmp dword [rdi], esi
jne 0x180052b93
test eax, eax
jns 0x18005181c
mov ecx, eax
neg ecx
cmp ecx, 0x14
jne 0x1800514d4
mov rbx, qword [rsp + 0x60]
cmp byte [rbx + 1], 0x5c
jne 0x1800514b4
cmp byte [rbx + 2], 0x45
jne 0x1800514b4
add rbx, 2
jmp 0x180050c7c
mov r8d, 1
mov dword [rsp + 0x68], r8d
mov r10, qword [rbp + 0xd0]
mov r14d, dword [rsp + 0x78]
mov rdx, qword [rbp - 0x68]
jmp 0x180050c91
cmp ecx, 0x13
je 0x180051278
mov edx, dword [rbp - 0x74]
cmp edx, 0xfffffffe
jne 0x1800514f8
lea eax, [rcx - 5]
cmp eax, 0xb
lea r11d, [rdx + 1]
cmovbe edx, r11d
mov dword [rbp - 0x74], edx
jmp 0x1800514fc
or r11d, 0xffffffff
mov r14d, dword [rsp + 0x78]
mov r13d, edx
mov rbx, qword [rsp + 0x60]
mov dword [rbp - 0x60], r14d
mov dword [rsp + 0x7c], edx
cmp ecx, 0x15
jne 0x180051774
lea rax, [rbx + 1]
cmp byte [rax], 0x3c
je 0x18005152c
cmp byte [rax], 0x27
jne 0x180051774
mov r11, qword [rbp + 0xc8]
mov ecx, 0x27
mov qword [rsp + 0x60], rax
mov rbx, rax
cmp byte [rax], 0x3c
mov r12d, esi
lea eax, [rcx + 0x17]
cmove ecx, eax
lea r14d, [rax - 0x3d]
mov rdx, qword [r11 + 0x18]
add rbx, r14
mov r15, rbx
jmp 0x18005155f
add rbx, r14
mov qword [rsp + 0x60], rbx
movzx eax, byte [rbx]
test byte [rax + rdx], 0x10
jne 0x18005155c
mov r14d, ebx
sub r14d, r15d
cmp qword [rbp + 0xd0], rsi
je 0x180051598
movzx eax, byte [rbx]
cmp eax, ecx
jne 0x180052bfa
cmp r14d, 0x20
jg 0x180051008
mov edi, esi
jmp 0x18005161c
mov rsi, qword [r11 + 0x48]
xor eax, eax
mov edi, eax
cmp dword [r11 + 0x50], eax
jle 0x1800515d4
lea rdx, [rsi + 2]
mov r8d, r14d
mov rcx, r15
call fcn.1800314c0
mov r11, qword [rbp + 0xc8]
test eax, eax
je 0x1800515cf
movsxd rax, dword [r11 + 0x54]
inc edi
add rsi, rax
cmp edi, dword [r11 + 0x50]
jl 0x1800515a6
mov rbx, qword [rsp + 0x60]
cmp edi, dword [r11 + 0x50]
jge 0x1800515ea
movzx edi, byte [rsi]
movzx eax, byte [rsi + 1]
shl edi, 8
or edi, eax
xor esi, esi
jmp 0x18005161c
mov eax, dword [rbp - 0x7c]
mov r9d, r14d
mov edx, dword [r11 + 0x58]
mov r8, r15
shr eax, 3
mov rcx, rbx
and eax, 1
mov dword [rsp + 0x20], eax
call fcn.180053610
xor esi, esi
mov edi, eax
test eax, eax
jle 0x180052b86
mov r11, qword [rbp + 0xc8]
test r12d, r12d
mov r12, qword [rsp + 0x70]
je 0x180051783
mov r14d, 1
mov r15, r12
mov rbx, qword [r11 + 0x28]
mov qword [rbp - 0x58], r12
cmp qword [rbp + 0xd0], rsi
jne 0x1800516ff
mov byte [r12], sil
mov esi, dword [rbp - 0x80]
test edi, edi
je 0x18005166b
mov rcx, qword [r11 + 0x28]
mov r8d, edi
mov edx, esi
call fcn.180053228
mov r11, qword [rbp + 0xc8]
mov rbx, rax
test rbx, rbx
jne 0x1800516d3
mov eax, dword [rbp - 0x7c]
mov r9d, edi
mov edx, dword [r11 + 0x58]
xor r8d, r8d
mov rcx, qword [rsp + 0x60]
shr eax, 3
and eax, r14d
mov dword [rsp + 0x20], eax
call fcn.180053610
test eax, eax
js 0x180052b86
mov rdx, qword [rbp + 0xc8]
mov rcx, r12
movsxd rbx, edi
sub rcx, qword [rdx + 0x28]
mov rax, qword [rdx + 0x40]
add rcx, 4
add rbx, qword [rdx + 0x28]
sar rcx, 8
mov byte [rax], cl
mov cl, r12b
sub cl, byte [rdx + 0x28]
mov rax, qword [rdx + 0x40]
add cl, 4
mov byte [rax + 1], cl
add qword [rdx + 0x40], 2
jmp 0x180051706
movzx ecx, byte [rbx + 1]
movzx eax, byte [rbx + 2]
shl ecx, 8
or ecx, eax
jne 0x1800516ff
mov r8, qword [rbp + 0xc0]
mov r9d, esi
mov rdx, r12
mov rcx, rbx
call fcn.180052fc0
test eax, eax
jne 0x180052c34
mov rdx, qword [rbp + 0xc8]
mov r13d, dword [rsp + 0x7c]
mov eax, ebx
mov r10, qword [rbp + 0xd0]
mov r14d, dword [rsp + 0x78]
mov r8d, dword [rsp + 0x68]
mov dword [r12], 0x4c060057
sub eax, dword [rdx + 0x28]
sar rax, 8
mov byte [r12 + 4], al
sub bl, byte [rdx + 0x28]
mov rdx, qword [rbp - 0x68]
mov byte [r12 + 5], bl
mov word [r12 + 6], 0x4f
mov byte [r12 + 8], 6
add r12, 9
cmp dword [rbp - 0x74], 0xfffffffe
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x70], r12
mov dword [rbp - 0x38], 9
jne 0x180050c91
or dword [rbp - 0x74], 0xffffffff
jmp 0x180050c91
cmp ecx, 0x16
jl 0x1800517ec
mov edi, 0xffffffea
sub edi, r8d
jmp 0x18005178f
mov edx, dword [rbp - 0x74]
or r11d, 0xffffffff
mov r14d, dword [rsp + 0x78]
cmp edx, 0xfffffffe
mov byte [r12], 0x4b
mov byte [r12 + 2], dil
mov ecx, edi
cmove edx, r11d
mov qword [rbp - 0x58], r12
mov dword [rbp - 0x74], edx
mov eax, edi
sar eax, 8
mov edx, 1
mov byte [r12 + 1], al
mov r15, r12
shl edx, cl
add r12, 3
mov rcx, qword [rbp + 0xc8]
cmp edi, 0x20
mov eax, 1
mov qword [rsp + 0x70], r12
cmovl eax, edx
or dword [rcx + 0x60], eax
cmp edi, dword [rcx + 0x5c]
jle 0x1800512b7
mov dword [rcx + 0x5c], edi
jmp 0x1800512b7
lea eax, [rcx - 0xd]
test eax, 0xfffffffc
jne 0x1800517ff
cmp ecx, 0xf
jne 0x180052c46
lea eax, [rcx - 5]
mov r15, rsi
cmp eax, 0xb
cmovbe r15, r12
neg r8b
mov byte [r12], r8b
mov qword [rbp - 0x58], r15
jmp 0x1800512af
cmp dword [rbp - 0x80], esi
je 0x180051837
cmp r8d, 0x7f
jle 0x180051837
lea rdx, [rbp - 0x18]
mov ecx, r8d
call fcn.180059ac8
mov edi, eax
jmp 0x180051840
mov byte [rbp - 0x18], r8b
mov edi, 1
mov r14d, dword [rsp + 0x78]
jmp 0x180051393
cmp byte [rbx + 1], 0x3d
mov qword [rbp - 0x58], r12
ja 0x180051886
movzx eax, byte [rbx + 1]
movabs rcx, 0x2400400000000000
bt rcx, rax
jae 0x180051886
mov r8, r11
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.1800503b0
mov rbx, qword [rsp + 0x60]
xor edx, edx
test eax, eax
jne 0x180052c4e
inc rbx
mov qword [rsp + 0x60], rbx
movzx esi, byte [rbx]
cmp esi, 0x5e
jne 0x1800518a9
inc rbx
lea eax, [rsi - 0x5d]
mov qword [rsp + 0x60], rbx
mov dword [rbp - 0x60], eax
movzx esi, byte [rbx]
jmp 0x1800518ac
mov dword [rbp - 0x60], edx
or eax, 0xffffffff
lea rcx, [rbp - 8]
mov r14d, edx
mov dword [rsp + 0x7c], eax
xor edx, edx
lea r8d, [rax + 0x21]
call fcn.1800315e4
mov rbx, qword [rsp + 0x60]
lea rdi, [r12 + 4]
xor r8d, r8d
mov qword [rbp - 0x30], rdi
mov dword [rbp - 0x70], r8d
test esi, esi
je 0x180052c73
mov r11d, dword [rbp - 0x80]
jmp 0x1800518eb
xor r8d, r8d
mov r13d, r14d
mov r12d, r14d
mov r15d, r14d
test r11d, r11d
je 0x180051959
cmp esi, 0x7f
jle 0x180051959
movzx esi, byte [rbx]
cmp esi, 0xc0
jl 0x180051959
mov eax, esi
lea rdx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rdx + 0x61be0]
and esi, dword [rdx + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
mov edx, 1
shl esi, cl
cmp rdx, r8
ja 0x18005194e
movzx eax, byte [rdx + rbx]
sub ecx, 6
and eax, 0x3f
inc rdx
shl eax, cl
or esi, eax
cmp rdx, r8
jle 0x180051938
add rbx, r8
mov qword [rsp + 0x60], rbx
xor r8d, r8d
mov ecx, dword [rsp + 0x68]
test ecx, ecx
je 0x18005198c
cmp esi, 0x5c
jne 0x180051bbc
cmp byte [rbx + 1], 0x45
jne 0x180051bbc
mov eax, dword [rsp + 0x7c]
inc rbx
mov r10, qword [rbp + 0xd0]
mov dword [rsp + 0x68], r8d
jmp 0x180051ecf
mov r9d, dword [rbp - 0x7c]
cmp esi, 0x5c
jne 0x180051bc0
mov rax, qword [rbp + 0xc8]
lea ebx, [rsi - 0x5b]
mov rdx, qword [rbp + 0xa8]
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x20], ebx
mov r8d, dword [rax + 0x58]
call fcn.180050010
mov r10, qword [rbp + 0xa8]
xor r8d, r8d
mov esi, eax
cmp dword [r10], r8d
jne 0x180052b93
mov ecx, eax
neg ecx
cmp ecx, 4
jne 0x1800519ef
lea esi, [rbx + 7]
mov rbx, qword [rsp + 0x60]
mov r9d, dword [rbp - 0x7c]
mov ecx, dword [rsp + 0x68]
jmp 0x180051bc7
cmp ecx, 0x10
jne 0x1800519f9
lea esi, [rcx + 0x48]
jmp 0x1800519dd
cmp ecx, 0xf
jne 0x180051a03
lea esi, [rcx + 0x43]
jmp 0x1800519dd
cmp ecx, 0x14
jne 0x180051a50
mov rbx, qword [rsp + 0x60]
cmp byte [rbx + 1], 0x5c
jne 0x180051a31
cmp byte [rbx + 2], 0x45
jne 0x180051a31
add rbx, 2
mov eax, dword [rsp + 0x7c]
mov r10, qword [rbp + 0xd0]
mov r11d, dword [rbp - 0x80]
jmp 0x180051eca
mov eax, dword [rsp + 0x7c]
mov r8d, 1
mov r10, qword [rbp + 0xd0]
mov r11d, dword [rbp - 0x80]
mov dword [rsp + 0x68], r8d
jmp 0x180051ecf
mov r11, qword [rbp + 0xc8]
test eax, eax
jns 0x180051bb1
mov rdx, qword [r11 + 0x10]
add r14d, 2
cmp qword [rbp + 0xd0], r8
jne 0x180051b89
sub ecx, 5
je 0x180051b63
sub ecx, ebx
je 0x180051b3f
sub ecx, ebx
je 0x180051b19
sub ecx, ebx
je 0x180051af5
sub ecx, ebx
je 0x180051acf
sub ecx, ebx
je 0x180051aa3
cmp ecx, 9
je 0x180051ac5
jmp 0x180051b95
lea rax, [rbp - 8]
mov r8d, 0x20
sub rdx, rax
lea rcx, [rbp - 8]
mov al, byte [rdx + rcx + 0xa0]
or byte [rcx], al
add rcx, rbx
sub r8, rbx
jne 0x180051ab4
mov rbx, qword [rsp + 0x60]
jmp 0x180051a1d
lea rax, [rbp - 8]
mov r8d, 0x20
sub rdx, rax
lea rcx, [rbp - 8]
mov al, byte [rcx + rdx + 0xa0]
not al
or byte [rcx], al
add rcx, rbx
sub r8, rbx
jne 0x180051ae0
jmp 0x180051ac5
lea rax, [rbp - 8]
mov r8d, 0x20
sub rdx, rax
lea rcx, [rbp - 8]
mov al, byte [rcx + rdx]
or byte [rcx], al
add rcx, rbx
sub r8, rbx
jne 0x180051b06
and byte [rbp - 7], 0xf7
jmp 0x180051ac5
lea rax, [rbp - 8]
mov r8d, 0x20
sub rdx, rax
lea rcx, [rbp - 8]
mov al, byte [rcx + rdx]
not al
or byte [rcx], al
add rcx, rbx
sub r8, rbx
jne 0x180051b2a
or byte [rbp - 7], 8
jmp 0x180051ac5
lea rax, [rbp - 8]
mov r8d, 0x20
sub rdx, rax
lea rcx, [rbp - 8]
mov al, byte [rdx + rcx + 0x40]
or byte [rcx], al
add rcx, rbx
sub r8, rbx
jne 0x180051b50
jmp 0x180051ac5
lea rax, [rbp - 8]
mov r8d, 0x20
sub rdx, rax
lea rcx, [rbp - 8]
mov al, byte [rcx + rdx + 0x40]
not al
or byte [rcx], al
add rcx, rbx
sub r8, rbx
jne 0x180051b74
jmp 0x180051ac5
add eax, 0xa
cmp eax, 5
jbe 0x180051ac5
mov r9d, dword [rbp - 0x7c]
mov rbx, qword [rsp + 0x60]
test r9b, 0x40
jne 0x180052c61
movzx esi, byte [rbx]
mov ecx, dword [rsp + 0x68]
jmp 0x180051bce
mov rbx, qword [rsp + 0x60]
mov r9d, dword [rbp - 0x7c]
jmp 0x180051bab
mov r9d, dword [rbp - 0x7c]
mov r10, qword [rbp + 0xa8]
mov r11, qword [rbp + 0xc8]
cmp byte [rbx + 1], 0x5c
jne 0x180051bf2
lea rax, [rbx + 2]
cmp byte [rax], 0x45
jne 0x180051bee
mov qword [rsp + 0x60], rax
mov ecx, r8d
cmp byte [rax + 1], 0x5c
mov rbx, rax
je 0x180051bd4
mov dword [rsp + 0x68], ecx
mov r14, rbx
test ecx, ecx
jne 0x180051ddd
cmp byte [rbx + 1], 0x2d
jne 0x180051ddd
add rbx, 2
mov qword [rsp + 0x60], rbx
cmp byte [rbx], 0x5c
jne 0x180051c5e
cmp byte [rbx + 1], 0x45
jne 0x180051c4e
add rbx, 2
mov qword [rsp + 0x60], rbx
cmp byte [rbx], 0x5c
je 0x180051c15
jmp 0x180051c4e
cmp byte [rbx + 1], 0x51
jne 0x180051c5e
add rbx, 2
mov qword [rsp + 0x60], rbx
cmp byte [rbx], 0x5c
jne 0x180051c55
cmp byte [rbx + 1], 0x45
jne 0x180051c55
add rbx, 2
mov qword [rsp + 0x60], rbx
cmp byte [rbx], 0x5c
je 0x180051c2b
jmp 0x180051c5e
mov ecx, 1
mov dword [rsp + 0x68], ecx
cmp byte [rbx], r8b
je 0x180051f78
test ecx, ecx
jne 0x180051c74
cmp byte [rbx], 0x5d
je 0x180051f78
movzx edi, byte [rbx]
cmp dword [rbp - 0x80], r8d
je 0x180051cd6
cmp edi, 0xc0
jb 0x180051cd6
mov eax, edi
lea rdx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rdx + 0x61be0]
and edi, dword [rdx + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
mov edx, 1
shl edi, cl
cmp rdx, r8
ja 0x180051cca
movzx eax, byte [rdx + rbx]
sub ecx, 6
and eax, 0x3f
inc rdx
shl eax, cl
or edi, eax
cmp rdx, r8
jle 0x180051cb4
mov ecx, dword [rsp + 0x68]
add rbx, r8
mov qword [rsp + 0x60], rbx
test ecx, ecx
jne 0x180051d22
cmp edi, 0x5c
jne 0x180051d22
mov r8d, dword [r11 + 0x58]
lea rcx, [rsp + 0x60]
mov rdx, r10
mov dword [rsp + 0x20], 1
call fcn.180050010
mov r10, qword [rbp + 0xa8]
xor r8d, r8d
mov edi, eax
cmp dword [r10], r8d
jne 0x180052b93
test eax, eax
jns 0x180051d1d
cmp eax, 0xfffffffc
jne 0x180051db7
lea edi, [rax + 0xc]
mov rbx, qword [rsp + 0x60]
cmp edi, esi
jl 0x180052c6a
je 0x180051dd9
mov r11d, dword [rbp - 0x80]
test r11d, r11d
je 0x180051e3a
cmp edi, 0xff
jg 0x180051d5a
mov ecx, dword [rbp - 0x7c]
test cl, 1
je 0x180051e3d
cmp edi, 0x7f
jle 0x180051e3d
mov rbx, qword [rbp - 0x30]
mov ecx, esi
mov dword [rbp - 0x70], 1
mov byte [rbx], 2
inc rbx
mov rdx, rbx
call fcn.180059ac8
movsxd rcx, eax
add rbx, rcx
mov ecx, edi
mov rdx, rbx
call fcn.180059ac8
mov ecx, dword [rbp - 0x7c]
movsxd rdi, eax
add rdi, rbx
mov qword [rbp - 0x30], rdi
test cl, 1
je 0x180051e32
cmp esi, 0x7f
jg 0x180051e32
mov rbx, qword [rsp + 0x60]
mov edi, 0x7f
mov r11d, dword [rbp - 0x80]
jmp 0x180051e3d
cmp eax, 0xfffffff0
jne 0x180051dc4
lea edi, [rax + 0x68]
jmp 0x180051d1d
cmp eax, 0xfffffff1
jne 0x180051dd1
lea edi, [rax + 0x61]
jmp 0x180051d1d
mov rbx, r14
mov qword [rsp + 0x60], rbx
mov rdi, qword [rbp - 0x30]
mov r11d, dword [rbp - 0x80]
test r11d, r11d
je 0x180051f85
cmp esi, 0xff
jg 0x180051e09
mov r8d, dword [rbp - 0x7c]
test r8b, 1
je 0x180051f89
cmp esi, 0x7f
jle 0x180051f89
mov byte [rdi], 1
mov ecx, esi
inc rdi
mov dword [rbp - 0x70], 1
mov rdx, rdi
call fcn.180059ac8
movsxd rcx, eax
mov r14d, r12d
add rdi, rcx
mov qword [rbp - 0x30], rdi
jmp 0x180051ac5
mov r14d, r15d
jmp 0x180051ac5
mov ecx, dword [rbp - 0x7c]
mov r10, qword [rbp + 0xd0]
lea r14d, [rdi + 1]
sub r13d, esi
mov eax, edi
add r14d, r13d
mov dword [rsp + 0x7c], eax
mov dword [rbp - 0x3c], r14d
test r10, r10
jne 0x180051ec6
cmp esi, edi
jg 0x180051ec6
mov r14, qword [rbp + 0xc8]
mov r9d, ecx
and r9d, 1
movsxd r8, esi
mov eax, esi
test esi, esi
jns 0x180051e7b
lea eax, [rsi + 7]
sar eax, 3
movsxd rdx, eax
mov eax, esi
and eax, 7
movzx ecx, byte [rbp + rdx - 8]
bts ecx, eax
mov byte [rbp + rdx - 8], cl
test r9d, r9d
je 0x180051eb5
mov rax, qword [r14 + 8]
movzx ecx, byte [r8 + rax]
mov edx, ecx
and ecx, 7
shr rdx, 3
movzx eax, byte [rbp + rdx - 8]
bts eax, ecx
mov byte [rbp + rdx - 8], al
inc esi
inc r8
cmp esi, edi
jle 0x180051e72
mov r14d, dword [rbp - 0x3c]
mov eax, dword [rsp + 0x7c]
mov rdi, qword [rbp - 0x30]
mov r8d, dword [rsp + 0x68]
inc rbx
mov qword [rsp + 0x60], rbx
movzx esi, byte [rbx]
test esi, esi
je 0x180052c73
cmp esi, 0x5d
jne 0x1800518e8
test r8d, r8d
jne 0x1800518e8
mov ecx, dword [rbp - 0x60]
xor esi, esi
cmp r14d, 1
jne 0x18005207c
test r11d, r11d
je 0x180051f24
mov r9d, dword [rbp - 0x70]
test r9d, r9d
jne 0x180052080
test ecx, ecx
je 0x180051f24
cmp eax, 0x80
jge 0x180052080
mov r14d, dword [rsp + 0x78]
mov dword [rbp - 0x60], r14d
test ecx, ecx
je 0x180051ff7
mov r12, qword [rsp + 0x70]
mov edx, 0xffffffff
mov r14d, dword [rbp - 0x74]
cmp r14d, 0xfffffffe
cmove r14d, edx
mov byte [r12], 0x18
mov r13d, r14d
mov byte [r12 + 1], al
add r12, 2
mov dword [rbp - 0x74], r14d
mov dword [rsp + 0x7c], r14d
mov rbx, qword [rsp + 0x60]
mov r15, qword [rbp - 0x58]
mov qword [rsp + 0x70], r12
jmp 0x1800514c6
mov rbx, r14
mov qword [rsp + 0x60], rbx
jmp 0x180051ddd
mov r8d, dword [rbp - 0x7c]
mov eax, esi
test esi, esi
jns 0x180051f92
lea eax, [rsi + 7]
sar eax, 3
movsxd rdx, eax
mov eax, esi
and eax, 7
movzx ecx, byte [rbp + rdx - 8]
bts ecx, eax
mov byte [rbp + rdx - 8], cl
test r8b, 1
je 0x180051fe1
mov rax, qword [rbp + 0xc8]
movsxd rcx, esi
mov rax, qword [rax + 8]
movzx esi, byte [rcx + rax]
mov eax, esi
test esi, esi
jns 0x180051fca
lea eax, [rsi + 7]
sar eax, 3
movsxd rdx, eax
mov eax, esi
and eax, 7
movzx ecx, byte [rbp + rdx - 8]
bts ecx, eax
mov byte [rbp + rdx - 8], cl
mov r10, qword [rbp + 0xd0]
lea r14d, [r13 + 1]
mov eax, esi
mov dword [rsp + 0x7c], eax
jmp 0x180051eca
test r11d, r11d
je 0x180052018
cmp eax, 0x7f
jle 0x180052018
lea rdx, [rbp - 0x18]
mov ecx, eax
call fcn.180059ac8
mov edi, eax
mov r12, qword [rsp + 0x70]
jmp 0x180051393
mov byte [rbp - 0x18], al
mov edi, 1
jmp 0x18005200e
movzx eax, byte [rbp - 0x18]
or eax, dword [rbp - 0x34]
mov dword [rbp - 0x74], eax
cmp edi, 1
je 0x1800512b7
mov rax, qword [rbp + 0xc8]
movzx r14d, byte [r12 - 1]
or r14d, dword [rax + 0x68]
mov dword [rsp + 0x78], r14d
jmp 0x1800512b7
mov dword [rsp + 0x7c], edx
mov r13d, edx
cmp edi, 1
je 0x180052065
cmp dword [rbp - 0x34], esi
jne 0x1800512b7
mov rax, qword [rbp + 0xc8]
movzx r14d, byte [r12 - 1]
or r14d, dword [rax + 0x68]
or r14d, dword [rbp - 0x34]
jmp 0x180052046
mov r9d, dword [rbp - 0x70]
mov eax, dword [rbp - 0x74]
mov edx, 0xffffffff
mov r11d, dword [rsp + 0x78]
cmp eax, 0xfffffffe
mov dword [rbp - 0x60], r11d
cmove eax, edx
mov dword [rbp - 0x74], eax
mov r13d, eax
mov dword [rsp + 0x7c], eax
test r9d, r9d
je 0x18005212c
mov rbx, qword [rsp + 0x70]
mov byte [rdi], sil
inc rdi
mov byte [rbx], 0x4a
mov byte [rbx + 3], cl
test r14d, r14d
jle 0x1800520fe
or cl, 2
mov r8, rdi
mov byte [rbx + 3], cl
add rbx, 4
sub r8, rbx
mov rdx, rbx
lea rcx, [rbx + 0x20]
call fcn.18003152c
mov r8d, 0x20
lea rdx, [rbp - 8]
mov rcx, rbx
call fcn.18003152c
mov r8d, dword [rsp + 0x68]
lea r12, [rdi + 0x20]
mov qword [rsp + 0x70], r12
jmp 0x180052106
mov r12, rdi
mov qword [rsp + 0x70], rdi
mov r15, qword [rbp - 0x58]
mov rax, r12
sub rax, r15
sar rax, 8
mov byte [r15 + 1], al
mov al, r12b
sub al, r15b
mov byte [r15 + 2], al
mov rbx, qword [rsp + 0x60]
jmp 0x1800514bf
mov r12, qword [rsp + 0x70]
test ecx, ecx
je 0x180052162
mov byte [r12], 0x49
inc r12
test r10, r10
jne 0x180052188
lea rdx, [rbp - 8]
mov rcx, r12
sub rdx, r12
lea r8d, [r10 + 0x20]
mov al, byte [rdx + rcx]
not al
mov byte [rcx], al
inc rcx
sub r8, 1
jne 0x180052150
jmp 0x180052183
mov byte [r12], 0x48
lea rdx, [rbp - 8]
inc r12
mov r8d, 0x20
mov rcx, r12
call fcn.18003152c
mov r10, qword [rbp + 0xd0]
mov r8d, dword [rsp + 0x68]
add r12, 0x20
jmp 0x180051f65
mov edi, 1
or ecx, 0xffffffff
mov dword [rbp - 0x78], edi
mov dword [rbp - 0x50], edi
mov dword [rbp - 0x40], edx
mov r8d, edx
test r15, r15
je 0x180052caf
test r8d, r8d
jne 0x1800521c5
mov r11d, dword [rbp - 0x60]
mov r10d, r13d
mov dword [rsp + 0x78], r11d
mov dword [rbp - 0x74], r13d
jmp 0x1800521ce
mov r10d, dword [rbp - 0x74]
mov r11d, dword [rsp + 0x78]
mov eax, r8d
mov qword [rbp - 0x48], r15
sub eax, edi
mov dword [rbp - 0x70], edx
neg eax
mov r12d, edx
mov esi, edx
mov r9, r15
sbb eax, eax
and eax, 0x200
mov dword [rbp - 0x30], eax
lea rax, [rbx + 1]
cmp byte [rax], 0x2b
jne 0x180052204
mov esi, 1
mov r13d, edx
mov dword [rbp - 0x70], esi
jmp 0x18005220d
cmp byte [rax], 0x3f
jne 0x180052217
mov r13d, dword [rbp + 0x20]
mov rbx, rax
mov qword [rsp + 0x60], rax
jmp 0x18005221b
mov r13d, dword [rbp + 0x24]
mov al, byte [r15]
sub al, 0x16
cmp al, 1
jbe 0x180052785
cmp byte [r15], 0x18
jne 0x180052292
movzx r15d, byte [r15 + 1]
mov r12d, 0xd
test esi, esi
jne 0x180052825
test edi, edi
jns 0x180052825
mov r9, qword [rbp + 0xc8]
lea ecx, [rsi + 0x18]
mov edx, dword [rbp - 0x7c]
mov qword [rsp + 0x30], r9
xor r9d, r9d
mov dword [rsp + 0x28], edx
mov edx, r15d
mov r8d, dword [rbp - 0x80]
lea rax, [rbx + 1]
mov qword [rsp + 0x20], rax
call fcn.18004fa0c
xor r8d, r8d
test eax, eax
je 0x180052288
mov r13d, r8d
mov dword [rbp - 0x70], 1
mov rbx, qword [rsp + 0x60]
jmp 0x180052828
cmp byte [r15], 0x11
jae 0x1800522cf
movzx r15d, byte [r15]
mov r12d, 0x1a
test esi, esi
jne 0x180052825
test edi, edi
jns 0x180052825
mov r9, qword [rbp + 0xc8]
mov ecx, r15d
mov edx, dword [rbp - 0x7c]
mov qword [rsp + 0x30], r9
xor r9d, r9d
mov dword [rsp + 0x28], edx
xor edx, edx
jmp 0x180052265
mov al, byte [r15]
sub al, 0x48
cmp al, 3
jbe 0x1800526ec
mov al, byte [r15]
sub al, 0x57
cmp al, 3
ja 0x180052ca0
mov rax, qword [rbp - 0x58]
mov r15d, edx
mov rsi, qword [rsp + 0x70]
mov r14, rdx
mov r12d, esi
mov dword [rbp - 0x3c], edx
sub r12d, eax
mov qword [rbp + 0x38], rdx
cmp byte [rax], 0x5a
jne 0x180052314
cmp byte [rax + 3], 0x60
je 0x180052c82
cmp r12d, 0x7530
jg 0x180052c91
cmp edi, ecx
jne 0x18005234f
mov rdx, rax
movzx ecx, byte [rdx + 1]
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
add rdx, rcx
cmp byte [rdx], 0x4f
jne 0x180052328
mov rax, qword [rbp - 0x58]
mov r15d, esi
sub r15d, edx
mov dword [rbp - 0x3c], r15d
xor edx, edx
test r8d, r8d
jne 0x18005241d
test edi, edi
jne 0x180052369
mov r12, rax
mov qword [rsp + 0x70], rax
jmp 0x180052b56
mov r9, qword [rbp + 0xc8]
mov r8d, dword [rbp - 0x80]
mov byte [rsi], dl
cmp edi, 1
jg 0x1800523bd
mov rcx, qword [rbp - 0x10]
mov edx, 1
mov qword [rsp + 0x20], rcx
mov rcx, rax
call fcn.18004f92c
mov rax, qword [rbp - 0x58]
movsxd r8, r12d
mov rdx, rax
lea rbx, [rax + 1]
mov rcx, rbx
call fcn.18003152c
mov rcx, qword [rbp - 0x58]
lea eax, [r13 + 0x61]
inc rsi
mov qword [rsp + 0x70], rsi
xor esi, esi
mov byte [rcx], al
jmp 0x180052409
mov rax, qword [rbp - 0x10]
mov edx, 4
mov rbx, qword [rbp - 0x58]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.18004f92c
movsxd r8, r12d
lea rcx, [rbx + 4]
mov rdx, rbx
call fcn.18003152c
add rsi, 4
lea eax, [r13 + 0x61]
mov byte [rbx], al
lea r14, [rbx + 2]
mov word [rbx + 1], 0x58
mov qword [rsp + 0x70], rsi
xor esi, esi
mov byte [rbx + 3], sil
add rbx, 4
mov r9, qword [rbp - 0x48]
dec edi
mov qword [rbp - 0x58], rbx
mov rbx, qword [rsp + 0x60]
jmp 0x1800524fe
xor esi, esi
cmp r8d, 1
jle 0x1800524f7
mov rcx, qword [rbp + 0xd0]
test rcx, rcx
je 0x180052444
lea eax, [r8 - 1]
imul eax, dword [rbp - 0x38]
add dword [rcx], eax
jmp 0x1800524f7
cmp dword [rbp - 0x20], esi
je 0x180052455
test r11d, r11d
cmovs r11d, r10d
mov dword [rsp + 0x78], r11d
cmp r8d, 1
jle 0x1800524f7
mov r15, qword [rsp + 0x70]
lea r14d, [r8 - 1]
mov rdi, qword [rbp - 0x58]
mov rdx, qword [rbp + 0xc8]
movsxd rsi, r12d
mov rbx, qword [rdx + 0x40]
mov r8, rsi
mov rdx, rdi
mov rcx, r15
call fcn.18003152c
mov r8, qword [rbp - 0x10]
mov rdx, qword [rbp + 0xc8]
cmp r8, rbx
jae 0x1800524cb
movzx eax, byte [r8 + 1]
movzx ecx, byte [r8]
shl ecx, 8
or ecx, eax
mov rax, qword [rdx + 0x40]
add ecx, r12d
sar ecx, 8
mov byte [rax], cl
mov cl, byte [r8 + 1]
mov rax, qword [rdx + 0x40]
add cl, r12b
mov byte [rax + 1], cl
add qword [rdx + 0x40], 2
add r8, 2
jmp 0x180052493
add r15, rsi
mov qword [rbp - 0x10], rbx
sub r14, 1
jne 0x180052476
mov rbx, qword [rsp + 0x60]
xor esi, esi
mov r9, qword [rbp - 0x48]
mov edi, dword [rbp - 0x78]
mov r8d, dword [rbp - 0x40]
mov r14, qword [rbp + 0x38]
mov qword [rsp + 0x70], r15
mov r15d, dword [rbp - 0x3c]
test edi, edi
jle 0x180052503
sub edi, r8d
mov dword [rbp - 0x50], edi
test edi, edi
js 0x180052678
mov rcx, qword [rbp + 0xd0]
test rcx, rcx
je 0x18005252c
test edi, edi
jle 0x18005252c
mov eax, dword [rbp - 0x38]
add eax, 7
imul eax, edi
sub eax, 6
add dword [rcx], eax
jmp 0x180052610
sub edi, 1
js 0x180052610
mov r15, qword [rsp + 0x70]
add r13b, 0x61
mov r9, qword [rbp + 0xc8]
movsxd rsi, r12d
mov rbx, qword [r9 + 0x40]
mov byte [r15], r13b
inc r15
test edi, edi
je 0x18005257d
mov byte [r15], 0x58
lea eax, [r15 + 1]
sub eax, r14d
neg r14
lea r14, [r15 + 1]
sbb ecx, ecx
and ecx, eax
mov eax, ecx
mov byte [r15 + 2], cl
sar eax, 8
mov byte [r15 + 1], al
add r15, 3
mov rdx, qword [rbp - 0x58]
mov r8, rsi
mov rcx, r15
call fcn.18003152c
mov r10, qword [rbp - 0x10]
mov r9, qword [rbp + 0xc8]
cmp r10, rbx
jae 0x1800525f0
mov eax, edi
neg eax
mov eax, edi
sbb edx, edx
and edx, 3
inc edx
neg eax
sbb r8b, r8b
and r8b, 3
inc r8b
movzx eax, byte [r10 + 1]
movzx ecx, byte [r10]
shl ecx, 8
or ecx, eax
mov rax, qword [r9 + 0x40]
add ecx, edx
add ecx, r12d
sar ecx, 8
mov byte [rax], cl
mov cl, r8b
add cl, byte [r10 + 1]
add r10, 2
mov rax, qword [r9 + 0x40]
add cl, r12b
mov byte [rax + 1], cl
add qword [r9 + 0x40], 2
cmp r10, rbx
jb 0x1800525b5
add r15, rsi
mov qword [rbp - 0x10], rbx
sub edi, 1
jns 0x180052548
mov rbx, qword [rsp + 0x60]
xor esi, esi
mov r9, qword [rbp - 0x48]
mov qword [rsp + 0x70], r15
mov r12, qword [rsp + 0x70]
test r14, r14
je 0x180052a18
mov r9d, r12d
mov r8, r12
sub r9d, r14d
inc r9d
movsxd rax, r9d
sub r8, rax
movzx edx, byte [r8 + 1]
movzx eax, byte [r8 + 2]
mov byte [r12], 0x4f
shl edx, 8
or edx, eax
mov byte [r12 + 2], r9b
mov rax, r14
sub rax, rdx
neg edx
sbb r14, r14
and r14, rax
mov eax, r9d
sar eax, 8
mov byte [r12 + 1], al
add r12, 3
mov byte [r8 + 1], al
mov byte [r8 + 2], r9b
test r14, r14
jne 0x18005261e
jmp 0x180052a0a
mov r12, qword [rsp + 0x70]
add r13b, 0x50
movsxd rax, r15d
mov rsi, r12
sub rsi, rax
xor r14d, r14d
mov rdi, rsi
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
mov byte [rsi], r13b
sub rdi, rcx
cmp qword [rbp + 0xd0], r14
jne 0x1800526e5
cmp byte [rdi], 0x57
je 0x1800526e5
mov rbx, rdi
mov r8d, dword [rbp - 0x80]
mov rdx, rsi
mov rcx, rbx
call fcn.180053024
test eax, eax
jne 0x1800526e2
movzx ecx, byte [rbx + 1]
movzx eax, byte [rbx + 2]
shl rcx, 8
or rcx, rax
add rbx, rcx
cmp byte [rbx], 0x4e
jne 0x1800526e5
jmp 0x1800526b6
add byte [rdi], 3
xor esi, esi
jmp 0x180052a0f
xor esi, esi
test edi, edi
jne 0x1800526ff
mov r12, r15
mov qword [rsp + 0x70], r15
jmp 0x180052b58
cmp edi, 1
je 0x180052712
mov rax, qword [rbp + 0xc8]
mov dword [rax + 0x6c], 1
test r8d, r8d
jne 0x180052738
cmp edi, ecx
jne 0x180052721
add r13b, 0x40
jmp 0x18005272a
cmp edi, 1
jne 0x180052748
add r13b, 0x44
mov r12, qword [rsp + 0x70]
mov byte [r12], r13b
jmp 0x180052a07
cmp r8d, 1
jne 0x180052748
cmp edi, ecx
jne 0x180052748
add r13b, 0x42
jmp 0x18005272a
mov r12, qword [rsp + 0x70]
add r13b, 0x46
mov eax, r8d
sar eax, 8
cmp edi, ecx
mov byte [r12], r13b
cmove edi, esi
mov byte [r12 + 1], al
mov byte [r12 + 2], r8b
mov eax, edi
sar eax, 8
mov byte [r12 + 3], al
mov byte [r12 + 4], dil
add r12, 5
mov dword [rbp - 0x50], edi
jmp 0x180052a0a
mov r10d, dword [rbp - 0x80]
mov rcx, qword [rsp + 0x70]
test r10d, r10d
je 0x180052801
lea rdx, [rcx - 1]
xor eax, eax
cmp byte [rdx], al
jge 0x180052801
mov ebx, 0x80
jmp 0x1800527a7
dec rdx
mov al, byte [rdx]
and al, 0xc0
cmp al, bl
je 0x1800527a4
mov r15d, ecx
lea rcx, [rbp + 0x18]
sub r15d, edx
movsxd r8, r15d
call fcn.18003152c
mov r10d, dword [rbp - 0x80]
or r15d, ebx
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rbp + 0xc8]
xor r8d, r8d
test esi, esi
jne 0x180052828
test edi, edi
jns 0x180052828
mov rcx, qword [rbp - 0x58]
lea r9, [rbp + 0x18]
mov qword [rsp + 0x30], rdx
mov r8d, r10d
mov edx, dword [rbp - 0x7c]
mov dword [rsp + 0x28], edx
mov edx, r15d
movzx ecx, byte [rcx]
jmp 0x180052269
movzx r15d, byte [rcx - 1]
cmp r8d, 1
jle 0x1800527cd
mov rdx, qword [rbp + 0xc8]
mov r11d, dword [rdx + 0x68]
or r11d, r15d
or r11d, dword [rbp - 0x34]
mov dword [rsp + 0x78], r11d
jmp 0x1800527d4
xor r8d, r8d
mov rdx, qword [rbp - 0x58]
or r9d, 0xffffffff
mov al, byte [rdx]
sub al, 0xd
cmp al, 1
jbe 0x180052840
mov r14d, r9d
mov esi, r9d
jmp 0x180052849
movzx esi, byte [rdx + 1]
movzx r14d, byte [rdx + 2]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x70], rdx
test edi, edi
je 0x180052b51
cmp edi, 1
je 0x18005286e
mov rcx, qword [rbp + 0xc8]
mov dword [rcx + 0x6c], 1
mov ecx, dword [rbp - 0x40]
add r13d, r12d
test ecx, ecx
jne 0x1800528b0
cmp edi, r9d
jne 0x18005288d
add r13b, 0x19
mov byte [rdx], r13b
lea r12, [rdx + 1]
jmp 0x1800529d9
lea r12, [rdx + 1]
cmp edi, 1
jne 0x1800528a2
add r13b, 0x1d
mov byte [rdx], r13b
jmp 0x1800529d9
add r13b, 0x1f
mov eax, edi
mov byte [rdx], r13b
sar eax, 8
jmp 0x1800528e5
cmp ecx, 1
jne 0x1800528f7
cmp edi, r9d
jne 0x1800528c0
add r13b, 0x1b
jmp 0x180052881
mov qword [rsp + 0x70], rax
mov r12, rax
cmp edi, 1
je 0x180052b56
add r13b, 0x1f
lea r12, [rax + 1]
mov byte [rax], r13b
lea eax, [rdi - 1]
sar eax, 8
dec dil
mov byte [r12], al
mov byte [r12 + 1], dil
add r12, 2
jmp 0x1800529d9
add r12b, 0x21
mov eax, ecx
mov byte [rdx], r12b
lea r12, [rdx + 1]
sar eax, 8
mov byte [r12], al
mov byte [r12 + 1], cl
add r12, 2
test edi, edi
jns 0x18005295f
cmp dword [rbp - 0x80], r8d
je 0x180052941
cmp r15d, 0x80
jl 0x180052941
mov ebx, r15d
lea rdx, [rbp + 0x18]
and ebx, 7
mov rcx, r12
mov r8d, ebx
call fcn.18003152c
add r12, rbx
jmp 0x180052959
mov byte [r12], r15b
inc r12
test esi, esi
js 0x180052959
mov byte [r12], sil
mov byte [r12 + 1], r14b
add r12, 2
add r13b, 0x19
jmp 0x1800529b5
cmp edi, ecx
je 0x1800529d9
cmp dword [rbp - 0x80], r8d
je 0x18005298f
cmp r15d, 0x80
jl 0x18005298f
mov ebx, r15d
lea rdx, [rbp + 0x18]
and ebx, 7
mov rcx, r12
mov r8d, ebx
call fcn.18003152c
mov ecx, dword [rbp - 0x40]
add r12, rbx
jmp 0x180052996
mov byte [r12], r15b
inc r12
test esi, esi
js 0x1800529a7
mov byte [r12], sil
mov byte [r12 + 1], r14b
add r12, 2
sub edi, ecx
mov dword [rbp - 0x50], edi
cmp edi, 1
jne 0x1800529be
add r13b, 0x1d
mov byte [r12], r13b
inc r12
jmp 0x1800529d9
add r13b, 0x1f
mov eax, edi
mov byte [r12], r13b
sar eax, 8
mov byte [r12 + 1], al
mov byte [r12 + 2], dil
add r12, 3
xor esi, esi
cmp dword [rbp - 0x80], esi
je 0x180052a03
cmp r15d, 0x80
jl 0x180052a03
mov ebx, r15d
lea rdx, [rbp + 0x18]
and ebx, 7
mov rcx, r12
mov r8d, ebx
call fcn.18003152c
add r12, rbx
jmp 0x180052a0a
mov byte [r12], r15b
inc r12
mov qword [rsp + 0x70], r12
mov rbx, qword [rsp + 0x60]
mov r9, qword [rbp - 0x48]
cmp dword [rbp - 0x70], esi
je 0x180052b58
cmp byte [r9], 0x3b
ja 0x180052a55
movzx eax, byte [r9]
movabs rcx, 0x800400200000000
bt rcx, rax
jae 0x180052a55
movzx eax, byte [r9]
lea rcx, [0x180000000]
movzx eax, byte [rax + rcx + 0x61c20]
add r9, rax
mov qword [rbp - 0x48], r9
mov edi, r12d
sub edi, r9d
test edi, edi
jle 0x180052b58
movzx eax, byte [r9]
cmp eax, 0x2a
ja 0x180052abe
je 0x180052ab8
cmp eax, 0x19
je 0x180052aaa
cmp eax, 0x1b
je 0x180052aa4
cmp eax, 0x1d
je 0x180052a9e
cmp eax, 0x1f
je 0x180052a98
cmp eax, 0x26
je 0x180052a92
cmp eax, 0x28
jne 0x180052adb
mov byte [r9], 0x30
jmp 0x180052aae
mov byte [r9], 0x2f
jmp 0x180052aae
mov byte [r9], 0x25
jmp 0x180052aae
mov byte [r9], 0x24
jmp 0x180052aae
mov byte [r9], 0x23
jmp 0x180052aae
mov byte [r9], 0x22
mov rbx, qword [rsp + 0x60]
jmp 0x180052b58
mov byte [r9], 0x31
jmp 0x180052aae
cmp eax, 0x2c
je 0x180052b48
cmp eax, 0x33
je 0x180052b3f
cmp eax, 0x35
je 0x180052b36
cmp eax, 0x37
je 0x180052b29
cmp eax, 0x39
je 0x180052b23
movsxd r8, edi
lea rcx, [r9 + 3]
mov rdx, r9
call fcn.18003152c
mov rax, qword [rbp - 0x48]
add edi, 3
mov ecx, edi
sar ecx, 8
mov byte [rax], 0x57
mov byte [r12 + 3], 0x4f
mov byte [r12 + 4], cl
mov byte [r12 + 5], dil
add r12, 6
mov rax, qword [rbp - 0x48]
mov qword [rsp + 0x70], r12
mov byte [rax + 1], cl
mov rax, qword [rbp - 0x48]
mov byte [rax + 2], dil
jmp 0x180052aae
mov byte [r9], 0x3f
jmp 0x180052aae
mov eax, 0x3e
mov byte [r9], al
jmp 0x180052aae
mov byte [r9], 0x3d
jmp 0x180052aae
mov byte [r9], 0x3c
jmp 0x180052aae
mov byte [r9], 0x32
jmp 0x180052aae
mov r12, qword [rsp + 0x70]
xor esi, esi
mov rcx, qword [rbp + 0xc8]
mov r15, rsi
mov eax, dword [rbp - 0x30]
mov qword [rbp - 0x58], rsi
or dword [rcx + 0x68], eax
jmp 0x180050c77
mov rsi, qword [rbp + 0xa8]
neg edi
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [rsi], eax
jmp 0x180052b93
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 0xf
mov rbx, qword [rsp + 0x60]
jmp 0x180052cc4
mov rsi, qword [rbp + 0xa8]
sub rbx, r14
mov dword [rsi], 0x1a
jmp 0x180052cc4
add rbx, r14
mov dword [rdi], 0x1c
jmp 0x180052cc4
mov dword [rdi], 0x12
jmp 0x180052cc4
mov dword [rdi], 0xc
sub rbx, r14
jmp 0x180052cc4
mov dword [rdi], 0x26
jmp 0x180052cc4
mov dword [rdi], 0x27
jmp 0x180052cc4
mov dword [rdi], 0x31
jmp 0x180052cc4
mov dword [rdi], 0x2a
jmp 0x180052cc4
add rbx, r14
mov dword [rdi], 0x18
jmp 0x180052cc4
mov dword [rsi], 0x36
jmp 0x180052b93
mov dword [rsi], 0x1b
jmp 0x180052b93
mov dword [rsi], 0xe
jmp 0x180052cc4
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 0x28
jmp 0x180052b93
mov dword [rdi], 0x2d
jmp 0x180052cc4
cmp byte [rbx + 1], 0x3a
mov eax, 0x1f
lea ecx, [rax - 0x12]
cmove eax, ecx
mov dword [rdi], eax
jmp 0x180052cc4
mov dword [r10], 7
jmp 0x180052cc4
mov dword [r10], 8
jmp 0x180052cc4
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 6
jmp 0x180052cc4
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 0x37
jmp 0x180052cc4
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 0x32
jmp 0x180052cc4
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 0xb
jmp 0x180052cc4
mov rsi, qword [rbp + 0xa8]
mov dword [rsi], 9
jmp 0x180052cc4
mov dword [rdi], 0x34
mov rcx, qword [rbp + 0xa0]
xor eax, eax
mov qword [rcx], rbx
add rsp, 0x148
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret