Function at 0x180054194
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov eax, dword [r9 + 4]
mov rdi, r9
mov r11d, r8d
mov rsi, rdx
mov rbx, rcx
cmp dword [r9], eax
jae 0x180058e66
lea rdx, [0x180000000]
mov ecx, 2
inc dword [rdi]
mov r10d, dword [rbp + 0xd8]
cmp r10d, dword [rdi + 8]
jae 0x180058e5f
mov eax, dword [rdi + 0x4c]
mov r9d, dword [rbp + 0xc0]
mov dword [rsp + 0x44], eax
mov eax, dword [rbp + 0xd0]
mov dword [rsp + 0x78], r9d
test cl, al
je 0x18005429a
test al, 4
je 0x180054239
movsxd rax, dword [rdi + 0xa0]
cmp eax, 0x3e8
jge 0x180057958
mov rcx, rax
shl rcx, 4
add rcx, qword [rdi + 0x98]
inc eax
mov dword [rdi + 0xa0], eax
jmp 0x18005423d
lea rcx, [rbp - 0x10]
mov rax, qword [rbp + 0xc8]
mov qword [rcx], rax
mov qword [rcx + 8], rbx
mov qword [rbp + 0xc8], rcx
jmp 0x18005429a
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
jmp 0x180055ba0
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
jmp 0x180055b99
mov r11d, dword [rbp + 0xb0]
lea rdx, [0x180000000]
jmp 0x18005429e
mov r10d, dword [rbp + 0xd8]
jmp 0x180054281
lea rdx, [0x180000000]
mov ecx, dword [rsp + 0x44]
mov eax, 6
and dword [rsp + 0x58], 0
and dword [rsp + 0x60], 0
cmp dword [rdi + 0x58], 0
movzx r8d, byte [rsi]
mov dword [rsp + 0x4c], r8d
je 0x1800542cf
cmp rbx, qword [rdi + 0x70]
jb 0x1800542cf
cmp rbx, qword [rdi + 0x78]
jbe 0x1800542cf
mov dword [rdi + 0x5c], 1
cmp r8d, 0x2f
ja 0x180055443
je 0x18005543c
cmp r8d, 0x13
ja 0x180054a6c
je 0x180054a57
cmp r8d, 8
ja 0x180054729
je 0x1800546a9
test r8d, r8d
je 0x180054653
cmp r8d, 1
je 0x180054f13
cmp r8d, 2
je 0x180054637
jbe 0x180054abc
cmp r8d, 4
jbe 0x1800544d1
cmp r8d, 5
je 0x18005444c
cmp r8d, eax
je 0x1800543c9
cmp r8d, 7
jne 0x180054abc
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
test ecx, ecx
je 0x1800543b0
cmp edx, 0xc0
jb 0x1800543b0
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r8d, r8d
je 0x1800543b0
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x180054398
cmp edx, 0x100
jae 0x1800544c9
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 1
jmp 0x1800544c3
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
test ecx, ecx
je 0x180054430
cmp edx, 0xc0
jb 0x180054430
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r8d, r8d
je 0x180054430
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x180054418
cmp edx, 0x100
jae 0x180058e5b
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 4
je 0x180058e5b
jmp 0x1800544c9
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
test ecx, ecx
je 0x1800544b3
cmp edx, 0xc0
jb 0x1800544b3
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r8d, r8d
je 0x1800544b3
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x18005449b
cmp edx, 0x100
jae 0x1800544c9
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 4
jne 0x180058e5b
inc rsi
jmp 0x180057405
test ecx, ecx
je 0x1800545d4
cmp rbx, qword [rdi + 0x68]
je 0x180054563
lea r8, [rbx - 1]
mov ecx, 0xc0
jmp 0x1800544f1
dec r8
mov al, byte [r8]
and al, cl
cmp al, 0x80
je 0x1800544ee
movzx edx, byte [r8]
cmp edx, ecx
jb 0x180054549
mov eax, edx
lea r9, [0x180000000]
and eax, 0x3f
movzx r10d, byte [rax + r9 + 0x61be0]
and edx, dword [r9 + r10*4 + 0x61bc0]
lea ecx, [r10 + r10*2]
add ecx, ecx
mov r9d, 1
shl edx, cl
cmp r9, r10
ja 0x180054549
movzx eax, byte [r8 + r9]
sub ecx, 6
and eax, 0x3f
inc r9
shl eax, cl
or edx, eax
cmp r9, r10
jle 0x180054532
cmp edx, 0x100
jae 0x180054563
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
je 0x180054563
mov r10d, 1
jmp 0x180054566
xor r10d, r10d
cmp rbx, qword [rdi + 0x70]
jae 0x18005460d
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x1800545c2
mov eax, edx
lea r8, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r8 + 0x61be0]
and edx, dword [r8 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov r8d, 1
shl edx, cl
cmp r8, r9
ja 0x1800545c2
movzx eax, byte [r8 + rbx]
sub ecx, 6
and eax, 0x3f
inc r8
shl eax, cl
or edx, eax
cmp r8, r9
jle 0x1800545ab
cmp edx, 0x100
jae 0x18005460d
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
jmp 0x180054604
cmp rbx, qword [rdi + 0x68]
je 0x1800545f0
movzx ecx, byte [rbx - 1]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 0x10
je 0x1800545f0
mov r10d, 1
jmp 0x1800545f3
xor r10d, r10d
cmp rbx, qword [rdi + 0x70]
jae 0x18005460d
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 0x10
je 0x18005460d
mov ecx, 1
jmp 0x18005460f
xor ecx, ecx
mov al, byte [rsi]
inc rsi
cmp al, 4
jne 0x180054622
xor eax, eax
cmp ecx, r10d
sete al
jmp 0x18005462a
xor eax, eax
cmp ecx, r10d
setne al
test eax, eax
jne 0x180058e5b
jmp 0x1800573f7
movsxd rax, dword [rdi + 0x90]
add rax, qword [rdi + 0x68]
cmp rbx, rax
jne 0x180058e5b
inc rsi
jmp 0x18005429e
mov rsi, qword [rdi + 0xa8]
test rsi, rsi
je 0x180057962
cmp dword [rsi + 8], 0
jne 0x180057962
mov rax, qword [rsi]
mov rcx, qword [rdi + 0x10]
mov qword [rdi + 0xa8], rax
movsxd r8, dword [rsi + 0x28]
mov rdx, qword [rsi + 0x20]
shl r8, 2
call fcn.18003152c
mov rax, qword [rsi + 0x18]
mov r9d, dword [rsp + 0x78]
mov qword [rdi + 0x78], rax
mov rsi, qword [rsi + 0x10]
mov dword [rbp + 0xc0], r9d
jmp 0x180057728
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
test ecx, ecx
je 0x180054710
cmp edx, 0xc0
jb 0x180054710
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r8d, r8d
je 0x180054710
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x1800546f8
cmp edx, 0x100
jae 0x180058e5b
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 1
jmp 0x180054444
sub r8d, 9
je 0x1800549d7
sub r8d, 1
je 0x180054957
sub r8d, 1
je 0x1800548c2
sub r8d, 1
je 0x1800548ad
sub r8d, 3
je 0x180054800
sub r8d, 2
je 0x18005477a
cmp r8d, 1
jne 0x180054abc
cmp rbx, qword [rdi + 0x70]
jb 0x180058e5b
jmp 0x18005464b
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
je 0x1800547f1
cmp dword [rdi + 0x20], 0
je 0x1800547b0
cmp rbx, rcx
jae 0x180058e5b
mov r9d, dword [rsp + 0x44]
lea r8, [rdi + 0x24]
mov rdx, rcx
mov rcx, rbx
call fcn.1800598fc
test eax, eax
je 0x180058e5b
jmp 0x1800547dd
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x180058e5b
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180058e5b
cmp dword [rdi + 0x24], 1
je 0x1800547dd
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
jne 0x180058e5b
movsxd rax, dword [rdi + 0x24]
mov rcx, qword [rdi + 0x70]
sub rcx, rax
cmp rbx, rcx
jne 0x180058e5b
inc rsi
mov r11d, dword [rbp + 0xb0]
jmp 0x1800573f7
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
test ecx, ecx
je 0x18005486b
cmp edx, 0xc0
jb 0x18005486b
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r8d, r8d
je 0x180054867
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x18005484f
mov ecx, dword [rsp + 0x44]
cmp edx, 0xa
jb 0x180058e5b
cmp edx, 0xc
jbe 0x1800548a5
cmp edx, 0xd
je 0x180054897
cmp edx, 0x85
je 0x1800548a5
lea eax, [rdx - 0x2028]
cmp eax, 1
ja 0x180058e5b
jmp 0x1800548a5
cmp rbx, qword [rdi + 0x70]
jae 0x1800548a5
cmp byte [rbx], 0xa
jne 0x1800548a5
inc rbx
inc rsi
jmp 0x180054281
mov rax, rbx
inc rbx
cmp rax, qword [rdi + 0x70]
jae 0x180058e5b
jmp 0x18005464b
test r9b, 4
jne 0x180054924
cmp dword [rdi + 0x20], 0
je 0x1800548f7
mov rdx, qword [rdi + 0x70]
cmp rbx, rdx
jae 0x180054924
mov r9d, ecx
lea r8, [rdi + 0x24]
mov rcx, rbx
call fcn.1800598fc
test eax, eax
jne 0x180058e5b
mov r9d, dword [rbp + 0xc0]
jmp 0x180054924
movsxd rax, dword [rdi + 0x24]
mov rcx, qword [rdi + 0x70]
sub rcx, rax
cmp rbx, rcx
ja 0x180054924
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180054924
cmp dword [rdi + 0x24], 1
je 0x180058e5b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x180058e5b
mov rax, rbx
inc rbx
cmp rax, qword [rdi + 0x70]
jae 0x180058e5b
mov ecx, dword [rsp + 0x44]
test ecx, ecx
je 0x18005494f
jmp 0x180054949
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x18005494f
inc rbx
cmp rbx, qword [rdi + 0x70]
jb 0x18005493e
inc rsi
jmp 0x1800560f4
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
test ecx, ecx
je 0x1800549be
cmp edx, 0xc0
jb 0x1800549be
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r8d, r8d
je 0x1800549be
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x1800549a6
cmp edx, 0x100
jae 0x180058e5b
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
jmp 0x180054444
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
test ecx, ecx
je 0x180054a3e
cmp edx, 0xc0
jb 0x180054a3e
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r8d, r8d
je 0x180054a3e
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x180054a26
cmp edx, 0x100
jae 0x1800544c9
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
jmp 0x1800544c3
movzx r9d, byte [rsi + 1]
add rsi, 2
mov dword [rbp + 0xc0], r9d
jmp 0x1800542a3
cmp r8d, 0x21
ja 0x180054f4a
je 0x180054f25
cmp r8d, 0x14
je 0x180054e6e
cmp r8d, 0x15
je 0x180054d72
cmp r8d, 0x16
je 0x180054cf1
cmp r8d, 0x17
je 0x180054bba
cmp r8d, 0x18
je 0x180054b0a
jbe 0x180054abc
cmp r8d, 0x1e
jbe 0x180054ac6
cmp r8d, 0x20
jbe 0x18005502a
mov eax, 0xfffffffb
jmp 0x180058e6d
movzx eax, byte [rsi]
lea r8, [0x180000000]
sub eax, 0x19
inc rsi
mov r9d, eax
and r9d, 1
mov dword [rsp + 0x60], r9d
movsx r8d, byte [rax + r8 + 0x61b84]
movsx edx, byte [rax + rdx + 0x61b7c]
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x48], r8d
test r8d, r8d
jne 0x180055090
jmp 0x180055084
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx r8d, byte [rbx]
inc rbx
test ecx, ecx
je 0x180054b6e
cmp r8d, 0xc0
jb 0x180054b6e
mov eax, r8d
and eax, 0x3f
movzx edx, byte [rax + rdx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
add ecx, ecx
and r8d, eax
shl r8d, cl
test edx, edx
je 0x180054b6a
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec edx
shl eax, cl
inc rbx
or r8d, eax
test edx, edx
jg 0x180054b53
mov ecx, dword [rsp + 0x44]
test r9b, 1
je 0x180054ba4
cmp r8d, 0x100
jae 0x180054b86
mov rax, qword [rdi + 0x30]
movzx r8d, byte [r8 + rax]
movzx ecx, byte [rsi + 1]
add rsi, 2
mov rax, qword [rdi + 0x30]
movzx edx, byte [rcx + rax]
cmp edx, r8d
je 0x180058e5b
jmp 0x180057405
movzx eax, byte [rsi + 1]
add rsi, 2
cmp eax, r8d
je 0x180058e5b
jmp 0x180054281
test ecx, ecx
je 0x180054cbb
inc rsi
mov eax, 1
movzx r11d, byte [rsi]
mov r8d, r11d
cmp r11d, 0xc0
jb 0x180054c27
mov eax, r11d
mov r9d, 1
and eax, 0x3f
movzx edx, byte [rax + rdx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
add ecx, ecx
and r8d, eax
shl r8d, cl
cmp r9, rdx
ja 0x180054c24
movzx eax, byte [r9 + rsi]
sub ecx, 6
and eax, 0x3f
inc r9
shl eax, cl
or r8d, eax
cmp r9, rdx
jle 0x180054c0c
lea eax, [rdx + 1]
mov r10d, eax
mov rax, qword [rdi + 0x70]
sub rax, rbx
cmp r10, rax
jg 0x180058e5b
cmp r8d, 0x80
jae 0x180054c63
mov rdx, qword [rdi + 0x30]
inc rsi
movzx ecx, byte [rbx]
inc rbx
mov r8b, byte [r11 + rdx]
cmp r8b, byte [rcx + rdx]
jne 0x180058e5b
jmp 0x1800547f4
movzx edx, byte [rbx]
inc rbx
cmp edx, 0xc0
jb 0x180054cb3
mov eax, edx
lea r11, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r11 + 0x61be0]
and edx, dword [r11 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
shl edx, cl
test r9d, r9d
je 0x180054cb3
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r9d
shl eax, cl
inc rbx
or edx, eax
test r9d, r9d
jg 0x180054c9b
add rsi, r10
cmp r8d, edx
jmp 0x180054c58
mov rax, qword [rdi + 0x70]
sub rax, rbx
cmp rax, 1
jl 0x180058e5b
mov r8, qword [rdi + 0x30]
movzx ecx, byte [rbx]
inc rbx
movzx eax, byte [rsi + 1]
mov dl, byte [rax + r8]
cmp dl, byte [rcx + r8]
jne 0x180058e5b
add rsi, 2
jmp 0x180057405
test ecx, ecx
je 0x180054d4a
inc rsi
mov edx, 1
movzx eax, byte [rsi]
cmp eax, 0xc0
jb 0x180054d1b
and eax, 0x3f
lea rcx, [0x180000000]
movzx edx, byte [rax + rcx + 0x61be0]
inc edx
mov rcx, qword [rdi + 0x70]
sub rcx, rbx
mov eax, edx
cmp rax, rcx
jg 0x180058e5b
mov cl, byte [rsi]
dec edx
mov al, byte [rbx]
inc rsi
inc rbx
cmp cl, al
jne 0x180058e5b
test edx, edx
jg 0x180054d2d
jmp 0x180057405
mov rax, qword [rdi + 0x70]
sub rax, rbx
cmp rax, 1
jl 0x180058e5b
mov al, byte [rbx]
inc rbx
cmp byte [rsi + 1], al
jne 0x180058e5b
add rsi, 2
jmp 0x18005429e
test r9b, 2
je 0x180054dd9
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
jae 0x180054dd0
cmp dword [rdi + 0x20], 0
je 0x180054da0
mov r9d, dword [rsp + 0x44]
lea r8, [rdi + 0x24]
mov rdx, rcx
mov rcx, rbx
call fcn.1800598fc
jmp 0x180054ebc
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x180058e5b
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180058e5b
cmp dword [rdi + 0x24], 1
je 0x180054f0b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
jmp 0x180054f05
cmp dword [rdi + 0x48], 0
jmp 0x180054f05
cmp dword [rdi + 0x48], 0
jne 0x180058e5b
cmp dword [rdi + 0x50], 0
jne 0x18005476b
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
je 0x180054f0b
cmp dword [rdi + 0x20], 0
je 0x180054e2e
cmp rbx, rcx
jae 0x180058e5b
mov r9d, dword [rsp + 0x44]
lea r8, [rdi + 0x24]
mov rdx, rcx
mov rcx, rbx
call fcn.1800598fc
test eax, eax
je 0x180058e5b
mov r9d, dword [rbp + 0xc0]
jmp 0x180054e5b
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x180058e5b
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180058e5b
cmp dword [rdi + 0x24], 1
je 0x180054e5b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
jne 0x180058e5b
movsxd rax, dword [rdi + 0x24]
mov rcx, qword [rdi + 0x70]
sub rcx, rax
cmp rbx, rcx
jmp 0x180054f05
cmp dword [rdi + 0x44], 0
je 0x180054e7e
cmp rbx, qword [rdi + 0x68]
je 0x180058e5b
test r9b, 2
je 0x180054f13
mov rax, qword [rdi + 0x68]
cmp rbx, rax
je 0x180054f0b
cmp rbx, qword [rdi + 0x70]
je 0x180058e5b
cmp dword [rdi + 0x20], 0
je 0x180054ecd
cmp rbx, rax
jbe 0x180058e5b
mov r9d, ecx
lea r8, [rdi + 0x24]
mov rcx, rbx
mov rdx, rax
call fcn.1800599dc
test eax, eax
je 0x180058e5b
mov r9d, dword [rbp + 0xc0]
jmp 0x180054f0b
movsxd rdx, dword [rdi + 0x24]
add rax, rdx
cmp rbx, rax
jb 0x180058e5b
mov al, byte [rdi + 0x28]
mov rcx, rbx
sub rcx, rdx
cmp byte [rcx], al
jne 0x180058e5b
cmp dword [rdi + 0x24], 1
je 0x180054f0b
mov eax, 1
sub eax, dword [rdi + 0x24]
movsxd rcx, eax
mov al, byte [rdi + 0x29]
cmp byte [rcx + rbx], al
jne 0x180058e5b
inc rsi
jmp 0x180057728
cmp rbx, qword [rdi + 0x68]
jne 0x180058e5b
inc rsi
jmp 0x1800542a3
movzx r8d, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl r8d, 8
or r8d, eax
mov edx, r8d
mov dword [rsp + 0x40], edx
add rsi, 3
mov dword [rsp + 0x48], r8d
jmp 0x180055090
cmp r8d, 0x22
je 0x180055073
cmp r8d, 0x23
je 0x18005506c
cmp r8d, 0x24
je 0x180055050
cmp r8d, 0x25
je 0x180055022
jbe 0x180054abc
cmp r8d, 0x2b
jbe 0x180054fd2
cmp r8d, 0x2d
jbe 0x180054faf
cmp r8d, 0x2e
jne 0x180054abc
movzx r8d, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl r8d, 8
or r8d, eax
mov edx, r8d
mov dword [rsp + 0x48], r8d
add rsi, 3
jmp 0x180055591
movzx r8d, byte [rsi + 1]
xor r9d, r9d
movzx eax, byte [rsi + 2]
xor edx, edx
shl r8d, 8
or r8d, eax
cmp byte [rsi], 0x2d
sete r9b
mov dword [rsp + 0x60], r9d
jmp 0x180054fa1
movzx eax, byte [rsi]
lea r10, [0x180000000]
sub eax, 0x26
inc rsi
mov r9d, eax
and r9d, 1
mov dword [rsp + 0x60], r9d
movsx r8d, byte [rax + r10 + 0x61b84]
movsx edx, byte [rax + rdx + 0x61b7c]
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x48], r8d
test r8d, r8d
jne 0x18005559c
mov eax, 0x7fffffff
mov r8d, eax
mov dword [rsp + 0x48], eax
jmp 0x18005559c
mov dword [rsp + 0x58], 1
movzx r8d, byte [rsi + 1]
xor r9d, r9d
movzx eax, byte [rsi + 2]
xor edx, edx
shl r8d, 8
or r8d, eax
cmp byte [rsi], 0x20
sete r9b
mov dword [rsp + 0x60], r9d
jmp 0x180054f38
xor edx, edx
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x40], edx
inc rsi
lea r8d, [rdx + 1]
mov dword [rsp + 0x48], r8d
jmp 0x180055090
mov edx, 1
jmp 0x180055075
xor edx, edx
inc rsi
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x58], 1
mov eax, 0x7fffffff
mov r8d, eax
mov dword [rsp + 0x48], eax
test ecx, ecx
je 0x180055286
movzx r9d, byte [rsi]
mov r10d, 1
mov dword [rsp + 0x4c], r10d
mov r11, rsi
mov qword [rsp + 0x68], rsi
mov dword [rsp + 0x50], r9d
cmp r9d, 0xc0
jb 0x18005511c
mov eax, r9d
lea r11, [0x180000000]
and eax, 0x3f
movzx r10d, byte [rax + r11 + 0x61be0]
and r9d, dword [r11 + r10*4 + 0x61bc0]
lea ecx, [r10 + r10*2]
add ecx, ecx
mov r11d, 1
shl r9d, cl
mov dword [rsp + 0x50], r9d
cmp r11, r10
ja 0x180055111
movzx eax, byte [r11 + rsi]
sub ecx, 6
and eax, 0x3f
inc r11
shl eax, cl
or r9d, eax
cmp r11, r10
jle 0x1800550f4
mov dword [rsp + 0x50], r9d
inc r10d
mov r11, rsi
mov dword [rsp + 0x4c], r10d
mov eax, edx
imul eax, r10d
movsxd rcx, eax
mov rax, qword [rdi + 0x70]
sub rax, rbx
cmp rcx, rax
jg 0x180058e5b
mov ecx, r10d
add rsi, rcx
mov qword [rsp + 0x70], rcx
mov qword [rbp + 0xa8], rsi
cmp r10d, 1
jbe 0x1800552a5
mov dword [rsp + 0x50], 1
cmp edx, 1
jl 0x180055193
mov r8, rcx
mov rdx, r11
mov rcx, rbx
call fcn.1800314d0
test eax, eax
jne 0x180058e5b
mov eax, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x70]
inc eax
mov edx, dword [rsp + 0x40]
add rbx, rcx
mov r11, qword [rsp + 0x68]
mov dword [rsp + 0x50], eax
cmp eax, edx
jle 0x18005515e
mov eax, dword [rsp + 0x48]
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
mov r10d, dword [rbp + 0xd8]
cmp edx, eax
je 0x180054293
cmp dword [rsp + 0x60], 0
jne 0x18005798a
mov qword [rsp + 0x60], rbx
mov r8, rbx
cmp edx, eax
jge 0x18005520f
mov esi, eax
mov rax, qword [rdi + 0x70]
sub rax, rcx
cmp rbx, rax
ja 0x180055203
mov rdx, qword [rsp + 0x68]
mov r8, rcx
mov rcx, rbx
call fcn.1800314d0
test eax, eax
jne 0x180055203
mov edx, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
inc edx
add rbx, rcx
mov dword [rsp + 0x40], edx
cmp edx, esi
jl 0x1800551cd
mov rsi, qword [rbp + 0xa8]
mov r8, qword [rsp + 0x60]
cmp dword [rsp + 0x58], 0
jne 0x1800547f4
cmp rbx, r8
jb 0x180058e5b
mov ecx, dword [rbp + 0xd8]
inc ecx
mov dword [rbp + 0xb8], ecx
mov rax, qword [rbp + 0xc8]
mov r9, rdi
mov r8d, dword [rbp + 0xb0]
mov rdx, rsi
mov dword [rsp + 0x38], ecx
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rbp + 0xb8]
sub rbx, rax
cmp rbx, qword [rsp + 0x60]
jae 0x180055231
jmp 0x180058e5b
mov rcx, qword [rdi + 0x70]
sub rcx, rbx
movsxd rax, edx
cmp rax, rcx
jg 0x180058e5b
movzx r9d, byte [rsi]
inc rsi
mov dword [rsp + 0x50], r9d
mov r11d, dword [rbp + 0xc0]
test r11b, 1
je 0x1800553b9
mov rax, qword [rdi + 0x30]
movzx r10d, byte [r9 + rax]
mov r9d, 1
mov dword [rsp + 0x4c], r10d
cmp edx, r9d
jl 0x1800552f5
mov r11, rax
movzx eax, byte [rbx]
inc rbx
movzx ecx, byte [rax + r11]
cmp r10d, ecx
jne 0x180058e5b
inc r9d
cmp r9d, edx
jle 0x1800552d2
mov r11d, dword [rbp + 0xc0]
mov ecx, dword [rsp + 0x44]
mov eax, 6
cmp edx, r8d
je 0x180054267
cmp dword [rsp + 0x60], 0
jne 0x180057a60
mov qword [rsp + 0x70], rbx
mov rax, rbx
cmp edx, r8d
jge 0x180055344
cmp rbx, qword [rdi + 0x70]
jae 0x18005533f
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x30]
movzx ecx, byte [rcx + rax]
cmp r10d, ecx
jne 0x18005533f
inc rbx
inc edx
cmp edx, r8d
jl 0x18005531f
mov rax, qword [rsp + 0x70]
cmp dword [rsp + 0x58], 0
jne 0x1800547f4
cmp rbx, rax
jb 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r11d
call fcn.180054194
dec rbx
test eax, eax
jne 0x180058e6d
mov eax, dword [rbp + 0xb8]
mov r11d, dword [rbp + 0xc0]
cmp rbx, qword [rsp + 0x70]
jae 0x180055366
jmp 0x180058e5b
mov ecx, 1
cmp edx, ecx
jl 0x1800553d7
movzx eax, byte [rbx]
inc rbx
cmp r9d, eax
jne 0x180058e5b
inc ecx
cmp ecx, edx
jle 0x1800553c2
mov r10d, dword [rbp + 0xd8]
mov eax, 6
mov ecx, dword [rsp + 0x44]
cmp edx, r8d
je 0x180054254
cmp dword [rsp + 0x60], 0
jne 0x180057b69
mov qword [rsp + 0x70], rbx
mov rax, rbx
cmp edx, r8d
jge 0x180055425
cmp rbx, qword [rdi + 0x70]
jae 0x180055420
movzx eax, byte [rbx]
cmp r9d, eax
jne 0x180055420
inc rbx
inc edx
cmp edx, r8d
jl 0x180055408
mov rax, qword [rsp + 0x70]
cmp dword [rsp + 0x58], 0
je 0x180057b03
mov r9d, dword [rbp + 0xc0]
jmp 0x18005427a
xor edx, edx
jmp 0x18005557a
cmp r8d, 0x4e
ja 0x1800570ec
je 0x1800570d0
cmp r8d, 0x3d
ja 0x180055a93
je 0x180055a7f
cmp r8d, 0x30
je 0x180055575
cmp r8d, 0x31
je 0x180055568
cmp r8d, 0x32
je 0x18005554b
jbe 0x180054abc
cmp r8d, 0x38
jbe 0x180055506
cmp r8d, 0x3a
jbe 0x1800554da
cmp r8d, 0x3b
je 0x1800554b1
cmp r8d, 0x3c
jne 0x180054abc
mov eax, 0x7fffffff
mov dword [rsp + 0x48], eax
jmp 0x180056122
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x60], 1
mov dword [rsp + 0x48], ecx
mov r8d, ecx
mov dword [rsp + 0x40], ecx
add rsi, 3
jmp 0x180056135
movzx ecx, byte [rsi + 1]
xor r9d, r9d
movzx eax, byte [rsi + 2]
xor r8d, r8d
shl ecx, 8
or ecx, eax
cmp byte [rsi], 0x3a
mov dword [rsp + 0x48], ecx
sete r9b
add rsi, 3
mov dword [rsp + 0x60], r9d
jmp 0x180056130
movzx eax, byte [rsi]
inc rsi
sub eax, 0x33
mov r9d, eax
and r9d, 1
mov dword [rsp + 0x60], r9d
movsx r8d, byte [rax + rdx + 0x61b7c]
movsx eax, byte [rax + rdx + 0x61b84]
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x180056135
mov eax, 0x7fffffff
mov dword [rsp + 0x48], eax
jmp 0x180056135
movzx r8d, byte [rsi + 1]
xor edx, edx
movzx eax, byte [rsi + 2]
shl r8d, 8
or r8d, eax
mov dword [rsp + 0x48], r8d
add rsi, 3
jmp 0x180055589
xor edx, edx
lea r8d, [rdx + 1]
mov dword [rsp + 0x48], r8d
jmp 0x180055586
mov edx, 1
mov eax, 0x7fffffff
mov dword [rsp + 0x48], eax
mov r8d, eax
inc rsi
mov dword [rsp + 0x58], 1
lea r10, [0x180000000]
mov dword [rsp + 0x40], edx
mov rcx, qword [rdi + 0x70]
sub rcx, rbx
movsxd rax, edx
cmp rax, rcx
jg 0x180058e5b
movzx r11d, byte [rsi]
inc rsi
mov r9d, dword [rbp + 0xc0]
mov ecx, dword [rsp + 0x44]
mov dword [rsp + 0x4c], r11d
mov qword [rbp + 0xa8], rsi
test r9b, 1
je 0x180055858
mov rax, qword [rdi + 0x30]
movzx r10d, byte [r11 + rax]
mov dword [rsp + 0x50], r10d
test ecx, ecx
je 0x180055689
mov r11d, 1
cmp edx, r11d
jl 0x1800556c5
movzx r9d, byte [rbx]
inc rbx
cmp r9d, 0xc0
jb 0x180055660
mov eax, r9d
lea rcx, [0x180000000]
and eax, 0x3f
movzx r10d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r10*4 + 0x61bc0]
lea ecx, [r10 + r10*2]
add ecx, ecx
and r9d, eax
shl r9d, cl
test r10d, r10d
je 0x18005565b
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r10d
shl eax, cl
inc rbx
or r9d, eax
test r10d, r10d
jg 0x180055642
mov r10d, dword [rsp + 0x50]
cmp r9d, 0x100
jae 0x180055672
mov rax, qword [rdi + 0x30]
movzx r9d, byte [r9 + rax]
cmp r10d, r9d
je 0x180058e5b
inc r11d
cmp r11d, edx
jle 0x1800555fc
jmp 0x1800556ba
mov r9d, 1
cmp edx, r9d
jl 0x1800556be
mov r10, qword [rdi + 0x30]
movzx eax, byte [rbx]
inc rbx
movzx ecx, byte [rax + r10]
cmp dword [rsp + 0x50], ecx
je 0x180058e5b
inc r9d
cmp r9d, edx
jle 0x180055698
mov r10d, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x44]
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
cmp edx, r8d
je 0x18005428a
xor r11d, r11d
cmp dword [rsp + 0x60], r11d
jne 0x180057c5f
mov qword [rsp + 0x68], rbx
mov rax, rbx
test ecx, ecx
je 0x1800557b5
cmp edx, r8d
jge 0x18005579d
mov esi, dword [rsp + 0x50]
mov r10d, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180055792
movzx r9d, byte [rbx]
cmp r9d, 0xc0
jb 0x18005576a
mov eax, r9d
lea r11, [0x180000000]
and eax, 0x3f
movzx r10d, byte [rax + r11 + 0x61be0]
and r9d, dword [r11 + r10*4 + 0x61bc0]
lea ecx, [r10 + r10*2]
add ecx, ecx
mov r11d, 1
shl r9d, cl
cmp r11, r10
ja 0x180055767
movzx eax, byte [r11 + rbx]
sub ecx, 6
and eax, 0x3f
inc r11
shl eax, cl
or r9d, eax
cmp r11, r10
jle 0x18005574f
inc r10d
cmp r9d, 0x100
jae 0x18005577c
mov rax, qword [rdi + 0x30]
movzx r9d, byte [r9 + rax]
cmp esi, r9d
je 0x180055792
mov eax, r10d
inc edx
add rbx, rax
cmp edx, r8d
jl 0x180055700
mov rsi, qword [rbp + 0xa8]
mov ecx, dword [rsp + 0x44]
cmp dword [rsp + 0x58], 0
jne 0x1800560ed
mov eax, dword [rbp + 0xd8]
inc eax
jmp 0x180057c22
cmp edx, r8d
jge 0x1800557e3
cmp rbx, qword [rdi + 0x70]
jae 0x1800557da
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x30]
movzx ecx, byte [rcx + rax]
cmp r10d, ecx
je 0x1800557da
inc rbx
inc edx
cmp edx, r8d
jl 0x1800557ba
mov rax, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x44]
cmp dword [rsp + 0x58], r11d
jne 0x1800560f4
cmp rbx, rax
jb 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0xb0]
mov rdx, rsi
mov dword [rsp + 0x38], eax
mov rcx, rbx
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov eax, dword [rbp + 0xb8]
dec rbx
mov r9d, dword [rbp + 0xc0]
cmp rbx, qword [rsp + 0x68]
jae 0x180055805
jmp 0x180058e5b
test ecx, ecx
je 0x1800558f2
mov eax, 1
mov dword [rsp + 0x50], eax
cmp edx, eax
jl 0x180055914
jmp 0x18005587a
lea r10, [0x180000000]
movzx r9d, byte [rbx]
inc rbx
cmp r9d, 0xc0
jb 0x1800558d6
mov eax, r9d
and eax, 0x3f
movzx r10d, byte [rax + r10 + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r10*4 + 0x61bc0]
lea ecx, [r10 + r10*2]
add ecx, ecx
and r9d, eax
shl r9d, cl
test r10d, r10d
je 0x1800558d2
movzx eax, byte [rbx]
sub ecx, 6
and eax, 0x3f
dec r10d
shl eax, cl
inc rbx
or r9d, eax
test r10d, r10d
jg 0x1800558b9
mov eax, dword [rsp + 0x50]
cmp r11d, r9d
je 0x180058e5b
inc eax
mov dword [rsp + 0x50], eax
cmp eax, edx
jle 0x180055873
mov r9d, dword [rbp + 0xc0]
jmp 0x180055910
mov ecx, 1
cmp edx, ecx
jl 0x180055910
movzx eax, byte [rbx]
inc rbx
cmp r11d, eax
je 0x180058e5b
inc ecx
cmp ecx, edx
jle 0x1800558fb
mov ecx, dword [rsp + 0x44]
mov r10d, dword [rbp + 0xd8]
cmp edx, r8d
je 0x18005427a
xor r10d, r10d
cmp dword [rsp + 0x60], r10d
jne 0x180057e5c
mov qword [rsp + 0x68], rbx
mov rax, rbx
test ecx, ecx
je 0x1800559e8
cmp edx, r8d
jge 0x1800559d0
lea rsi, [0x180000000]
mov eax, 1
cmp rbx, qword [rdi + 0x70]
jae 0x1800559c5
movzx r9d, byte [rbx]
cmp r9d, 0xc0
jb 0x1800559b6
mov eax, r9d
mov r11d, 1
and eax, 0x3f
movzx r10d, byte [rax + rsi + 0x61be0]
and r9d, dword [rsi + r10*4 + 0x61bc0]
lea ecx, [r10 + r10*2]
add ecx, ecx
shl r9d, cl
cmp r11, r10
ja 0x1800559ad
movzx eax, byte [r11 + rbx]
sub ecx, 6
and eax, 0x3f
inc r11
shl eax, cl
or r9d, eax
cmp r11, r10
jle 0x180055995
mov r11d, dword [rsp + 0x4c]
lea eax, [r10 + 1]
cmp r11d, r9d
je 0x1800559c5
add rbx, rax
inc edx
cmp edx, r8d
jl 0x180055952
mov rsi, qword [rbp + 0xa8]
mov ecx, dword [rsp + 0x44]
cmp dword [rsp + 0x58], 0
jne 0x1800560ed
mov eax, dword [rbp + 0xd8]
inc eax
jmp 0x180057e1f
cmp edx, r8d
jge 0x180055a0a
cmp rbx, qword [rdi + 0x70]
jae 0x180055a05
movzx eax, byte [rbx]
cmp r11d, eax
je 0x180055a05
inc rbx
inc edx
cmp edx, r8d
jl 0x1800559ed
mov rax, qword [rsp + 0x68]
cmp dword [rsp + 0x58], r10d
jne 0x1800560f4
cmp rbx, rax
jb 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0xb0]
mov rdx, rsi
mov dword [rsp + 0x38], eax
mov rcx, rbx
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov eax, dword [rbp + 0xb8]
dec rbx
mov r9d, dword [rbp + 0xc0]
cmp rbx, qword [rsp + 0x68]
jae 0x180055a2c
jmp 0x180058e5b
mov eax, 0x7fffffff
mov r8d, 1
mov dword [rsp + 0x48], eax
jmp 0x180056125
cmp r8d, 0x3e
je 0x18005611a
cmp r8d, 0x3f
je 0x180056100
cmp r8d, 0x47
jbe 0x180054abc
cmp r8d, 0x49
jbe 0x180055ee0
cmp r8d, 0x4a
je 0x180055d4a
cmp r8d, 0x4b
je 0x180055bac
cmp r8d, 0x4c
je 0x180057fda
cmp r8d, 0x4d
jne 0x180054abc
mov r8, qword [0x180064688]
test r8, r8
je 0x180055b84
movzx eax, byte [rsi + 1]
movzx ecx, byte [rsi + 2]
mov dword [rbp - 0x4c], eax
mov rax, qword [rdi + 0x10]
mov qword [rbp - 0x48], rax
mov rax, qword [rdi + 0x68]
mov qword [rbp - 0x40], rax
mov eax, dword [rdi + 0x70]
sub eax, dword [rdi + 0x68]
mov dword [rbp - 0x38], eax
mov eax, dword [rdi + 0x78]
sub eax, dword [rdi + 0x68]
mov dword [rbp - 0x34], eax
mov eax, ebx
sub eax, dword [rdi + 0x68]
mov dword [rbp - 0x30], eax
movzx eax, byte [rsi + 3]
shl ecx, 8
or ecx, eax
mov dword [rbp - 0x50], 1
movzx eax, byte [rsi + 5]
mov dword [rbp - 0x18], ecx
movzx ecx, byte [rsi + 4]
shl ecx, 8
or ecx, eax
mov eax, r11d
cdq
mov dword [rbp - 0x14], ecx
sub eax, edx
lea rcx, [rbp - 0x50]
sar eax, 1
mov dword [rbp - 0x2c], eax
mov eax, dword [rdi + 0x8c]
mov dword [rbp - 0x28], eax
mov rax, qword [rdi + 0xb0]
mov qword [rbp - 0x20], rax
call r8
test eax, eax
jg 0x180058e5b
js 0x180058e6d
mov eax, 6
mov r9d, dword [rbp + 0xc0]
add rsi, rax
mov r11d, dword [rbp + 0xb0]
mov ecx, dword [rsp + 0x44]
mov r10d, dword [rbp + 0xd8]
lea rdx, [0x180000000]
jmp 0x1800542a3
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
add rsi, 3
shl ecx, 8
or ecx, eax
lea r10d, [rcx + rcx]
mov dword [rsp + 0x4c], r10d
cmp r10d, r11d
jge 0x180055be7
mov rdx, qword [rdi + 0x10]
mov eax, r10d
mov r8d, dword [rdx + r10*4]
test r8d, r8d
js 0x180055be7
lea eax, [r10 + 1]
mov edx, dword [rdx + rax*4]
sub edx, r8d
jmp 0x180055bee
mov edx, dword [rdi + 0x70]
sub edx, ebx
inc edx
mov al, byte [rsi]
mov dword [rsp + 0x60], edx
cmp al, 0x40
jb 0x180055d1f
cmp al, 0x45
jbe 0x180055c45
cmp al, 0x47
ja 0x180055d1f
movzx ecx, byte [rsi + 1]
xor eax, eax
cmp byte [rsi], 0x47
movzx r8d, byte [rsi + 3]
sete al
shl ecx, 8
mov dword [rsp + 0x50], eax
movzx eax, byte [rsi + 2]
or ecx, eax
shl r8d, 8
movzx eax, byte [rsi + 4]
or r8d, eax
mov eax, 0x7fffffff
cmove r8d, eax
add rsi, 5
mov dword [rsp + 0x48], r8d
jmp 0x180055c83
movzx eax, byte [rsi]
lea r8, [0x180000000]
sub eax, 0x40
inc rsi
mov r9d, eax
and r9d, 1
mov dword [rsp + 0x50], r9d
movsx ecx, byte [rax + r8 + 0x61b7c]
movsx eax, byte [rax + r8 + 0x61b84]
mov r8d, 0x7fffffff
test eax, eax
cmove eax, r8d
mov dword [rsp + 0x48], eax
mov r9d, dword [rbp + 0xc0]
mov eax, 6
mov dword [rsp + 0x40], ecx
mov qword [rbp + 0xa8], rsi
test edx, edx
je 0x180055b95
mov dword [rsp + 0x58], 1
cmp ecx, 1
jl 0x180055cf8
mov eax, dword [rbp + 0xc0]
mov r8d, edx
mov rdx, rbx
mov dword [rsp + 0x20], eax
mov r9, rdi
mov ecx, r10d
call fcn.180058e80
test eax, eax
je 0x180058e5b
mov eax, dword [rsp + 0x58]
movsxd rdx, dword [rsp + 0x60]
inc eax
mov ecx, dword [rsp + 0x40]
add rbx, rdx
mov r10d, dword [rsp + 0x4c]
mov dword [rsp + 0x58], eax
cmp eax, ecx
jle 0x180055caf
mov r11d, dword [rbp + 0xb0]
mov eax, dword [rsp + 0x48]
cmp ecx, eax
je 0x1800573f7
cmp dword [rsp + 0x50], 0
je 0x180058217
mov eax, dword [rbp + 0xd8]
mov r8d, r11d
inc eax
jmp 0x1800581e1
mov dword [rsp + 0x20], r9d
mov r8d, edx
mov r9, rdi
mov rdx, rbx
mov ecx, r10d
call fcn.180058e80
test eax, eax
je 0x180058e5b
movsxd rax, dword [rsp + 0x60]
add rbx, rax
jmp 0x1800547f4
movzx eax, byte [rsi + 2]
lea r10, [rsi + 3]
movzx ecx, byte [rsi + 1]
shl rcx, 8
or rcx, rax
mov qword [rsp + 0x68], r10
add rsi, rcx
mov qword [rbp + 0xa8], rsi
mov al, byte [rsi]
cmp al, 0x40
jb 0x180055e06
cmp al, 0x45
jbe 0x180055dc3
cmp al, 0x47
ja 0x180055e06
movzx ecx, byte [rsi + 1]
xor r9d, r9d
movzx edx, byte [rsi + 3]
cmp al, 0x47
movzx eax, byte [rsi + 2]
sete r9b
shl ecx, 8
or ecx, eax
shl edx, 8
movzx eax, byte [rsi + 4]
or edx, eax
mov dword [rsp + 0x60], r9d
mov eax, 0x7fffffff
cmove edx, eax
add rsi, 5
mov qword [rbp + 0xa8], rsi
mov dword [rsp + 0x48], edx
jmp 0x180055e13
movzx eax, byte [rsi]
inc rsi
sub eax, 0x40
mov qword [rbp + 0xa8], rsi
mov r9d, eax
and r9d, 1
mov dword [rsp + 0x60], r9d
movsx ecx, byte [rax + rdx + 0x61b7c]
movsx eax, byte [rax + rdx + 0x61b84]
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x180055e17
mov eax, 0x7fffffff
mov dword [rsp + 0x48], eax
jmp 0x180055e17
mov dword [rsp + 0x48], 1
mov ecx, 1
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x4c], 1
cmp ecx, 1
jl 0x180055ebc
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx r8d, byte [rbx]
inc rbx
cmp r8d, 0xc0
jb 0x180055e8e
mov eax, r8d
lea r9, [0x180000000]
and eax, 0x3f
movzx edx, byte [rax + r9 + 0x61be0]
and r8d, dword [r9 + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
add ecx, ecx
shl r8d, cl
test edx, edx
je 0x180055e8e
mov edi, 6
movzx eax, byte [rbx]
sub ecx, edi
and eax, 0x3f
dec edx
shl eax, cl
inc rbx
or r8d, eax
test edx, edx
jg 0x180055e71
mov rdi, qword [rbp + 0xb8]
mov rdx, r10
mov ecx, r8d
call fcn.180059d60
test eax, eax
je 0x180058e5b
mov eax, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x40]
inc eax
mov r10, qword [rsp + 0x68]
mov dword [rsp + 0x4c], eax
cmp eax, ecx
jle 0x180055e28
mov eax, dword [rsp + 0x48]
cmp ecx, eax
je 0x1800547f4
cmp dword [rsp + 0x60], 0
je 0x1800583a4
mov eax, dword [rbp + 0xd8]
inc eax
jmp 0x180058363
lea r10, [rsi + 1]
add rsi, 0x21
mov qword [rsp + 0x50], r10
mov qword [rbp + 0xa8], rsi
mov al, byte [rsi]
cmp al, 0x40
jb 0x180055fbb
cmp al, 0x45
jbe 0x180055f73
cmp al, 0x47
ja 0x180055fbb
movzx r9d, byte [rsi + 1]
xor ecx, ecx
movzx r11d, byte [rsi + 3]
cmp al, 0x47
movzx eax, byte [rsi + 2]
sete cl
shl r9d, 8
or r9d, eax
shl r11d, 8
movzx eax, byte [rsi + 4]
or r11d, eax
mov dword [rsp + 0x60], ecx
mov eax, 0x7fffffff
mov dword [rsp + 0x48], r9d
cmove r11d, eax
add rsi, 5
mov qword [rbp + 0xa8], rsi
mov dword [rsp + 0x40], r11d
mov ecx, dword [rsp + 0x44]
test ecx, ecx
je 0x180056090
mov eax, 1
mov dword [rsp + 0x58], eax
cmp r9d, eax
jl 0x1800560e4
jmp 0x180055fd7
movzx eax, byte [rsi]
inc rsi
sub eax, 0x40
mov qword [rbp + 0xa8], rsi
mov ecx, eax
and ecx, 1
mov dword [rsp + 0x60], ecx
movsx r11d, byte [rax + rdx + 0x61b84]
movsx r9d, byte [rax + rdx + 0x61b7c]
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x40], r11d
test r11d, r11d
jne 0x180055f53
mov eax, 0x7fffffff
mov r11d, eax
mov dword [rsp + 0x40], eax
jmp 0x180055f53
mov r11d, 1
mov dword [rsp + 0x40], r11d
mov r9d, r11d
mov dword [rsp + 0x48], r11d
jmp 0x180055f57
lea rdx, [0x180000000]
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx r10d, byte [rbx]
inc rbx
cmp r10d, 0xc0
jb 0x180056042
mov eax, r10d
and eax, 0x3f
movzx edx, byte [rax + rdx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
add ecx, ecx
and r10d, eax
shl r10d, cl
test edx, edx
je 0x18005603e
mov r11d, 6
movzx eax, byte [rbx]
sub ecx, r11d
and eax, 0x3f
dec edx
shl eax, cl
inc rbx
or r10d, eax
test edx, edx
jg 0x180056022
mov r11d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x58]
cmp r10d, 0xff
jbe 0x180056057
cmp r8d, 0x48
je 0x180058e5b
jmp 0x18005607f
mov ecx, r10d
mov eax, r10d
and ecx, 7
shr rax, 3
mov edx, 1
shl edx, cl
mov rcx, qword [rsp + 0x50]
mov cl, byte [rax + rcx]
test cl, dl
je 0x180058e5b
mov eax, dword [rsp + 0x58]
inc eax
mov dword [rsp + 0x58], eax
cmp eax, r9d
jle 0x180055fd0
jmp 0x1800560e0
mov dword [rsp + 0x58], 1
cmp r9d, 1
jl 0x1800560e4
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
mov r8d, 1
mov eax, edx
mov ecx, edx
and ecx, 7
shr rax, 3
inc rbx
shl r8d, cl
test byte [rax + r10], r8b
je 0x180058e5b
mov eax, dword [rsp + 0x58]
inc eax
mov dword [rsp + 0x58], eax
cmp eax, r9d
jle 0x18005609e
mov r8d, dword [rsp + 0x4c]
mov ecx, dword [rsp + 0x44]
cmp r9d, r11d
jne 0x1800584d2
mov r9d, dword [rbp + 0xc0]
mov r10d, dword [rbp + 0xd8]
jmp 0x18005427a
movzx ecx, byte [rsi + 1]
xor r8d, r8d
movzx eax, byte [rsi + 2]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x48], ecx
add rsi, 3
jmp 0x180056128
mov dword [rsp + 0x48], 1
xor r8d, r8d
inc rsi
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x40], r8d
movzx ecx, byte [rsi]
inc rsi
mov r10, qword [rdi + 0x70]
mov rax, r10
movsxd rdx, r8d
sub rax, rbx
mov dword [rsp + 0x50], ecx
mov qword [rbp + 0xa8], rsi
cmp rdx, rax
jg 0x180058e5b
test r8d, r8d
jle 0x180056797
mov r9d, dword [rsp + 0x44]
test r9d, r9d
je 0x18005653d
sub ecx, 5
je 0x1800564a2
sub ecx, 1
je 0x18005645d
sub ecx, 1
je 0x18005640a
sub ecx, 1
je 0x1800563c5
sub ecx, 1
je 0x180056372
sub ecx, 1
je 0x18005632d
sub ecx, 1
je 0x180056289
sub ecx, 1
je 0x180056281
cmp ecx, 3
jne 0x180056825
lea r10d, [rcx - 2]
cmp r8d, r10d
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
cmp edx, 0xc0
jb 0x180056236
mov eax, edx
lea r11, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r11 + 0x61be0]
and edx, dword [r11 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
shl edx, cl
test r9d, r9d
je 0x180056236
mov edi, 6
movzx eax, byte [rbx]
sub ecx, edi
and eax, 0x3f
dec r9d
shl eax, cl
inc rbx
or edx, eax
test r9d, r9d
jg 0x180056218
mov rdi, qword [rbp + 0xb8]
cmp edx, 0xa
jb 0x180058e5b
cmp edx, 0xc
jbe 0x180056270
cmp edx, 0xd
je 0x180056262
cmp edx, 0x85
je 0x180056270
lea eax, [rdx - 0x2028]
cmp eax, 1
ja 0x180058e5b
jmp 0x180056270
cmp rbx, qword [rdi + 0x70]
jae 0x180056270
cmp byte [rbx], 0xa
jne 0x180056270
inc rbx
inc r10d
cmp r10d, r8d
jle 0x1800561d1
jmp 0x180056793
add rbx, rdx
jmp 0x180056793
mov ecx, 1
mov dword [rsp + 0x4c], ecx
cmp r8d, ecx
jl 0x180056793
cmp rbx, r10
jae 0x180058e5b
test byte [rbp + 0xc0], 4
jne 0x180056303
cmp dword [rdi + 0x20], 0
je 0x1800562da
lea r8, [rdi + 0x24]
mov rdx, r10
mov rcx, rbx
call fcn.1800598fc
test eax, eax
jne 0x180058e5b
mov r8d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x4c]
mov r9d, dword [rsp + 0x44]
jmp 0x180056303
movsxd rax, dword [rdi + 0x24]
sub r10, rax
cmp rbx, r10
ja 0x180056303
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180056303
cmp dword [rdi + 0x24], 1
je 0x180058e5b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x180058e5b
mov r10, qword [rdi + 0x70]
jmp 0x180056311
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x180056319
inc rbx
cmp rbx, r10
jb 0x180056309
inc ecx
mov dword [rsp + 0x4c], ecx
cmp ecx, r8d
jle 0x18005629b
jmp 0x180056793
mov r9d, 1
cmp r8d, r9d
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
cmp byte [rbx], 0x80
jae 0x180058e5b
movzx ecx, byte [rbx]
inc rbx
mov rax, qword [rdi + 0x38]
mov dl, byte [rcx + rax]
and dl, 0x10
je 0x180058e5b
inc r9d
cmp r9d, r8d
jle 0x18005633c
jmp 0x180056793
mov r9d, 1
cmp r8d, r9d
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
cmp byte [rbx], 0x80
jae 0x1800563b3
movzx ecx, byte [rbx]
inc rbx
mov rax, qword [rdi + 0x38]
mov dl, byte [rcx + rax]
and dl, 0x10
jne 0x180058e5b
jmp 0x1800563b3
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x1800563b8
inc rbx
cmp rbx, r10
jb 0x1800563a8
inc r9d
cmp r9d, r8d
jle 0x180056381
jmp 0x180056793
mov r9d, 1
cmp r8d, r9d
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
cmp byte [rbx], 0x80
jae 0x180058e5b
movzx ecx, byte [rbx]
inc rbx
mov rax, qword [rdi + 0x38]
mov dl, byte [rcx + rax]
and dl, 1
je 0x180058e5b
inc r9d
cmp r9d, r8d
jle 0x1800563d4
jmp 0x180056793
mov r9d, 1
cmp r8d, r9d
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
cmp byte [rbx], 0x80
jae 0x18005644b
movzx ecx, byte [rbx]
inc rbx
mov rax, qword [rdi + 0x38]
mov dl, byte [rcx + rax]
and dl, 1
jne 0x180058e5b
jmp 0x18005644b
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x180056450
inc rbx
cmp rbx, r10
jb 0x180056440
inc r9d
cmp r9d, r8d
jle 0x180056419
jmp 0x180056793
mov r9d, 1
cmp r8d, r9d
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
cmp byte [rbx], 0x80
jae 0x180058e5b
movzx ecx, byte [rbx]
inc rbx
mov rax, qword [rdi + 0x38]
mov dl, byte [rcx + rax]
and dl, 4
je 0x180058e5b
inc r9d
cmp r9d, r8d
jle 0x18005646c
jmp 0x180056793
mov r10d, 1
cmp r8d, r10d
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
inc rbx
cmp edx, 0xc0
jb 0x180056516
mov eax, edx
lea r11, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r11 + 0x61be0]
and edx, dword [r11 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
shl edx, cl
test r9d, r9d
je 0x180056516
mov edi, 6
movzx eax, byte [rbx]
sub ecx, edi
and eax, 0x3f
dec r9d
shl eax, cl
inc rbx
or edx, eax
test r9d, r9d
jg 0x1800564f8
mov rdi, qword [rbp + 0xb8]
cmp edx, 0x80
jae 0x18005652c
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 4
jne 0x180058e5b
inc r10d
cmp r10d, r8d
jle 0x1800564b1
jmp 0x180056793
sub ecx, 5
je 0x18005676b
sub ecx, 1
je 0x180056741
sub ecx, 1
je 0x180056717
sub ecx, 1
je 0x1800566e9
sub ecx, 1
je 0x1800566b8
sub ecx, 1
je 0x180056687
sub ecx, 1
je 0x1800565e2
sub ecx, 1
je 0x180056281
cmp ecx, 3
jne 0x180056825
mov ecx, 1
cmp r8d, ecx
jl 0x180056793
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx eax, byte [rbx]
inc rbx
cmp eax, 0xa
jb 0x180058e5b
cmp eax, 0xc
jbe 0x1800565d6
cmp eax, 0xd
je 0x1800565c8
cmp eax, 0x85
jne 0x180058e5b
jmp 0x1800565d6
cmp rbx, qword [rdi + 0x70]
jae 0x1800565d6
cmp byte [rbx], 0xa
jne 0x1800565d6
inc rbx
inc ecx
cmp ecx, r8d
jle 0x180056598
jmp 0x180056793
mov r9d, dword [rbp + 0xc0]
test r9b, 4
jne 0x18005667b
mov r9d, 1
mov dword [rsp + 0x4c], r9d
cmp r8d, r9d
jl 0x180056793
cmp dword [rdi + 0x20], 0
je 0x180056639
mov rdx, qword [rdi + 0x70]
cmp rbx, rdx
jae 0x180056666
lea r8, [rdi + 0x24]
xor r9d, r9d
mov rcx, rbx
call fcn.1800598fc
test eax, eax
jne 0x180058e5b
mov r8d, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x4c]
jmp 0x180056666
movsxd rax, dword [rdi + 0x24]
mov rcx, qword [rdi + 0x70]
sub rcx, rax
cmp rbx, rcx
ja 0x180056666
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180056666
cmp dword [rdi + 0x24], 1
je 0x180058e5b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x180058e5b
inc r9d
inc rbx
mov dword [rsp + 0x4c], r9d
cmp r9d, r8d
jle 0x180056607
jmp 0x180056793
mov ecx, dword [rsp + 0x50]
add rbx, rdx
jmp 0x18005679e
mov edx, 1
cmp r8d, edx
jl 0x180056793
mov r9, qword [rdi + 0x38]
movzx eax, byte [rbx]
inc rbx
mov cl, byte [rax + r9]
and cl, 0x10
je 0x180058e5b
inc edx
cmp edx, r8d
jle 0x180056699
jmp 0x180056793
mov edx, 1
cmp r8d, edx
jl 0x180056793
mov r9, qword [rdi + 0x38]
movzx eax, byte [rbx]
inc rbx
mov cl, byte [rax + r9]
and cl, 0x10
jne 0x180058e5b
inc edx
cmp edx, r8d
jle 0x1800566ca
jmp 0x180056793
mov edx, 1
cmp r8d, edx
jl 0x180056793
mov r9, qword [rdi + 0x38]
movzx eax, byte [rbx]
inc rbx
mov cl, byte [rax + r9]
and cl, 1
je 0x180058e5b
inc edx
cmp edx, r8d
jle 0x1800566fb
jmp 0x180056793
mov edx, 1
cmp r8d, edx
jl 0x180056793
mov r9, qword [rdi + 0x38]
movzx eax, byte [rbx]
inc rbx
mov cl, byte [rax + r9]
and cl, 1
jne 0x180058e5b
inc edx
cmp edx, r8d
jle 0x180056725
jmp 0x180056793
mov edx, 1
cmp r8d, edx
jl 0x180056793
mov r9, qword [rdi + 0x38]
movzx eax, byte [rbx]
inc rbx
mov cl, byte [rax + r9]
and cl, 4
je 0x180058e5b
inc edx
cmp edx, r8d
jle 0x18005674f
jmp 0x180056793
mov edx, 1
cmp r8d, edx
jl 0x180056793
mov r9, qword [rdi + 0x38]
movzx eax, byte [rbx]
inc rbx
mov cl, byte [rax + r9]
and cl, 4
jne 0x180058e5b
inc edx
cmp edx, r8d
jle 0x180056779
mov ecx, dword [rsp + 0x50]
mov r9d, dword [rbp + 0xc0]
mov r10d, dword [rsp + 0x48]
mov eax, 6
mov r11d, dword [rbp + 0xb0]
cmp r8d, r10d
je 0x180055b95
cmp dword [rsp + 0x60], 0
jne 0x18005890b
mov edx, dword [rsp + 0x44]
mov qword [rsp + 0x68], rbx
test edx, edx
je 0x180056e5a
sub ecx, 5
je 0x180056d9a
sub ecx, 1
je 0x180056d8c
sub ecx, 1
je 0x180056ce7
sub ecx, 1
je 0x180056c46
sub ecx, 1
je 0x180056ba1
sub ecx, 1
je 0x180056b00
sub ecx, 1
je 0x1800568f4
sub ecx, 1
je 0x1800569d4
cmp ecx, 3
je 0x1800568e6
mov eax, 0xfffffff2
jmp 0x180058e6d
mov ecx, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x1800568a3
mov eax, edx
lea r10, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r10 + 0x61be0]
and edx, dword [r10 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov r10d, 1
shl edx, cl
cmp r10, r9
ja 0x18005689a
lea edi, [r10 + 5]
movzx eax, byte [r10 + rbx]
sub ecx, edi
and eax, 0x3f
inc r10
shl eax, cl
or edx, eax
cmp r10, r9
jle 0x18005687d
mov rdi, qword [rbp + 0xb8]
mov r10d, dword [rsp + 0x48]
lea ecx, [r9 + 1]
cmp edx, 0xd
jne 0x1800568bf
inc rbx
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
cmp byte [rbx], 0xa
jne 0x1800568e3
inc rbx
jmp 0x1800568e3
lea eax, [rdx - 0xa]
cmp eax, 2
jbe 0x1800568de
cmp edx, 0x85
je 0x1800568de
lea eax, [rdx - 0x2028]
cmp eax, 1
ja 0x180056e42
mov eax, ecx
add rbx, rax
inc r8d
cmp r8d, r10d
jl 0x18005682f
jmp 0x180056e42
mov eax, 0x7fffffff
cmp r10d, eax
jge 0x1800569ca
test r9b, 4
jne 0x1800569c0
jmp 0x180056992
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
jae 0x180056e42
cmp dword [rdi + 0x20], 0
je 0x18005694e
mov r9d, edx
lea r8, [rdi + 0x24]
mov rdx, rcx
mov rcx, rbx
call fcn.1800598fc
test eax, eax
jne 0x180056e42
mov r8d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x44]
jmp 0x180056981
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x180056981
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180056981
cmp dword [rdi + 0x24], 1
je 0x180056e42
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x180056e42
jmp 0x180056981
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x18005698a
inc rbx
cmp rbx, qword [rdi + 0x70]
jb 0x180056979
inc r8d
mov dword [rsp + 0x40], r8d
cmp r8d, r10d
jl 0x180056911
jmp 0x180056e42
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
jmp 0x1800569b4
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
jne 0x1800569bd
inc rbx
cmp rbx, qword [rdi + 0x70]
jb 0x1800569ac
inc r8d
cmp r8d, r10d
jl 0x1800569a0
jmp 0x180056e42
test r9b, 4
je 0x180056a5f
mov eax, dword [rdi + 0x70]
sub r10d, r8d
sub eax, ebx
cmp r10d, eax
cmova r10d, eax
mov eax, r10d
add rbx, rax
jmp 0x180056e42
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
jae 0x180056e42
cmp dword [rdi + 0x20], 0
je 0x180056a2b
mov r9d, edx
lea r8, [rdi + 0x24]
mov rdx, rcx
mov rcx, rbx
call fcn.1800598fc
test eax, eax
jne 0x180056e42
mov r8d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x44]
jmp 0x180056a54
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x180056a54
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180056a54
cmp dword [rdi + 0x24], 1
je 0x180056e42
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x180056e42
inc rbx
inc r8d
mov dword [rsp + 0x40], r8d
cmp r8d, r10d
jl 0x1800569ee
jmp 0x180056e42
mov r9d, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x180056add
mov eax, edx
lea r10, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r10 + 0x61be0]
and edx, dword [r10 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov r10d, 1
shl edx, cl
cmp r10, r9
ja 0x180056ad5
lea edi, [r10 + 5]
movzx eax, byte [r10 + rbx]
sub ecx, edi
and eax, 0x3f
inc r10
shl eax, cl
or edx, eax
cmp r10, r9
jle 0x180056ab8
mov rdi, qword [rbp + 0xb8]
mov r10d, dword [rsp + 0x48]
inc r9d
cmp edx, 0x100
jae 0x180056e42
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
je 0x180056e42
mov eax, r9d
add rbx, rax
inc r8d
cmp r8d, r10d
jl 0x180056a69
jmp 0x180056e42
mov r9d, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x180056b82
mov eax, edx
lea r10, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r10 + 0x61be0]
and edx, dword [r10 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov r10d, 1
shl edx, cl
cmp r10, r9
ja 0x180056b7a
lea edi, [r10 + 5]
movzx eax, byte [r10 + rbx]
sub ecx, edi
and eax, 0x3f
inc r10
shl eax, cl
or edx, eax
cmp r10, r9
jle 0x180056b5d
mov rdi, qword [rbp + 0xb8]
mov r10d, dword [rsp + 0x48]
inc r9d
cmp edx, 0x100
jae 0x180056b98
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
jne 0x180056e42
mov eax, r9d
add rbx, rax
inc r8d
cmp r8d, r10d
jl 0x180056b0e
jmp 0x180056e42
mov r9d, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x180056c23
mov eax, edx
lea r10, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r10 + 0x61be0]
and edx, dword [r10 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov r10d, 1
shl edx, cl
cmp r10, r9
ja 0x180056c1b
lea edi, [r10 + 5]
movzx eax, byte [r10 + rbx]
sub ecx, edi
and eax, 0x3f
inc r10
shl eax, cl
or edx, eax
cmp r10, r9
jle 0x180056bfe
mov rdi, qword [rbp + 0xb8]
mov r10d, dword [rsp + 0x48]
inc r9d
cmp edx, 0x100
jae 0x180056e42
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 1
je 0x180056e42
mov eax, r9d
add rbx, rax
inc r8d
cmp r8d, r10d
jl 0x180056baf
jmp 0x180056e42
mov r9d, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x180056cc8
mov eax, edx
lea r10, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r10 + 0x61be0]
and edx, dword [r10 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov r10d, 1
shl edx, cl
cmp r10, r9
ja 0x180056cc0
lea edi, [r10 + 5]
movzx eax, byte [r10 + rbx]
sub ecx, edi
and eax, 0x3f
inc r10
shl eax, cl
or edx, eax
cmp r10, r9
jle 0x180056ca3
mov rdi, qword [rbp + 0xb8]
mov r10d, dword [rsp + 0x48]
inc r9d
cmp edx, 0x100
jae 0x180056cde
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 1
jne 0x180056e42
mov eax, r9d
add rbx, rax
inc r8d
cmp r8d, r10d
jl 0x180056c54
jmp 0x180056e42
mov r9d, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180056e42
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x180056d69
mov eax, edx
lea r10, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + r10 + 0x61be0]
and edx, dword [r10 + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
mov r10d, 1
shl edx, cl
cmp r10, r9
ja 0x180056d61
lea edi, [r10 + 5]
movzx eax, byte [r10 + rbx]
sub ecx, edi
and eax, 0x3f
inc r10
shl eax, cl
or edx, eax
cmp r10, r9
jle 0x180056d44
mov rdi, qword [rbp + 0xb8]
mov r10d, dword [rsp + 0x48]
inc r9d
cmp edx, 0x100
jae 0x180056e42
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 4
je 0x180056e42
mov eax, r9d
add rbx, rax
inc r8d
cmp r8d, r10d
jl 0x180056cf5
jmp 0x180056e42
cmp r8d, r10d
jge 0x180056e42
lea rsi, [0x180000000]
mov r9d, 1
cmp rbx, qword [rdi + 0x70]
jae 0x180056e3b
movzx edx, byte [rbx]
cmp edx, 0xc0
jb 0x180056e17
mov eax, edx
mov r10d, 1
and eax, 0x3f
movzx r9d, byte [rax + rsi + 0x61be0]
and edx, dword [rsi + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
shl edx, cl
cmp r10, r9
ja 0x180056e0f
lea esi, [r10 + 5]
movzx eax, byte [r10 + rbx]
sub ecx, esi
and eax, 0x3f
inc r10
shl eax, cl
or edx, eax
cmp r10, r9
jle 0x180056df2
lea rsi, [0x180000000]
mov r10d, dword [rsp + 0x48]
inc r9d
cmp edx, 0x100
jae 0x180056e29
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 4
jne 0x180056e3b
mov eax, r9d
inc r8d
add rbx, rax
cmp r8d, r10d
jl 0x180056daa
mov rsi, qword [rbp + 0xa8]
cmp dword [rsp + 0x58], 0
jne 0x1800547f4
mov eax, dword [rbp + 0xd8]
inc eax
jmp 0x1800588ce
sub ecx, 5
je 0x180057056
sub ecx, 1
je 0x180057036
sub ecx, 1
je 0x180057016
sub ecx, 1
je 0x180056ff6
sub ecx, 1
je 0x180056fd6
sub ecx, 1
je 0x180056fab
sub ecx, 1
je 0x180056eef
sub ecx, 1
je 0x180056ef9
cmp ecx, 3
jne 0x180056825
jmp 0x180056ee5
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
movzx ecx, byte [rbx]
cmp ecx, 0xd
jne 0x180056ecb
inc rbx
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
cmp byte [rbx], 0xa
jne 0x180056ee2
jmp 0x180056edf
lea eax, [rcx - 0xa]
cmp eax, 2
jbe 0x180056edf
cmp ecx, 0x85
jne 0x18005705b
inc rbx
inc r8d
cmp r8d, r10d
jl 0x180056ea5
jmp 0x18005705b
test r9b, 4
je 0x180056f80
mov eax, dword [rdi + 0x70]
sub r10d, r8d
sub eax, ebx
cmp r10d, eax
cmova r10d, eax
mov eax, r10d
add rbx, rax
jmp 0x18005705b
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
jae 0x18005705b
cmp dword [rdi + 0x20], 0
je 0x180056f4c
mov rdx, rcx
lea r8, [rdi + 0x24]
mov rcx, rbx
xor r9d, r9d
call fcn.1800598fc
test eax, eax
jne 0x18005705b
mov r8d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x48]
jmp 0x180056f75
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x180056f75
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180056f75
cmp dword [rdi + 0x24], 1
je 0x18005705b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x18005705b
inc rbx
inc r8d
mov dword [rsp + 0x40], r8d
cmp r8d, r10d
jl 0x180056f13
jmp 0x18005705b
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 0x10
je 0x18005705b
inc rbx
inc r8d
cmp r8d, r10d
jl 0x180056f8a
jmp 0x18005705b
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 0x10
jne 0x18005705b
inc rbx
inc r8d
cmp r8d, r10d
jl 0x180056fb5
jmp 0x18005705b
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 1
je 0x18005705b
inc rbx
inc r8d
cmp r8d, r10d
jl 0x180056fdd
jmp 0x18005705b
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 1
jne 0x18005705b
inc rbx
inc r8d
cmp r8d, r10d
jl 0x180056ffd
jmp 0x18005705b
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 4
je 0x18005705b
inc rbx
inc r8d
cmp r8d, r10d
jl 0x18005701d
jmp 0x18005705b
cmp rbx, qword [rdi + 0x70]
jae 0x18005705b
movzx ecx, byte [rbx]
mov rax, qword [rdi + 0x38]
test byte [rcx + rax], 4
jne 0x18005705b
inc rbx
inc r8d
cmp r8d, r10d
jl 0x18005703d
cmp dword [rsp + 0x58], 0
jne 0x1800547f4
cmp rbx, qword [rsp + 0x68]
jb 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
dec rbx
test eax, eax
jne 0x180058e6d
mov eax, dword [rbp + 0xb8]
cmp rbx, qword [rsp + 0x68]
jae 0x18005707f
jmp 0x180058e5b
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x1800570d0
jmp 0x18005429a
cmp r8d, 0x58
ja 0x18005754f
je 0x18005786b
cmp r8d, 0x4f
jb 0x180054abc
cmp r8d, 0x51
jbe 0x18005740e
cmp r8d, 0x52
je 0x180057354
cmp r8d, 0x53
je 0x1800572da
cmp r8d, 0x54
je 0x180057354
cmp r8d, 0x55
je 0x1800572da
cmp r8d, 0x56
je 0x180057280
cmp r8d, 0x57
jne 0x180054abc
lea eax, [r10 + 1]
mov qword [rsp + 0x70], rsi
mov dword [rsp + 0x4c], eax
mov qword [rsp + 0x68], rbx
mov dword [rsp + 0x38], eax
lea rdx, [rsi + 3]
mov rax, qword [rbp + 0xc8]
mov r8d, r11d
and dword [rsp + 0x30], 0
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
cmp eax, 1
je 0x1800571c0
test eax, eax
jne 0x180058e6d
movzx eax, byte [rsi + 2]
movzx ecx, byte [rsi + 1]
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
shl rcx, 8
or rcx, rax
mov eax, dword [rsp + 0x4c]
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x18005715e
cmp byte [rsi], 0x57
je 0x1800571ce
cmp byte [rsi], 0x4e
jne 0x180058e5b
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x1800571ce
cmp byte [rsi], 0x4f
mov r11d, dword [rdi + 0x88]
mov rbx, qword [rdi + 0x80]
mov dword [rbp + 0xb0], r11d
je 0x1800573f3
cmp rbx, qword [rsp + 0x68]
je 0x1800573f3
mov edx, dword [rbp + 0xc0]
lea rcx, [rsi + 3]
cmp byte [rcx], 0x13
mov qword [rsp + 0x68], rcx
jne 0x180057233
movzx eax, byte [rsi + 4]
and edx, 0xfffffff8
or eax, edx
mov edx, eax
mov dword [rbp + 0xc0], eax
mov eax, dword [rbp + 0xd8]
mov r9, rdi
inc eax
mov r8d, r11d
cmp byte [rsi], 0x51
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xc8]
jne 0x180057734
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
mov rdx, rcx
mov rcx, rbx
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov rsi, qword [rsp + 0x70]
jmp 0x1800577f0
test ecx, ecx
je 0x1800572b5
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl ecx, 8
or ecx, eax
jbe 0x1800572d1
dec ecx
dec rbx
cmp rbx, qword [rdi + 0x68]
jb 0x180058e5b
jmp 0x1800572a7
dec rbx
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
je 0x1800572a4
test ecx, ecx
jg 0x180057293
jmp 0x1800572d1
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
sub rbx, rcx
cmp rbx, qword [rdi + 0x68]
jb 0x180058e5b
add rsi, 3
jmp 0x18005429a
lea eax, [r10 + 1]
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x38], eax
lea rdx, [rsi + 3]
and dword [rsp + 0x30], 0
mov r8d, r11d
and qword [rsp + 0x28], 0
mov rcx, rbx
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
cmp eax, 1
je 0x180058e5b
test eax, eax
jne 0x180058e6d
movzx eax, byte [rsi + 2]
movzx ecx, byte [rsi + 1]
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
shl rcx, 8
or rcx, rax
mov eax, dword [rsp + 0x4c]
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x1800572e2
test byte [rbp + 0xd0], 1
jne 0x180057980
jmp 0x1800573f3
lea eax, [r10 + 1]
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x38], eax
lea rdx, [rsi + 3]
and dword [rsp + 0x30], 0
mov r8d, r11d
and qword [rsp + 0x28], 0
mov rcx, rbx
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
cmp eax, 1
je 0x1800573b8
test eax, eax
jne 0x180058e6d
movzx eax, byte [rsi + 2]
movzx ecx, byte [rsi + 1]
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
shl rcx, 8
or rcx, rax
mov eax, dword [rsp + 0x4c]
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x18005735c
cmp byte [rsi], 0x4f
je 0x180058e5b
test byte [rbp + 0xd0], 1
jne 0x180057980
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x1800573ce
mov r11d, dword [rdi + 0x88]
mov dword [rbp + 0xb0], r11d
add rsi, 3
mov r9d, dword [rbp + 0xc0]
mov r10d, dword [rbp + 0xd8]
mov ecx, dword [rsp + 0x44]
jmp 0x180054281
movzx ecx, byte [rsi + 1]
mov rdx, rsi
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
sub rdx, rcx
mov qword [rsp + 0x68], rdx
cmp byte [rdx], 0x5b
jb 0x180057444
mov rax, qword [rbp + 0xc8]
mov r11, qword [rax + 8]
mov rax, qword [rax]
mov qword [rbp + 0xc8], rax
jmp 0x180057447
xor r11d, r11d
mov al, byte [rdx]
sub al, 0x52
cmp al, 3
jbe 0x180058d43
cmp byte [rdx], 0x57
je 0x180058d43
cmp byte [rdx], 0x59
je 0x18005746a
cmp byte [rdx], 0x5c
jne 0x180057529
movzx r9d, byte [rdx + 3]
movzx eax, byte [rdx + 4]
shl r9d, 8
or r9d, eax
mov dword [rdi + 0x8c], r9d
lea r10d, [r9 + r9]
cmp r10d, dword [rdi + 0x1c]
jl 0x180057494
mov dword [rdi + 0x40], 1
jmp 0x1800574d1
mov eax, dword [rdi + 0x18]
mov edx, ebx
mov r8, qword [rdi + 0x10]
sub eax, r9d
movsxd rcx, eax
mov eax, dword [r8 + rcx*4]
lea ecx, [r10 + 1]
mov dword [r8 + r10*4], eax
sub edx, dword [rdi + 0x68]
mov rax, qword [rdi + 0x10]
mov dword [rax + rcx*4], edx
mov rdx, qword [rsp + 0x68]
cmp dword [rbp + 0xb0], r10d
jg 0x1800574d1
lea eax, [r10 + 2]
mov dword [rbp + 0xb0], eax
mov rcx, qword [rdi + 0xa8]
mov qword [rsp + 0x70], rcx
test rcx, rcx
je 0x180057529
cmp dword [rcx + 8], r9d
jne 0x180057529
mov rax, qword [rcx]
mov qword [rdi + 0xa8], rax
mov rax, qword [rcx + 0x18]
mov qword [rdi + 0x78], rax
movsxd r8, dword [rcx + 0x28]
mov rdx, qword [rcx + 0x20]
mov rcx, qword [rdi + 0x10]
shl r8, 2
call fcn.18003152c
mov rsi, qword [rsp + 0x70]
mov r9d, dword [rsp + 0x78]
mov dword [rbp + 0xc0], r9d
mov rsi, qword [rsi + 0x10]
jmp 0x180057728
cmp byte [rsi], 0x4f
mov r8d, dword [rsp + 0x78]
mov r9d, r8d
mov dword [rbp + 0xc0], r8d
je 0x180057546
cmp rbx, r11
jne 0x180057764
add rsi, 3
jmp 0x180057728
mov ecx, r8d
sub ecx, 0x59
je 0x180057847
sub ecx, 1
je 0x18005763d
sub ecx, 1
je 0x18005786b
sub ecx, 1
je 0x180057847
sub ecx, 1
je 0x18005763d
sub ecx, 4
je 0x1800575e7
cmp ecx, 1
jne 0x180054abc
inc rsi
mov rdx, rsi
movzx ecx, byte [rdx + 1]
movzx eax, byte [rdx + 2]
shl rcx, 8
or rcx, rax
add rdx, rcx
cmp byte [rdx], 0x4e
je 0x180057593
lea eax, [r10 + 1]
add rdx, 3
mov dword [rsp + 0x38], eax
mov r8d, r11d
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
test eax, eax
jne 0x180058e6d
jmp 0x180057721
lea eax, [r10 + 1]
inc rsi
mov dword [rsp + 0x38], eax
mov r8d, r11d
mov rax, qword [rbp + 0xc8]
mov rdx, rsi
and dword [rsp + 0x30], 0
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
test eax, eax
jne 0x180058e6d
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x180057621
jmp 0x18005771d
lea rdx, [rsi + 3]
mov al, byte [rdx]
cmp al, 0x5f
jne 0x180057682
movzx eax, byte [rsi + 5]
movzx ecx, byte [rsi + 4]
shl ecx, 8
or ecx, eax
mov rax, qword [rdi + 0xa8]
test rax, rax
je 0x1800576f8
cmp ecx, 0xffff
je 0x180057675
cmp ecx, dword [rax + 8]
jne 0x1800576f8
mov edx, 1
lea ecx, [rdx + 2]
jmp 0x180057709
cmp al, 0x5e
jne 0x1800576a6
movzx ecx, byte [rsi + 4]
movzx eax, byte [rsi + 5]
shl ecx, 8
or ecx, eax
add ecx, ecx
cmp ecx, r11d
jge 0x1800576f8
mov rax, qword [rdi + 0x10]
cmp dword [rax + rcx*4], 0
jl 0x1800576f8
jmp 0x180057675
cmp al, 0x60
jne 0x1800576be
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
jmp 0x180057714
lea eax, [r10 + 1]
mov r8d, r11d
mov dword [rsp + 0x38], eax
mov rcx, rbx
mov dword [rsp + 0x30], 1
and qword [rsp + 0x28], 0
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
cmp eax, 1
je 0x180057806
test eax, eax
jne 0x180058e6d
movzx ecx, byte [rsi + 1]
xor edx, edx
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
test edx, edx
jne 0x18005782b
cmp byte [rsi], 0x4e
je 0x18005782b
add rsi, 3
mov r9d, dword [rbp + 0xc0]
mov r11d, dword [rbp + 0xb0]
jmp 0x1800573fe
mov dword [rsp + 0x30], 2
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
mov rdx, qword [rsp + 0x70]
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov rsi, qword [rsp + 0x68]
jmp 0x1800577f0
cmp byte [rdx], 0x5b
mov r9, rdi
mov eax, dword [rbp + 0xd8]
sbb ecx, ecx
not ecx
and ecx, 2
inc eax
mov dword [rbp + 0xd0], ecx
cmp byte [rsi], 0x51
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xc8]
jne 0x1800577c7
and dword [rsp + 0x30], 0
lea rdx, [rsi + 3]
mov qword [rsp + 0x28], rax
mov rcx, rbx
mov dword [rsp + 0x20], r8d
mov r8d, dword [rbp + 0xb0]
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov rsi, qword [rsp + 0x68]
or dword [rbp + 0xd0], 4
jmp 0x1800577fa
mov dword [rsp + 0x30], ecx
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r8d
mov r8d, dword [rbp + 0xb0]
call fcn.180054194
test eax, eax
jne 0x180058e6d
add rsi, 3
mov dword [rbp + 0xd0], 4
lea rdx, [0x180000000]
jmp 0x180057941
movzx ecx, byte [rsi + 4]
movzx eax, byte [rsi + 5]
add rsi, 3
jmp 0x18005781c
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
cmp byte [rsi], 0x4e
je 0x180057814
mov ecx, 4
add rsi, 3
cmp dword [rsp + 0x4c], 0x5d
lea eax, [rcx + 2]
cmove ecx, eax
mov dword [rbp + 0xd0], ecx
jmp 0x1800577fa
movzx ecx, byte [rsi + 3]
movzx eax, byte [rsi + 4]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x58], ecx
lea r9d, [rcx + rcx]
mov dword [rsp + 0x60], r9d
cmp r9d, dword [rdi + 0x1c]
jl 0x180058d54
movzx ecx, byte [rsi + 1]
cmp r8d, 0x5b
movzx eax, byte [rsi + 2]
sbb r8d, r8d
shl rcx, 8
or rcx, rax
not r8d
and r8d, 2
mov dword [rbp + 0xd0], r8d
cmp byte [rcx + rsi], 0x4e
jne 0x180057928
lea ecx, [r10 + 1]
mov dword [rsp + 0x4c], ecx
movzx eax, byte [rsi]
mov r9, rdi
mov dword [rsp + 0x38], ecx
mov rcx, rbx
mov dword [rsp + 0x30], r8d
mov r8d, r11d
movzx edx, byte [rax + rdx + 0x61c20]
mov rax, qword [rbp + 0xc8]
add rdx, rsi
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
jne 0x180058e6d
movzx eax, byte [rsi + 2]
lea rdx, [0x180000000]
movzx ecx, byte [rsi + 1]
mov r11d, dword [rbp + 0xb0]
mov r8d, dword [rbp + 0xd0]
shl rcx, 8
or rcx, rax
add rsi, rcx
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
cmp byte [rcx + rsi], 0x4e
mov ecx, dword [rsp + 0x4c]
je 0x1800578a1
movzx eax, byte [rsi]
movzx eax, byte [rax + rdx + 0x61c20]
add rsi, rax
or r8d, 4
mov dword [rbp + 0xd0], r8d
mov eax, dword [rdi + 4]
cmp dword [rdi], eax
jae 0x180058e66
mov r11d, dword [rbp + 0xb0]
jmp 0x1800541d2
mov eax, 0xffffffea
jmp 0x180058e6d
cmp dword [rdi + 0x54], 0
je 0x180057972
cmp rbx, qword [rdi + 0x78]
je 0x180058e5b
mov dword [rdi + 0x88], r11d
mov qword [rdi + 0x80], rbx
mov eax, 1
jmp 0x180058e6d
mov r8d, dword [rbp + 0xb0]
lea eax, [r10 + 1]
mov dword [rsp + 0x38], eax
mov r9, rdi
mov rax, qword [rbp + 0xc8]
mov rdx, rsi
and dword [rsp + 0x30], 0
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov ecx, dword [rsp + 0x4c]
mov qword [rbp + 0xb8], rcx
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x40], eax
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
mov rdx, qword [rsp + 0x68]
mov r8, rcx
mov rcx, rbx
call fcn.1800314d0
test eax, eax
jne 0x180058e5b
mov eax, dword [rbp + 0xd8]
mov r9, rdi
add rbx, qword [rbp + 0xb8]
inc eax
mov r8d, dword [rbp + 0xb0]
mov rdx, rsi
inc dword [rsp + 0x40]
mov rcx, rbx
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
mov rcx, qword [rbp + 0xb8]
test eax, eax
je 0x1800579d5
jmp 0x180058e6d
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rsp + 0x38], eax
and dword [rsp + 0x30], 0
mov rax, qword [rbp + 0xc8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r11d
jmp 0x180057ae5
mov r8d, dword [rsp + 0x40]
cmp r8d, dword [rsp + 0x48]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx ecx, byte [rbx]
inc rbx
mov rax, qword [rdi + 0x30]
movzx edx, byte [rcx + rax]
cmp dword [rsp + 0x4c], edx
jne 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc r8d
inc eax
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.180054194
test eax, eax
je 0x180057a84
jmp 0x180058e6d
cmp rbx, rax
jb 0x180058e5b
lea eax, [r10 + 1]
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r11d
call fcn.180054194
dec rbx
test eax, eax
jne 0x180058e6d
mov eax, dword [rbp + 0xb8]
mov r11d, dword [rbp + 0xc0]
cmp rbx, qword [rsp + 0x70]
jae 0x180057b16
jmp 0x180058e5b
lea eax, [r10 + 1]
mov dword [rsp + 0x38], eax
and dword [rsp + 0x30], 0
mov rax, qword [rbp + 0xc8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r11d
jmp 0x180057bde
mov ecx, dword [rsp + 0x40]
cmp ecx, dword [rsp + 0x48]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx eax, byte [rbx]
inc rbx
cmp dword [rsp + 0x50], eax
jne 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc ecx
inc eax
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.180054194
test eax, eax
je 0x180057b89
jmp 0x180058e6d
mov rax, rbx
dec rbx
cmp rax, qword [rsp + 0x68]
je 0x180058e5b
jmp 0x180057c12
dec rbx
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
je 0x180057c0f
mov eax, dword [rbp + 0xd8]
inc eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180057bfc
jmp 0x180058e6d
mov eax, dword [rbp + 0xd8]
mov rdx, rsi
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
test ecx, ecx
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
mov dword [rsp + 0x30], r11d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
je 0x180057deb
jmp 0x180057d68
movzx edx, byte [rbx]
inc rbx
cmp edx, 0xc0
jb 0x180057cf9
mov eax, edx
lea r9, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + r9 + 0x61be0]
and edx, dword [r9 + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
shl edx, cl
test r8d, r8d
je 0x180057cf9
mov edi, 6
movzx eax, byte [rbx]
sub ecx, edi
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x180057cdb
mov rdi, qword [rbp + 0xb8]
cmp edx, 0x100
jae 0x180057d09
mov rax, qword [rdi + 0x30]
movzx edx, byte [rdx + rax]
mov eax, dword [rsp + 0x40]
cmp eax, dword [rsp + 0x48]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
cmp dword [rsp + 0x50], edx
je 0x180058e5b
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x40], eax
mov r9, rdi
mov eax, dword [rbp + 0xd8]
mov rdx, rsi
inc eax
mov rcx, rbx
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180057c9e
jmp 0x180058e6d
mov r8d, dword [rsp + 0x40]
cmp r8d, dword [rsp + 0x48]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx ecx, byte [rbx]
inc rbx
mov rax, qword [rdi + 0x30]
movzx edx, byte [rcx + rax]
cmp dword [rsp + 0x50], edx
je 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc r8d
inc eax
mov dword [rsp + 0x40], r8d
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180057d7a
jmp 0x180058e6d
mov rax, rbx
dec rbx
cmp rax, qword [rsp + 0x68]
je 0x180058e5b
jmp 0x180057e0f
dec rbx
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
je 0x180057e0c
mov eax, dword [rbp + 0xd8]
inc eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180057df9
jmp 0x180058e6d
mov eax, dword [rbp + 0xd8]
mov rdx, rsi
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
test ecx, ecx
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
mov dword [rsp + 0x30], r10d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
je 0x180057fcc
jmp 0x180057f55
movzx edx, byte [rbx]
inc rbx
cmp edx, 0xc0
jb 0x180057ef6
mov eax, edx
lea r9, [0x180000000]
and eax, 0x3f
movzx r8d, byte [rax + r9 + 0x61be0]
and edx, dword [r9 + r8*4 + 0x61bc0]
lea ecx, [r8 + r8*2]
add ecx, ecx
shl edx, cl
test r8d, r8d
je 0x180057ef6
mov edi, 6
movzx eax, byte [rbx]
sub ecx, edi
and eax, 0x3f
dec r8d
shl eax, cl
inc rbx
or edx, eax
test r8d, r8d
jg 0x180057ed8
mov rdi, qword [rbp + 0xb8]
mov eax, dword [rsp + 0x40]
cmp eax, dword [rsp + 0x48]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
cmp dword [rsp + 0x4c], edx
je 0x180058e5b
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x40], eax
mov r9, rdi
mov eax, dword [rbp + 0xd8]
mov rdx, rsi
inc eax
mov rcx, rbx
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180057e9b
jmp 0x180058e6d
mov ecx, dword [rsp + 0x40]
cmp ecx, dword [rsp + 0x48]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx eax, byte [rbx]
inc rbx
cmp dword [rsp + 0x4c], eax
je 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc ecx
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
mov r9, rdi
mov rax, qword [rbp + 0xc8]
mov rdx, rsi
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x40], ecx
mov rcx, rbx
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180057f67
jmp 0x180058e6d
movzx edx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rdx, 8
or rdx, rax
add rdx, qword [rdi + 0x60]
mov qword [rbp + 0xb8], rdx
cmp rdx, qword [rdi + 0x60]
jne 0x180058000
and dword [rbp - 0x78], 0
jmp 0x180058010
movzx ecx, byte [rdx + 3]
movzx eax, byte [rdx + 4]
shl ecx, 8
or ecx, eax
mov dword [rbp - 0x78], ecx
mov rax, qword [rdi + 0xa8]
movsxd rcx, dword [rdi + 0x18]
mov qword [rbp - 0x80], rax
lea rax, [rbp - 0x80]
mov qword [rdi + 0xa8], rax
lea rax, [rsi + 3]
mov qword [rbp - 0x70], rax
mov dword [rbp - 0x58], ecx
cmp ecx, 0x1e
jg 0x180058044
lea rax, [rbp]
mov qword [rbp - 0x60], rax
jmp 0x180058064
shl rcx, 2
call qword [fcn.1800314c8]
mov qword [rbp - 0x60], rax
test rax, rax
jne 0x180058061
mov eax, 0xfffffffa
jmp 0x180058e6d
mov ecx, dword [rbp - 0x58]
mov rdx, qword [rdi + 0x10]
movsxd r8, ecx
mov rcx, rax
shl r8, 2
call fcn.18003152c
mov rax, qword [rdi + 0x78]
mov rsi, qword [rbp + 0xb8]
mov r8d, dword [rbp + 0xd8]
mov qword [rbp - 0x68], rax
mov qword [rdi + 0x78], rbx
mov al, byte [rsi]
cmp al, 0x5b
sbb ecx, ecx
not ecx
and ecx, 2
inc r8d
mov dword [rbp + 0xb8], ecx
mov dword [rsp + 0x4c], r8d
mov dword [rsp + 0x38], r8d
lea rdx, [0x180000000]
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
movzx eax, al
mov dword [rsp + 0x30], ecx
mov rcx, rbx
movzx edx, byte [rax + rdx + 0x61c20]
mov rax, qword [rbp + 0xc8]
add rdx, rsi
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
cmp eax, 1
je 0x18005816b
test eax, eax
jne 0x180058e6d
movsxd r8, dword [rbp - 0x58]
lea rax, [rbp - 0x80]
mov rdx, qword [rbp - 0x60]
mov rcx, qword [rdi + 0x10]
shl r8, 2
mov qword [rdi + 0xa8], rax
call fcn.18003152c
movzx eax, byte [rsi + 2]
movzx ecx, byte [rsi + 1]
mov r8d, dword [rsp + 0x4c]
shl rcx, 8
or rcx, rax
add rsi, rcx
mov ecx, dword [rbp + 0xb8]
mov al, byte [rsi]
cmp al, 0x4e
je 0x1800580aa
mov rax, qword [rbp - 0x80]
mov rcx, qword [rbp - 0x60]
mov qword [rdi + 0xa8], rax
lea rax, [rbp]
cmp rcx, rax
je 0x180058e5b
call qword [fcn.180030ff4]
jmp 0x180058e5b
mov rax, qword [rbp - 0x80]
mov rcx, qword [rbp - 0x60]
mov qword [rdi + 0xa8], rax
lea rax, [rbp]
cmp rcx, rax
je 0x180057980
call qword [fcn.180030ff4]
jmp 0x180057980
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x40], eax
jge 0x180058e5b
mov eax, dword [rbp + 0xc0]
mov r9, rdi
mov r8d, dword [rsp + 0x60]
mov rdx, rbx
mov ecx, dword [rsp + 0x4c]
mov dword [rsp + 0x20], eax
call fcn.180058e80
test eax, eax
je 0x180058e5b
movsxd rax, dword [rsp + 0x60]
inc dword [rsp + 0x40]
add rbx, rax
mov eax, dword [rbp + 0xd8]
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
mov r9, rdi
mov rax, qword [rbp + 0xc8]
mov rdx, rsi
and dword [rsp + 0x30], 0
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180058192
jmp 0x180058e6d
mov qword [rsp + 0x70], rbx
cmp ecx, eax
jge 0x18005826a
mov esi, dword [rsp + 0x40]
mov eax, dword [rbp + 0xc0]
mov r8d, edx
mov rdx, rbx
mov dword [rsp + 0x20], eax
mov r9, rdi
mov ecx, r10d
call fcn.180058e80
test eax, eax
je 0x180058258
movsxd rdx, dword [rsp + 0x60]
inc esi
mov r10d, dword [rsp + 0x4c]
add rbx, rdx
cmp esi, dword [rsp + 0x48]
jl 0x180058224
mov rsi, qword [rbp + 0xa8]
cmp rbx, qword [rsp + 0x70]
jb 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
jne 0x180058e6d
movsxd rax, dword [rsp + 0x60]
sub rbx, rax
mov eax, dword [rbp + 0xb8]
cmp rbx, qword [rsp + 0x70]
jae 0x180058278
jmp 0x180058e5b
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x40], eax
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx r8d, byte [rbx]
inc rbx
cmp r8d, 0xc0
jb 0x180058342
mov eax, r8d
lea r9, [0x180000000]
and eax, 0x3f
movzx edx, byte [rax + r9 + 0x61be0]
and r8d, dword [r9 + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
add ecx, ecx
shl r8d, cl
test edx, edx
je 0x180058342
mov edi, 6
movzx eax, byte [rbx]
sub ecx, edi
and eax, 0x3f
dec edx
shl eax, cl
inc rbx
or r8d, eax
test edx, edx
jg 0x180058325
mov rdi, qword [rbp + 0xb8]
mov rdx, qword [rsp + 0x68]
mov ecx, r8d
call fcn.180059d60
test eax, eax
je 0x180058e5b
inc dword [rsp + 0x40]
mov eax, dword [rbp + 0xd8]
inc eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x1800582ce
jmp 0x180058e6d
mov qword [rsp + 0x70], rbx
cmp ecx, eax
jge 0x180058465
lea rsi, [0x180000000]
mov dword [rbp + 0xb8], 1
cmp rbx, qword [rdi + 0x70]
jae 0x18005845e
movzx r8d, byte [rbx]
cmp r8d, 0xc0
jb 0x18005842d
mov eax, r8d
mov r9d, 1
and eax, 0x3f
movzx edx, byte [rax + rsi + 0x61be0]
and r8d, dword [rsi + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
add ecx, ecx
shl r8d, cl
cmp r9, rdx
ja 0x180058424
lea esi, [r9 + 5]
movzx eax, byte [r9 + rbx]
sub ecx, esi
and eax, 0x3f
inc r9
shl eax, cl
or r8d, eax
cmp r9, rdx
jle 0x180058406
lea rsi, [0x180000000]
lea eax, [rdx + 1]
mov dword [rbp + 0xb8], eax
mov rdx, r10
mov ecx, r8d
call fcn.180059d60
test eax, eax
je 0x18005845e
mov eax, dword [rbp + 0xb8]
mov r10, qword [rsp + 0x68]
add rbx, rax
mov eax, dword [rsp + 0x40]
inc eax
mov dword [rsp + 0x40], eax
cmp eax, dword [rsp + 0x48]
jl 0x1800583b8
mov rsi, qword [rbp + 0xa8]
mov eax, dword [rbp + 0xd8]
inc eax
jmp 0x180058495
mov rax, rbx
dec rbx
cmp rax, qword [rsp + 0x70]
je 0x180058e5b
jmp 0x180058485
dec rbx
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
je 0x180058482
mov eax, dword [rbp + 0xd8]
inc eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x18005846f
jmp 0x180058e6d
cmp dword [rsp + 0x60], 0
je 0x1800586ad
mov eax, dword [rbp + 0xd8]
mov r9, rdi
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
mov rdx, rsi
and dword [rsp + 0x30], 0
mov rax, qword [rbp + 0xc8]
test ecx, ecx
mov qword [rsp + 0x28], rax
mov rcx, rbx
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
je 0x18005869b
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov r8d, dword [rsp + 0x48]
cmp r8d, dword [rsp + 0x40]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx r9d, byte [rbx]
inc rbx
cmp r9d, 0xc0
jb 0x18005859f
mov eax, r9d
lea r10, [0x180000000]
and eax, 0x3f
movzx edx, byte [rax + r10 + 0x61be0]
and r9d, dword [r10 + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
add ecx, ecx
shl r9d, cl
test edx, edx
je 0x18005859f
mov edi, 6
movzx eax, byte [rbx]
sub ecx, edi
and eax, 0x3f
dec edx
shl eax, cl
inc rbx
or r9d, eax
test edx, edx
jg 0x180058582
mov rdi, qword [rbp + 0xb8]
cmp r9d, 0xff
jbe 0x1800585af
cmp dword [rsp + 0x4c], 0x48
jmp 0x1800585cd
mov ecx, r9d
mov eax, r9d
and ecx, 7
shr rax, 3
mov edx, 1
shl edx, cl
mov rcx, qword [rsp + 0x50]
mov cl, byte [rax + rcx]
test cl, dl
je 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc r8d
inc eax
mov dword [rsp + 0x48], r8d
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
jmp 0x18005851c
mov r9d, dword [rsp + 0x48]
cmp r9d, dword [rsp + 0x40]
jge 0x180058e5b
cmp rbx, qword [rdi + 0x70]
jae 0x180058e5b
movzx edx, byte [rbx]
mov r8d, 1
mov ecx, edx
mov eax, edx
and ecx, 7
shr rax, 3
shl r8d, cl
inc rbx
mov rcx, qword [rsp + 0x50]
mov cl, byte [rax + rcx]
test cl, r8b
je 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc r9d
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x48], r9d
mov r9, rdi
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x180058617
jmp 0x180058e6d
mov qword [rsp + 0x68], rbx
test ecx, ecx
je 0x180058806
cmp r9d, r11d
jge 0x180058799
mov rsi, qword [rdi + 0x70]
mov rdi, qword [rsp + 0x50]
mov dword [rsp + 0x4c], 1
cmp rbx, rsi
jae 0x18005878b
movzx r10d, byte [rbx]
cmp r10d, 0xc0
jb 0x180058750
mov eax, r10d
lea rcx, [0x180000000]
and eax, 0x3f
movzx edx, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + rdx*4 + 0x61bc0]
lea ecx, [rdx + rdx*2]
and r10d, eax
add ecx, ecx
shl r10d, cl
mov eax, 1
cmp rax, rdx
ja 0x180058749
mov r11d, eax
lea edi, [rax + 5]
movzx eax, byte [r11 + rbx]
sub ecx, edi
and eax, 0x3f
inc r11
shl eax, cl
or r10d, eax
cmp r11, rdx
jle 0x180058728
mov r11d, dword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
lea eax, [rdx + 1]
mov dword [rsp + 0x4c], eax
cmp r10d, 0xff
jbe 0x18005875f
cmp r8d, 0x48
jmp 0x180058776
mov eax, r10d
mov ecx, r10d
and ecx, 7
shr rax, 3
mov edx, 1
shl edx, cl
test byte [rax + rdi], dl
je 0x18005878b
mov eax, dword [rsp + 0x4c]
inc r9d
add rbx, rax
cmp r9d, r11d
jl 0x1800586cc
mov rdi, qword [rbp + 0xb8]
mov rsi, qword [rbp + 0xa8]
mov eax, dword [rbp + 0xd8]
inc eax
jmp 0x1800587c9
mov rax, rbx
dec rbx
cmp rax, qword [rsp + 0x68]
je 0x180058e5b
jmp 0x1800587b9
dec rbx
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
je 0x1800587b6
mov eax, dword [rbp + 0xd8]
inc eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x1800587a3
jmp 0x180058e6d
cmp r9d, r11d
jge 0x180058849
mov r10, qword [rsp + 0x50]
cmp rbx, qword [rdi + 0x70]
jae 0x18005883e
movzx edx, byte [rbx]
mov r8d, 1
mov eax, edx
mov ecx, edx
and ecx, 7
shr rax, 3
shl r8d, cl
test byte [rax + r10], r8b
je 0x18005883e
inc rbx
inc r9d
cmp r9d, r11d
jl 0x180058810
cmp rbx, qword [rsp + 0x68]
jb 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc eax
mov dword [rbp + 0xb8], eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov eax, dword [rbp + 0xb8]
dec rbx
cmp rbx, qword [rsp + 0x68]
jae 0x180058857
jmp 0x180058e5b
mov rax, rbx
dec rbx
cmp rax, qword [rsp + 0x68]
je 0x180058e5b
jmp 0x1800588be
dec rbx
mov al, byte [rbx]
and al, 0xc0
cmp al, 0x80
je 0x1800588bb
mov eax, dword [rbp + 0xd8]
inc eax
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
mov rax, qword [rbp + 0xc8]
mov rcx, rbx
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
je 0x1800588a8
jmp 0x180058e6d
mov eax, dword [rbp + 0xd8]
mov rdx, rsi
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
mov rcx, rbx
mov rax, qword [rbp + 0xc8]
and dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
call fcn.180054194
cmp dword [rsp + 0x44], 0
je 0x180058bb5
test eax, eax
jne 0x180058e6d
mov r8d, dword [rsp + 0x40]
cmp r8d, dword [rsp + 0x48]
jge 0x180058e5b
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
jae 0x180058e5b
mov r10d, dword [rsp + 0x50]
mov r11d, dword [rbp + 0xc0]
cmp r10d, 0xb
jne 0x1800589e7
test r11b, 4
jne 0x1800589e7
cmp dword [rdi + 0x20], eax
je 0x1800589be
mov r9d, dword [rsp + 0x44]
lea r8, [rdi + 0x24]
mov rdx, rcx
mov rcx, rbx
call fcn.1800598fc
test eax, eax
jne 0x180058e5b
mov r8d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x50]
mov r11d, dword [rbp + 0xc0]
jmp 0x1800589e7
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x1800589e7
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x1800589e7
cmp dword [rdi + 0x24], 1
je 0x180058e5b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x180058e5b
movzx edx, byte [rbx]
inc rbx
cmp edx, 0xc0
jb 0x180058a4d
mov eax, edx
lea rcx, [0x180000000]
and eax, 0x3f
movzx r9d, byte [rax + rcx + 0x61be0]
lea rax, [0x180000000]
mov eax, dword [rax + r9*4 + 0x61bc0]
lea ecx, [r9 + r9*2]
add ecx, ecx
and edx, eax
shl edx, cl
test r9d, r9d
je 0x180058a4d
mov r11d, 6
movzx eax, byte [rbx]
sub ecx, r11d
and eax, 0x3f
dec r9d
shl eax, cl
inc rbx
or edx, eax
test r9d, r9d
jg 0x180058a2e
mov r11d, dword [rbp + 0xc0]
mov ecx, r10d
sub ecx, 5
je 0x180058b5b
sub ecx, 1
je 0x180058b3f
sub ecx, 1
je 0x180058b2d
sub ecx, 1
je 0x180058b17
sub ecx, 1
je 0x180058b05
sub ecx, 1
je 0x180058aef
sub ecx, 1
je 0x180058b71
sub ecx, 1
je 0x180058b71
cmp ecx, 3
jne 0x180056825
cmp edx, 0xa
jb 0x180058e5b
cmp edx, 0xc
jbe 0x180058b71
cmp edx, 0xd
je 0x180058ad4
cmp edx, 0x85
je 0x180058b71
lea eax, [rdx - 0x2028]
cmp eax, 1
ja 0x180058e5b
jmp 0x180058b71
cmp rbx, qword [rdi + 0x70]
jae 0x180058b71
cmp byte [rbx], 0xa
jne 0x180058b71
inc rbx
jmp 0x180058b71
cmp edx, 0x100
jae 0x180058e5b
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
jmp 0x180058b53
cmp edx, 0x100
jae 0x180058b71
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 0x10
jmp 0x180058b6b
cmp edx, 0x100
jae 0x180058e5b
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 1
jmp 0x180058b53
cmp edx, 0x100
jae 0x180058b71
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 1
jmp 0x180058b6b
cmp edx, 0x100
jae 0x180058e5b
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 4
je 0x180058e5b
jmp 0x180058b71
cmp edx, 0x100
jae 0x180058b71
mov rax, qword [rdi + 0x38]
test byte [rdx + rax], 4
jne 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc r8d
inc eax
mov dword [rsp + 0x40], r8d
mov r8d, dword [rbp + 0xb0]
mov r9, rdi
mov dword [rsp + 0x38], eax
mov rdx, rsi
and dword [rsp + 0x30], 0
mov rcx, rbx
mov rax, qword [rbp + 0xc8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r11d
call fcn.180054194
jmp 0x18005894d
test eax, eax
jne 0x180058e6d
mov edx, dword [rsp + 0x40]
cmp edx, dword [rsp + 0x48]
jge 0x180058e5b
mov rcx, qword [rdi + 0x70]
cmp rbx, rcx
jae 0x180058e5b
mov r9d, dword [rbp + 0xc0]
test r9b, 4
jne 0x180058c3a
cmp dword [rdi + 0x20], eax
je 0x180058c11
mov rdx, rcx
lea r8, [rdi + 0x24]
mov rcx, rbx
xor r9d, r9d
call fcn.1800598fc
test eax, eax
jne 0x180058e5b
mov edx, dword [rsp + 0x40]
mov r9d, dword [rbp + 0xc0]
jmp 0x180058c3a
movsxd rax, dword [rdi + 0x24]
sub rcx, rax
cmp rbx, rcx
ja 0x180058c3a
mov al, byte [rdi + 0x28]
cmp byte [rbx], al
jne 0x180058c3a
cmp dword [rdi + 0x24], 1
je 0x180058e5b
mov al, byte [rdi + 0x29]
cmp byte [rbx + 1], al
je 0x180058e5b
movzx r8d, byte [rbx]
inc rbx
mov ecx, dword [rsp + 0x50]
sub ecx, 5
je 0x180058cf2
sub ecx, 1
je 0x180058ce1
sub ecx, 1
je 0x180058cd6
sub ecx, 1
je 0x180058ccb
sub ecx, 1
je 0x180058cc0
sub ecx, 1
je 0x180058cb5
sub ecx, 1
je 0x180058d01
sub ecx, 1
je 0x180058d01
cmp ecx, 3
jne 0x180056825
cmp r8d, 0xa
jb 0x180058e5b
cmp r8d, 0xc
jbe 0x180058d01
cmp r8d, 0xd
je 0x180058ca5
cmp r8d, 0x85
jmp 0x180058cfb
cmp rbx, qword [rdi + 0x70]
jae 0x180058d01
cmp byte [rbx], 0xa
jne 0x180058d01
inc rbx
jmp 0x180058d01
mov rax, qword [rdi + 0x38]
test byte [r8 + rax], 0x10
jmp 0x180058cea
mov rax, qword [rdi + 0x38]
test byte [r8 + rax], 0x10
jmp 0x180058cfb
mov rax, qword [rdi + 0x38]
test byte [r8 + rax], 1
jmp 0x180058cea
mov rax, qword [rdi + 0x38]
test byte [r8 + rax], 1
jmp 0x180058cfb
mov rax, qword [rdi + 0x38]
test byte [r8 + rax], 4
je 0x180058e5b
jmp 0x180058d01
mov rax, qword [rdi + 0x38]
test byte [r8 + rax], 4
jne 0x180058e5b
mov eax, dword [rbp + 0xd8]
inc edx
mov r8d, dword [rbp + 0xb0]
inc eax
mov dword [rsp + 0x38], eax
mov rcx, rbx
and dword [rsp + 0x30], 0
mov rax, qword [rbp + 0xc8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r9d
mov r9, rdi
mov dword [rsp + 0x40], edx
mov rdx, rsi
call fcn.180054194
jmp 0x180058bb5
mov eax, dword [rbp + 0xb0]
mov dword [rdi + 0x88], eax
jmp 0x180057979
mov rdx, qword [rdi + 0x10]
mov eax, dword [rdx + r9*4]
mov dword [rsp + 0x40], eax
lea eax, [r9 + 1]
mov qword [rsp + 0x70], rax
mov eax, dword [rdx + rax*4]
mov dword [rsp + 0x48], eax
mov eax, dword [rdi + 0x18]
sub eax, ecx
movsxd rcx, eax
mov eax, dword [rdx + rcx*4]
mov dword [rsp + 0x50], eax
mov eax, dword [rdi + 0x8c]
mov dword [rbp + 0xb8], eax
mov eax, ebx
sub eax, dword [rdi + 0x68]
mov dword [rdx + rcx*4], eax
xor ecx, ecx
cmp r8d, 0x5c
lea r8d, [r10 + 1]
mov dword [rsp + 0x78], r8d
lea eax, [rcx + 2]
cmove ecx, eax
mov dword [rsp + 0x4c], ecx
movzx eax, byte [rsi]
lea rdx, [0x180000000]
mov dword [rsp + 0x38], r8d
mov r9, rdi
mov dword [rsp + 0x30], ecx
mov r8d, r11d
mov rcx, rbx
movzx edx, byte [rax + rdx + 0x61c20]
mov rax, qword [rbp + 0xc8]
add rdx, rsi
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0xc0]
mov dword [rsp + 0x20], eax
call fcn.180054194
test eax, eax
jne 0x180058e6d
mov eax, dword [rbp + 0xb8]
mov r8d, dword [rsp + 0x78]
mov r11d, dword [rbp + 0xb0]
mov dword [rdi + 0x8c], eax
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 2]
shl rcx, 8
or rcx, rax
add rsi, rcx
mov ecx, dword [rsp + 0x4c]
cmp byte [rsi], 0x4e
je 0x180058dac
mov rax, qword [rdi + 0x10]
mov edx, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x40]
mov dword [rax + rdx*4], r8d
mov rax, qword [rdi + 0x10]
mov edx, dword [rsp + 0x48]
mov dword [rax + rcx*4], edx
mov eax, dword [rdi + 0x18]
sub eax, dword [rsp + 0x58]
mov edx, dword [rsp + 0x50]
movsxd rcx, eax
mov rax, qword [rdi + 0x10]
mov dword [rax + rcx*4], edx
xor eax, eax
jmp 0x180058e6d
mov eax, 0xffffffeb
jmp 0x180058e6d
inc dword [rdi]
mov eax, 0xfffffff8
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x180
pop rdi
pop rsi
pop rbp
ret