Function at 0x5523b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2c8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x230], xmm9
movaps xmmword [rbp + 0x220], xmm8
movaps xmmword [rbp + 0x210], xmm7
movdqa xmmword [rbp + 0x200], xmm6
mov qword [rbp + 0x1d8], r9
mov qword [rbp + 0x10], rcx
mov ebx, dword [rcx]
mov dword [rbp + 0xf8], 0
mov qword [rbp], rdx
mov r13, qword [rdx]
mov qword [rbp + 0x28], r8
mov rcx, qword [r8]
mov qword [rbp + 0x1f0], rcx
mov r11d, ebx
and r11d, 0x800
sete byte [rbp + 0x18f]
mov eax, r11d
shr eax, 0xb
mov dword [rbp + 0x12c], eax
mov eax, ebx
shr eax, 9
and eax, 1
mov dword [rbp + 0xb4], eax
xor eax, 1
mov dword [rbp + 0x48], eax
mov dword [rbp + 0x1fc], ebx
and ebx, 1
mov dword [rbp + 0xfc], ebx
mov rbx, qword [rbp + 0x2e8]
xor eax, eax
test rbx, rbx
setne al
lea rdx, [rbp + 0xf8]
cmove rdx, rbx
mov qword [rbp + 8], rdx
or eax, 2
mov dword [rbp + 0x4c], eax
movsd xmm8, qword [0x006857c0]
xorps xmm7, xmm7
pcmpeqd xmm6, xmm6
mov r12, qword [rbp + 0x2e0]
lea r9, [r12 + 0xb8]
lea rax, [r12 + 0x94]
mov qword [rbp + 0x50], rax
lea rax, [r13 + 0x10]
mov qword [rbp - 8], rax
mov dword [rbp + 0x178], 0xfffffffe
mov eax, 0
mov qword [rbp + 0x158], rax
mov eax, 0
mov qword [rbp + 0xe0], rax
mov r15d, 0
mov dword [rbp + 0xa0], 0
mov dword [rbp + 0x160], 0
mov rsi, r13
mov r14, r13
mov eax, 0
mov qword [rbp + 0xa8], rax
mov dword [rbp + 0x1a0], 0xfffffffe
mov dword [rbp + 0x130], 0
mov dword [rbp + 0x1a4], 0
mov dword [rbp + 0x1b0], 0xfffffffe
mov dword [rbp + 0x1ec], 0xfffffffe
mov dword [rbp + 0x1a8], 0
mov dword [rbp + 0x1c4], 0
mov eax, 0
mov qword [rbp + 0x198], r13
mov dword [rbp + 0x1f8], r11d
mov qword [rbp + 0x1e0], r9
jmp 0x552590
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
add rax, 0xe
mov qword [rbp + 0x1f0], rcx
jmp 0x552590
lea rcx, str._b__w_
jmp 0x55255e
movzx r10d, word [rcx]
test rax, rax
je 0x5525ac
test r10w, r10w
jne 0x5525ac
mov qword [rbp + 0x1f0], rax
movzx r10d, word [rax]
xor eax, eax
cmp qword [rbp + 0x2e8], 0
mov qword [rbp + 0x1d0], rax
je 0x5526f0
mov rcx, qword [r12 + 0x20]
movsxd rdx, dword [r12 + 0x6c]
lea rbx, [rcx + rdx*2 - 0xc8]
cmp r14, rbx
ja 0x559241
cmp r14, rsi
cmovb r14, rsi
mov rdi, qword [rbp + 0x2e8]
movsxd rcx, dword [rdi]
mov ebx, 0x7fffffeb
sub rbx, rcx
mov rdx, r14
sub rdx, rsi
sar rdx, 1
cmp rdx, rbx
jg 0x5592ec
add edx, ecx
mov dword [rdi], edx
test r15, r15
je 0x552710
mov r8, r15
sub r8, r13
jbe 0x55271e
mov rbx, r14
sub rbx, r15
je 0x552818
cmp rbx, 0x20
jb 0x55264d
lea rcx, [r15 + rbx]
cmp rcx, r13
jbe 0x552726
lea rcx, [r13 + rbx]
cmp rcx, r15
jbe 0x552726
mov rbx, r15
mov rsi, r13
xor edx, edx
mov ecx, r14d
sub ecx, r15d
lea rdi, [r14 - 1]
sub rdi, rdx
sub rdi, r15
and rcx, 7
je 0x552683
neg rcx
nop
movzx eax, byte [rbx]
inc rbx
mov byte [rsi], al
inc rsi
inc rdx
inc rcx
jne 0x552670
cmp rdi, 7
jb 0x552818
mov rcx, r14
sub rcx, rdx
sub rcx, r15
nop word cs:[rax + rax]
movzx eax, byte [rbx]
mov byte [rsi], al
movzx eax, byte [rbx + 1]
mov byte [rsi + 1], al
movzx eax, byte [rbx + 2]
mov byte [rsi + 2], al
movzx eax, byte [rbx + 3]
mov byte [rsi + 3], al
movzx eax, byte [rbx + 4]
mov byte [rsi + 4], al
movzx eax, byte [rbx + 5]
mov byte [rsi + 5], al
movzx eax, byte [rbx + 6]
mov byte [rsi + 6], al
movzx eax, byte [rbx + 7]
mov byte [rsi + 7], al
add rbx, 8
add rsi, 8
add rcx, 0xfffffffffffffff8
jne 0x5526a0
jmp 0x552818
movsxd rax, dword [r12 + 0x6c]
add rax, rax
add rax, qword [r12 + 0x20]
cmp qword [r12 + 0x40], rax
jbe 0x552830
jmp 0x559263
xor r15d, r15d
mov rsi, r13
mov r14, r13
jmp 0x552830
mov rsi, r14
jmp 0x552830
mov rdx, rbx
and rdx, 0xffffffffffffffe0
lea rdi, [rdx - 0x20]
mov rcx, rdi
shr rcx, 5
lea esi, [rcx + 1]
and esi, 3
cmp rdi, 0x60
jae 0x552754
xor ecx, ecx
test rsi, rsi
jne 0x5527d2
jmp 0x55280f
lea rdi, [rsi - 1]
sub rdi, rcx
xor ecx, ecx
nop dword [rax]
movups xmm0, xmmword [r15 + rcx]
movups xmm1, xmmword [r15 + rcx + 0x10]
movups xmmword [r13 + rcx], xmm0
movups xmmword [r13 + rcx + 0x10], xmm1
movups xmm0, xmmword [r15 + rcx + 0x20]
movups xmm1, xmmword [r15 + rcx + 0x30]
movups xmmword [r13 + rcx + 0x20], xmm0
movups xmmword [r13 + rcx + 0x30], xmm1
movups xmm0, xmmword [r15 + rcx + 0x40]
movups xmm1, xmmword [r15 + rcx + 0x50]
movups xmmword [r13 + rcx + 0x40], xmm0
movups xmmword [r13 + rcx + 0x50], xmm1
movdqu xmm0, xmmword [r15 + rcx + 0x60]
movdqu xmm1, xmmword [r15 + rcx + 0x70]
movdqu xmmword [r13 + rcx + 0x60], xmm0
movdqu xmmword [r13 + rcx + 0x70], xmm1
sub rcx, 0xffffffffffffff80
add rdi, 4
jne 0x552760
test rsi, rsi
je 0x55280f
mov rax, qword [rbp - 8]
lea rdi, [rax + rcx]
lea rcx, [r15 + rcx + 0x10]
neg rsi
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rcx - 0x10]
movdqu xmm1, xmmword [rcx]
movdqu xmmword [rdi - 0x10], xmm0
movdqu xmmword [rdi], xmm1
add rdi, 0x20
add rcx, 0x20
inc rsi
jne 0x5527f0
cmp rbx, rdx
jne 0x552b9c
sub r14, r8
mov r15, r13
mov rax, r14
mov rsi, rax
mov r12, qword [rbp + 0x2e0]
nop dword [rax + rax]
movzx ebx, r10w
test bx, bx
je 0x552878
cmp ebx, 0x5c
jne 0x552852
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x45
je 0x552baa
cmp dword [rbp + 0x160], 0
jne 0x552b51
cmp ebx, 0x5c
jne 0x552878
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x51
je 0x552c5b
test byte [rbp + 0x1fc], 8
je 0x5529fb
cmp ebx, 0xff
ja 0x5529fb
mov r13, qword [rbp + 0x1f0]
mov rax, qword [r12 + 0x18]
lea rcx, [r13 + 2]
nop word cs:[rax + rax]
mov edx, ebx
test byte [rax + rdx], 1
je 0x5528e0
mov qword [rbp + 0x1f0], rcx
movzx ebx, word [rcx]
add rcx, 2
cmp ebx, 0x100
jb 0x5528b0
jmp 0x5529e0
cmp ebx, 0x23
jne 0x5529e0
mov qword [rbp + 0x1f0], rcx
mov ax, word [rcx]
mov ebx, 0x23
jmp 0x552903
mov ax, word [rcx]
test ax, ax
je 0x5529e4
mov edx, dword [r12 + 0xb4]
test edx, edx
mov r8, qword [r12 + 0x38]
je 0x552950
cmp rcx, r8
jae 0x552990
mov eax, dword [rbp + 0x12c]
mov dword [rsp + 0x20], eax
call fcn.005b7130
test eax, eax
jne 0x552b34
mov rdi, qword [rbp + 0x1f0]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
jmp 0x552993
movsxd rdx, dword [r9]
lea rdi, [rdx + rdx]
sub r8, rdi
cmp rcx, r8
ja 0x552990
cmp ax, word [r12 + 0xbc]
jne 0x552990
cmp edx, 1
je 0x552c7b
movzx eax, word [rcx + 2]
cmp ax, word [r12 + 0xbe]
mov rdi, rcx
jne 0x552993
jmp 0x552c80
mov rdi, rcx
lea rcx, [rdi + 2]
test r11d, r11d
mov qword [rbp + 0x1f0], rcx
je 0x552900
movzx eax, word [rcx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x552903
add rdi, 4
mov qword [rbp + 0x1f0], rdi
mov rcx, rdi
jmp 0x552900
add rcx, 0xfffffffffffffffe
mov rax, qword [rbp + 0x1d0]
cmp rcx, r13
mov r13, qword [rbp + 0x198]
ja 0x552590
xor eax, eax
cmp ebx, 0x3e
jg 0x552ab8
lea ecx, [rbx - 0x2a]
cmp ecx, 2
jb 0x552b24
cmp ebx, 0x28
jne 0x552cd2
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x3f
jne 0x552a38
movzx ecx, word [rax + 4]
cmp ecx, 0x23
je 0x55450d
xor eax, eax
cmp qword [rbp + 0x1d0], 0
jne 0x552ce0
cmp qword [rbp + 0xe0], 0
je 0x552ce0
test al, al
jne 0x552ce0
mov rdx, qword [rbp + 0xa8]
lea ecx, [rdx - 1]
test edx, edx
mov edx, 0
cmovg rdx, qword [rbp + 0xe0]
jg 0x552aac
cmp qword [rbp + 0x2e8], 0
jne 0x552aac
mov edx, dword [rbp + 0x1f0]
sub edx, dword [r12 + 0x30]
mov rdi, qword [rbp + 0xe0]
mov r8, rsi
mov rsi, rdi
movzx edi, word [rsi + 4]
shr edx, 1
sub edx, edi
mov word [rsi + 6], dx
mov rsi, r8
xor edx, edx
mov qword [rbp + 0xe0], rdx
jmp 0x552ce7
cmp ebx, 0x3f
je 0x552b24
cmp ebx, 0x7b
jne 0x552cd2
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
add ecx, 0xffffffd0
movzx edx, cx
xor ecx, ecx
cmp edx, 9
ja 0x552ccd
add rax, 6
nop word cs:[rax + rax]
movzx edx, word [rax - 2]
lea ecx, [rdx - 0x30]
movzx ecx, cx
add rax, 2
cmp ecx, 0xa
jb 0x552af0
mov ecx, 1
movzx edx, dx
cmp edx, 0x2c
je 0x552c93
cmp edx, 0x7d
je 0x552ccd
xor ecx, ecx
jmp 0x552ccd
mov al, 1
cmp ebx, 0x7c
jbe 0x552d4d
jmp case.0x552d5d.1
mov r9, qword [rbp + 0x1e0]
mov edx, dword [r9]
mov rcx, qword [rbp + 0x1f0]
mov r11d, dword [rbp + 0x1f8]
jmp 0x552c80
cmp qword [rbp + 0x2e8], 0
jne 0x552b86
cmp qword [rbp + 0xe0], 0
je 0x552b86
mov eax, dword [rbp + 0x1f0]
sub eax, dword [r12 + 0x30]
mov rcx, qword [rbp + 0xe0]
mov rdx, rcx
movzx ecx, word [rdx + 4]
shr eax, 1
sub eax, ecx
mov word [rdx + 6], ax
mov eax, dword [rbp + 0x1fc]
test ah, 0x40
jne 0x552bc4
xor eax, eax
mov qword [rbp + 0xe0], rax
jmp case.0x552d5d.1
lea rbx, [r15 + rdx]
lea rsi, [r13 + rdx]
jmp 0x552655
add rax, 2
mov qword [rbp + 0x1f0], rax
mov dword [rbp + 0x160], 0
jmp 0x552c70
mov eax, dword [rbp + 0x1f0]
mov dword [r14], 0xff0076
sub eax, dword [r12 + 0x30]
shr eax, 1
mov word [r14 + 4], ax
mov word [r14 + 6], 0
mov qword [rbp + 0xe0], r14
lea r14, [r14 + 8]
test r11d, r11d
mov word [rbp + 0x60], bx
mov eax, 1
je 0x5548e7
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x5548e7
mov rcx, qword [rbp + 0x1f0]
movzx ebx, word [rcx + 2]
mov edx, ebx
and edx, 0xfc00
cmp edx, 0xdc00
mov r9, qword [rbp + 0x1e0]
jne 0x552c49
add rcx, 2
mov qword [rbp + 0x1f0], rcx
mov word [rbp + 0x62], bx
mov eax, 2
mov r8d, dword [rbp + 0x160]
mov ecx, dword [rbp + 0x1fc]
jmp 0x5548fb
add rax, 2
mov qword [rbp + 0x1f0], rax
mov dword [rbp + 0x160], 1
mov ebx, dword [rbp + 0x1fc]
jmp 0x554d30
mov edx, 1
movsxd rax, edx
lea rcx, [rcx + rax*2]
mov qword [rbp + 0x1f0], rcx
jmp 0x5529e4
movzx edx, word [rax - 2]
cmp edx, 0x7d
je 0x552ccd
add edx, 0xffffffd0
movzx ecx, dx
cmp ecx, 9
mov ecx, 0
ja 0x552ccd
nop dword [rax]
movzx ecx, word [rax]
lea edx, [rcx - 0x30]
movzx edx, dx
add rax, 2
cmp edx, 0xa
jb 0x552cb0
movzx eax, cx
xor ecx, ecx
cmp eax, 0x7d
sete cl
test ecx, ecx
setne al
cmp qword [rbp + 0x1d0], 0
je 0x552a48
mov rcx, qword [rbp + 0xa8]
mov edx, dword [rbp + 0x1fc]
test dh, 0x40
sete dl
cmp qword [rbp + 0x1d0], 0
jne 0x552d3d
or dl, al
jne 0x552d3d
mov edx, dword [rbp + 0x1f0]
mov dword [r14], 0xff0076
sub edx, dword [r12 + 0x30]
shr edx, 1
mov word [r14 + 4], dx
mov word [r14 + 6], 0
mov qword [rbp + 0xa8], rcx
mov qword [rbp + 0xe0], r14
lea r14, [r14 + 8]
cmp ebx, 0x7c
jbe 0x552d4d
jmp case.0x552d5d.1
mov qword [rbp + 0xa8], rcx
cmp ebx, 0x7c
ja case.0x552d5d.1
mov ecx, ebx
lea rdx, [0x00559680]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov rcx, qword [rbp + 0x1f0]
add rcx, 2
mov r8d, 6
lea rdx, [0x0068584c]
call fcn.005b73f0
test eax, eax
mov rax, qword [rbp + 0x1f0]
je 0x552579
add rax, 2
mov r8d, 6
mov rcx, rax
lea rdx, str._:_:__
call fcn.005b73f0
test eax, eax
jne 0x552dbb
mov rax, qword [rbp + 0x1f0]
lea rcx, str._b___w_
jmp 0x55255e
mov rax, qword [r12 + 0x40]
sub rax, qword [r12 + 0x20]
mov qword [rbp + 0x158], rax
mov rcx, qword [rbp + 0x1f0]
movzx eax, word [rcx + 2]
cmp rax, 0x3d
mov r11d, dword [rbp + 0x1f8]
ja 0x552e5b
movabs rdx, 0x2400400000000000
bt rdx, rax
jae 0x552e5b
lea rdx, [rcx + 4]
jmp 0x552e04
add rdx, 2
movsx ebx, word [rdx]
movzx edi, bx
cmp ebx, 0x5b
jg 0x552e20
cmp edi, 0x5b
jne 0x552e3e
cmp word [rdx + 2], ax
jne 0x552e43
jmp 0x552e5b
cmp edi, 0x5c
jne 0x552e56
movzx edi, word [rdx + 2]
and edi, 0xfffe
cmp edi, 0x5c
jne 0x552e43
add rdx, 2
add rdx, 2
jmp 0x552e04
test bx, bx
je 0x552e5b
cmp bx, ax
jne 0x552e00
movzx ebx, word [rdx + 2]
cmp ebx, 0x5d
jne 0x552e00
jmp 0x55933b
cmp edi, 0x5d
jne 0x552e43
sar qword [rbp + 0x158], 1
xor ebx, ebx
jmp 0x552e79
mov ax, word [rdx + 2]
mov rcx, rdx
mov ebx, edi
lea rdx, [rcx + 2]
mov qword [rbp + 0x1f0], rdx
movzx r10d, ax
cmp r10d, 0x5c
jne 0x552eb0
movzx eax, word [rcx + 4]
add rcx, 4
cmp eax, 0x45
jne 0x552ed0
mov qword [rbp + 0x1f0], rcx
mov rdx, rcx
mov edi, ebx
jmp 0x552e70
test ebx, ebx
jne 0x552f14
mov edi, 1
movzx ecx, ax
cmp ecx, 0x5e
je 0x552e70
jmp 0x552f14
mov dword [rbp + 0x1b8], ebx
mov r8d, 3
lea rdx, [0x0068585a]
call fcn.005b73f0
test eax, eax
jne 0x552f82
mov rdx, qword [rbp + 0x1f0]
add rdx, 6
mov qword [rbp + 0x1f0], rdx
mov edi, dword [rbp + 0x1b8]
mov r11d, dword [rbp + 0x1f8]
jmp 0x552e70
mov dword [rbp + 0x1b8], ebx
cmp r10d, 0x5d
mov r9, qword [rbp + 0x1e0]
jne 0x552fb1
test byte [r12 + 0x93], 2
je 0x552f96
cmp dword [rbp + 0x1b8], 0
mov ax, 0xd
mov cx, 0x9d
cmove ax, cx
mov word [r14], ax
mov r15, r14
lea r14, [r14 + 2]
mov ecx, dword [rbp + 0x1ec]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
cmove ecx, eax
mov dword [rbp + 0x1ec], ecx
mov dword [rbp + 0x178], ecx
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
jmp 0x552c70
mov r10d, 0x5c
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
lea rdi, [r14 + 6]
mov qword [rbp + 0x140], rdi
movaps xmmword [rbp + 0x110], xmm7
movaps xmmword [rbp + 0x100], xmm7
jmp 0x552fd3
lea rdi, [r14 + 6]
mov qword [rbp + 0x140], rdi
movaps xmmword [rbp + 0x110], xmm7
movaps xmmword [rbp + 0x100], xmm7
test ax, ax
je 0x554d54
mov eax, dword [rbp + 0x1fc]
mov ecx, eax
and ecx, 1
mov dword [rbp + 0x16c], ecx
and eax, 0x800
cmp eax, 1
sbb eax, eax
or eax, 0x10ffff
mov dword [rbp + 0xc0], eax
xor eax, eax
mov qword [rbp + 0x190], rax
xor eax, eax
mov qword [rbp + 0x180], rax
xor ebx, ebx
mov dword [rbp + 0x170], 0
xor edx, edx
mov rax, qword [rbp + 0x1d0]
mov qword [rbp + 0xe8], rdi
mov qword [rbp + 0x1c8], rsi
jmp 0x554010
lea ecx, [r15 - 6]
cmp ecx, 0x1c
ja case.0x55306e.12
mov rax, qword [r12 + 0x10]
mov rdx, qword [rbp + 0x190]
lea edx, [rdx + 1]
mov dword [rbp + 0x148], edx
mov rdx, qword [rbp + 0x180]
lea r13d, [rdx + 2]
lea rdx, [0x00559d9c]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov rax, qword [rbp + 0x1f0]
mov qword [rbp + 0x1d0], rax
movsxd rax, r15d
lea rcx, str.PNd
mov rax, qword [rcx + rax*8 - 0xe8]
add rax, 0xfffffffffffffffe
mov qword [rbp + 0x1f0], rax
mov eax, r13d
mov qword [rbp + 0x180], rax
jmp case.0x554225.25
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x5c
jne 0x5531d1
movzx ecx, word [rax + 4]
cmp ecx, 0x45
jne 0x5531d1
add rax, 4
mov qword [rbp + 0x1f0], rax
jmp case.0x554225.25
movzx ecx, cx
cmp ecx, 0x3a
jne 0x5531dc
mov dword [rbp + 0x138], r8d
mov rcx, qword [r12 + 0x10]
mov qword [rbp + 0x58], rcx
mov qword [rbp + 0x1f0], rbx
movzx ecx, word [rbx]
xor edi, edi
cmp ecx, 0x5e
mov edx, dword [rbp + 0x170]
jne 0x553126
add rax, 6
mov qword [rbp + 0x1f0], rax
mov edi, 1
mov rbx, rax
mov edx, 1
mov dword [rbp + 0x148], edi
lea rax, [r15 + 2]
mov qword [rbp + 0xf0], rax
mov r8, r15
sub r8, rbx
shr r8, 1
xor edi, edi
lea r13, str.alpha
mov dword [rbp + 0x170], edx
mov qword [rbp + 0x160], rbx
lea rax, [0x00685865]
movzx esi, byte [rdi + rax]
cmp esi, r8d
jne 0x55319a
mov rcx, rbx
mov rdx, r13
mov rbx, r8
call fcn.005b73f0
mov r8, rbx
mov rbx, qword [rbp + 0x160]
mov edx, dword [rbp + 0x170]
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
test eax, eax
je 0x55343e
lea r13, [r13 + rsi + 1]
inc rdi
cmp rdi, 0xe
jne 0x553156
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1e
mov r10d, 6
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
mov ebx, dword [rbp + 0x138]
jmp 0x5531ff
mov r8d, 1
jmp case.0x554225.25
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1f
mov r10d, 6
mov rax, qword [rbp + 0x1d0]
mov edx, dword [rbp + 0x170]
mov ebx, r8d
xor r8d, r8d
mov rcx, qword [rbp + 0x180]
mov r13d, ecx
jmp 0x553ae7
add rdi, 0xfffffffffffffff8
xor ecx, ecx
jmp 0x553235
mov ebx, 1
test si, si
jne 0x5543b0
jmp 0x5543cc
add rdi, 0xfffffffffffffffc
mov ecx, 1
mov rax, rdi
mov ebx, ecx
test ecx, ecx
setne r8b
mov si, 0x5c
movzx ecx, si
test r11d, r11d
mov dword [rbp + 0x70], ecx
je 0x553287
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x553287
shl ecx, 0xa
and ecx, 0xffc00
movzx edi, word [rax + 2]
add rax, 2
and edi, 0x3ff
lea ecx, [rcx + rdi + 0x10000]
mov dword [rbp + 0x70], ecx
mov qword [rbp + 0x1f0], rax
mov rdx, r15
mov rsi, r13
test r8b, r8b
je 0x553318
mov r8d, ebx
cmp ecx, r10d
jb 0x553abb
je 0x5543d9
mov rdi, rdx
cmp ecx, 0xd
je 0x5532b5
cmp ecx, 0xa
jne 0x5532bd
mov rax, qword [rbp + 0x50]
or byte [rax + 1], 8
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], r10d
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov r8d, dword [rbp + 0x1fc]
mov r9, r12
call fcn.0055b600
add eax, dword [rbp + 0x190]
mov r10d, 0x12
mov ecx, 2
mov qword [rbp + 0x180], rcx
mov qword [rbp + 0x190], rax
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov rax, rdi
jmp 0x553425
cmp ecx, 0x5b
mov r8d, ebx
je 0x553385
cmp ecx, 0x5c
jne 0x553ab2
mov rdi, r10
mov r9d, dword [r12 + 0x70]
mov eax, dword [rbp + 0x1fc]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], 1
lea rcx, [rbp + 0x1f0]
lea rdx, [rbp + 0x70]
mov rsi, qword [rbp + 0x1d8]
mov r8, rsi
call fcn.0055a2d0
mov r10d, 6
cmp dword [rsi], 0
je 0x55352a
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov rax, r15
mov rsi, r13
jmp 0x553425
movzx r8d, word [rax + 2]
mov ecx, 0x5b
cmp r8, 0x3d
ja 0x553296
movabs rdi, 0x2400400000000000
bt rdi, r8
jae 0x553296
add rax, 4
jmp 0x5533b7
add rax, 2
movsx edi, word [rax]
movzx esi, di
cmp edi, 0x5b
jg 0x5533d0
cmp esi, 0x5b
jne 0x5533ee
cmp word [rax + 2], r8w
jne 0x5533fa
jmp 0x553433
cmp esi, 0x5c
jne 0x5533f5
movzx esi, word [rax + 2]
and esi, 0xfffe
cmp esi, 0x5c
jne 0x5533fa
add rax, 2
add rax, 2
jmp 0x5533b7
test di, di
jne 0x5533fa
jmp 0x553433
cmp esi, 0x5d
je 0x553433
cmp di, r8w
mov rdx, r15
mov rsi, r13
jne 0x5533b3
movzx edi, word [rax + 2]
cmp edi, 0x5d
jne 0x5533b3
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x53
mov r10d, 6
mov rax, rdx
mov edx, dword [rbp + 0x170]
mov r8d, ebx
jmp 0x553ad7
mov rdx, r15
mov rsi, r13
jmp 0x553296
test edi, edi
js 0x5531a8
cmp edi, 3
mov esi, edi
mov eax, 0
cmovl esi, eax
cmp dword [rbp + 0x16c], 0
cmove esi, edi
test dword [rbp + 0x1fc], 0x20000000
mov r13d, dword [rbp + 0x148]
jne 0x553b2b
lea eax, [rsi + rsi*2]
movsxd rcx, eax
lea rax, [0x006858e0]
mov rdx, rax
movsxd rax, dword [rdx + rcx*4]
mov rbx, qword [rbp + 0x58]
movdqu xmm0, xmmword [rbx + rax]
movdqu xmm1, xmmword [rbx + rax + 0x10]
movdqa xmmword [rbp + 0x80], xmm1
movdqa xmmword [rbp + 0x70], xmm0
lea esi, [rsi + rsi*2 + 1]
mov r10d, dword [rdx + rcx*4 + 8]
lea r8, [rcx + 2]
movabs rax, 0x2db6db6fb6b
bt rax, rsi
jae 0x553f11
lea rax, [0x006858e0]
mov r15d, dword [rax + rcx*4 + 4]
inc rcx
movabs rdi, 0x12492490494
shr rdi, cl
movabs rax, 0x2db6db6fb6b
bt rax, r8
jb 0x553dfa
test dil, 1
jne 0x553eac
movups xmm0, xmmword [rbx + r15]
andnps xmm0, xmmword [rbp + 0x70]
movaps xmmword [rbp + 0x70], xmm0
lea ecx, [r15 + 0x10]
movdqu xmm0, xmmword [rbx + rcx]
pandn xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x80], xmm0
jmp 0x553f11
cmp eax, 5
mov r9, qword [rbp + 0x1e0]
mov r8d, ebx
je 0x553a96
test eax, eax
mov r11d, dword [rbp + 0x1f8]
mov rdx, r15
mov rsi, r13
jne 0x553b19
mov ecx, dword [rbp + 0x70]
jmp 0x553aaf
mov dword [rbp + 0xd4], 0
mov dword [rbp + 0xd8], 0
mov rax, qword [rbp + 0x1d8]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x1f0]
lea rdx, [rbp + 0x70]
lea r8, [rbp + 0xd4]
lea r9, [rbp + 0xd8]
call fcn.0055afd0
test eax, eax
je 0x553ba7
xor eax, eax
cmp r15d, 0x10
sete al
xor ecx, ecx
cmp dword [rbp + 0x70], eax
sete cl
add ecx, 3
mov rax, qword [rbp + 0x140]
mov word [rax], cx
movzx ecx, word [rbp + 0xd4]
mov word [rax + 2], cx
movzx ecx, word [rbp + 0xd8]
lea rdx, [rax + 6]
mov qword [rbp + 0x140], rdx
mov word [rax + 4], cx
mov r10d, 0x12
mov ebx, 1
mov rax, qword [rbp + 0x190]
mov r11d, dword [rbp + 0x1f8]
jmp 0x553bba
lea rcx, [rax + 0x60]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x553bdd
lea rcx, [rax + 0x40]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x553bdd
xor ecx, ecx
movzx edx, byte [rax + rcx + 0x40]
not dl
or byte [rbp + rcx + 0x100], dl
movzx edx, byte [rax + rcx + 0x41]
not dl
or byte [rbp + rcx + 0x101], dl
add rcx, 2
cmp rcx, 0x20
jne 0x553627
jmp 0x5537e7
lea rcx, [rax + 0x60]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x553bfd
lea rcx, [rax + 0x40]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x553bfd
xor ecx, ecx
movzx edx, byte [rax + rcx + 0x40]
or byte [rbp + rcx + 0x100], dl
movzx edx, byte [rax + rcx + 0x41]
or byte [rbp + rcx + 0x101], dl
movzx edx, byte [rax + rcx + 0x42]
or byte [rbp + rcx + 0x102], dl
movzx edx, byte [rax + rcx + 0x43]
or byte [rbp + rcx + 0x103], dl
add rcx, 4
cmp rcx, 0x20
jne 0x55367c
jmp 0x553cc1
lea rcx, [rax + 0x20]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x553c19
lea rcx, [rbp + 0x120]
cmp rax, rcx
jae 0x553c19
xor ecx, ecx
movzx edx, byte [rax + rcx]
not dl
or byte [rbp + rcx + 0x100], dl
movzx edx, byte [rax + rcx + 1]
not dl
or byte [rbp + rcx + 0x101], dl
movzx edx, byte [rax + rcx + 2]
not dl
or byte [rbp + rcx + 0x102], dl
movzx edx, byte [rax + rcx + 3]
not dl
or byte [rbp + rcx + 0x103], dl
add rcx, 4
cmp rcx, 0x20
jne 0x5536e1
jmp 0x5537e7
lea rcx, [rax + 0x20]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x553c38
lea rcx, [rbp + 0x120]
cmp rax, rcx
jae 0x553c38
xor ecx, ecx
movzx edx, byte [rax + rcx]
or byte [rbp + rcx + 0x100], dl
movzx edx, byte [rax + rcx + 1]
or byte [rbp + rcx + 0x101], dl
movzx edx, byte [rax + rcx + 2]
or byte [rbp + rcx + 0x102], dl
movzx edx, byte [rax + rcx + 3]
or byte [rbp + rcx + 0x103], dl
add rcx, 4
cmp rcx, 0x20
jne 0x55374d
jmp 0x553cc1
lea rcx, [rax + 0xc0]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x553c50
lea rcx, [rax + 0xa0]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x553c50
xor ecx, ecx
movzx edx, byte [rax + rcx + 0xa0]
not dl
or byte [rbp + rcx + 0x100], dl
movzx edx, byte [rax + rcx + 0xa1]
not dl
or byte [rbp + rcx + 0x101], dl
add rcx, 2
cmp rcx, 0x20
jne 0x5537bb
mov dword [rbp + 0x170], 1
jmp 0x553cc1
lea rcx, [rax + 0xc0]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x553c94
lea rcx, [rax + 0xa0]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x553c94
xor ecx, ecx
movzx edx, byte [rax + rcx + 0xa0]
or byte [rbp + rcx + 0x100], dl
movzx edx, byte [rax + rcx + 0xa1]
or byte [rbp + rcx + 0x101], dl
movzx edx, byte [rax + rcx + 0xa2]
or byte [rbp + rcx + 0x102], dl
movzx edx, byte [rax + rcx + 0xa3]
or byte [rbp + rcx + 0x103], dl
add rcx, 4
cmp rcx, 0x20
jne 0x553826
jmp 0x553cc1
test byte [rbp + 0x1fc], 0x40
jne 0x559565
mov rax, qword [rbp + 0x1f0]
movzx r10d, word [rax]
jmp case.0x554225.5
mov r15d, r13d
mov dword [rbp + 0x138], ebx
mov esi, dword [0x00687ad0]
test esi, esi
je 0x553d00
lea eax, [rsi - 1]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov r13d, dword [rbp + 0x1fc]
mov r8d, r13d
mov r9, r12
call fcn.0055b600
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
cmp esi, 0xffffffff
jne 0x553d09
jmp 0x553dce
mov eax, dword [0x00687ad0]
cmp eax, 0xffffffff
je 0x553cc1
mov dword [rbp + 0x138], ebx
lea rsi, [0x00687ad0]
movabs r15, 0xffffffff00000000
mov eax, eax
xor edi, edi
xor ecx, ecx
lea rdx, [rcx + 1]
add rdi, r15
lea ebx, [rdx + rax]
cmp ebx, dword [rsi + rcx*4 + 4]
mov rcx, rdx
je 0x55391c
mov rcx, r15
sub rcx, rdi
sar rcx, 0x1e
mov ecx, dword [rsi + rcx]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov r8d, dword [rbp + 0x1fc]
mov r9, r12
call fcn.0055b600
neg rdi
sar rdi, 0x1e
mov eax, dword [rsi + rdi]
lea rsi, [rsi + rdi]
cmp eax, 0xffffffff
jne 0x553916
jmp 0x553a5f
mov r15d, r13d
mov dword [rbp + 0x138], ebx
mov esi, dword [0x00687b20]
test esi, esi
je 0x553d68
lea eax, [rsi - 1]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov r13d, dword [rbp + 0x1fc]
mov r8d, r13d
mov r9, r12
call fcn.0055b600
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
cmp esi, 0xffffffff
jne 0x553d71
jmp 0x553dce
mov eax, dword [0x00687b20]
cmp eax, 0xffffffff
je 0x553cc1
mov dword [rbp + 0x138], ebx
lea rsi, [0x00687b20]
movabs r15, 0xffffffff00000000
mov eax, eax
xor edi, edi
xor ecx, ecx
lea rdx, [rcx + 1]
add rdi, r15
lea ebx, [rdx + rax]
cmp ebx, dword [rsi + rcx*4 + 4]
mov rcx, rdx
je 0x553a07
mov rcx, r15
sub rcx, rdi
sar rcx, 0x1e
mov ecx, dword [rsi + rcx]
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], eax
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov r8d, dword [rbp + 0x1fc]
mov r9, r12
call fcn.0055b600
neg rdi
sar rdi, 0x1e
mov eax, dword [rsi + rdi]
lea rsi, [rsi + rdi]
cmp eax, 0xffffffff
jne 0x553a01
mov eax, r13d
mov qword [rbp + 0x180], rax
mov eax, dword [rbp + 0x148]
mov qword [rbp + 0x190], rax
mov r9, qword [rbp + 0x1e0]
mov rsi, qword [rbp + 0x1c8]
mov ebx, dword [rbp + 0x138]
mov rdi, qword [rbp + 0xe8]
jmp 0x5540e1
mov dword [rbp + 0x70], 8
mov ecx, 8
mov r11d, dword [rbp + 0x1f8]
mov rdx, r15
mov rsi, r13
mov r10, rdi
cmp ecx, r10d
jae 0x5532a2
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 8
mov rax, rdx
mov r10d, 6
mov edx, dword [rbp + 0x170]
mov rcx, qword [rbp + 0x180]
mov r13d, ecx
mov ebx, dword [rbp + 0x138]
mov qword [rbp + 0x1d0], rax
cmp r10d, 0x12
mov dword [rbp + 0x170], edx
je 0x553b03
test r10d, r10d
jne 0x5558fd
mov eax, r13d
mov qword [rbp + 0x180], rax
mov rdi, qword [rbp + 0xe8]
jmp case.0x554225.25
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x53
mov rax, rdx
jmp 0x553ad1
test r13d, r13d
mov eax, 0xe
cmove eax, r13d
add eax, esi
mov ecx, 0x62bd8af
bt rcx, rax
jb 0x553cd6
lea eax, [rsi - 8]
cmp eax, 2
ja 0x553e2f
add eax, 0xb
add r13d, 3
mov rcx, qword [rbp + 0x140]
mov word [rcx], r13w
mov word [rcx + 2], ax
lea rax, [rcx + 6]
mov qword [rbp + 0x140], rax
mov word [rcx + 4], 0
mov rax, qword [rbp + 0xf0]
mov qword [rbp + 0x1f0], rax
mov r10d, 0x12
mov ebx, 1
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x5531ff
mov r10d, 6
mov r11d, dword [rbp + 0x1f8]
mov eax, dword [rbp + 0x148]
xor r8d, r8d
mov qword [rbp + 0x190], rax
mov r9, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1d0]
mov edx, dword [rbp + 0x170]
jmp 0x553ae7
movdqu xmm0, xmmword [rax + 0x40]
pxor xmm0, xmm6
por xmm0, xmmword [rbp + 0x100]
movdqa xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x50]
jmp 0x553c74
movups xmm0, xmmword [rax + 0x40]
orps xmm0, xmmword [rbp + 0x100]
movaps xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x50]
jmp 0x553cb1
movdqu xmm0, xmmword [rax]
pxor xmm0, xmm6
por xmm0, xmmword [rbp + 0x100]
movdqa xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x10]
jmp 0x553c74
movups xmm0, xmmword [rax]
orps xmm0, xmmword [rbp + 0x100]
movaps xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x10]
jmp 0x553cb1
movdqu xmm0, xmmword [rax + 0xa0]
pxor xmm0, xmm6
por xmm0, xmmword [rbp + 0x100]
movdqa xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0xb0]
pxor xmm0, xmm6
por xmm0, xmmword [rbp + 0x110]
movdqa xmmword [rbp + 0x110], xmm0
mov dword [rbp + 0x170], 1
jmp 0x553cc1
movups xmm0, xmmword [rax + 0xa0]
orps xmm0, xmmword [rbp + 0x100]
movaps xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0xb0]
por xmm0, xmmword [rbp + 0x110]
movdqa xmmword [rbp + 0x110], xmm0
mov eax, r13d
mov qword [rbp + 0x180], rax
mov eax, dword [rbp + 0x148]
jmp 0x554458
cdqe
lea rcx, [0x00686e50]
mov rax, qword [rcx + rax*8]
add rax, 0xfffffffffffffffe
mov qword [rbp + 0x1f0], rax
mov r10d, 0x12
mov rax, qword [rbp + 0xf0]
jmp 0x5531c2
xor esi, esi
mov r13d, dword [rbp + 0x1fc]
lea rdi, [0x00687ad4]
mov rbx, rdi
jmp 0x553d1b
add rbx, 4
mov esi, eax
mov eax, dword [rbx]
inc esi
cmp eax, esi
je 0x553d15
lea ecx, [rax - 1]
cmp eax, 0xffffffff
cmove ecx, dword [rbp + 0xc0]
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x28], ecx
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov r8d, r13d
mov r9, r12
call fcn.0055b600
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
mov eax, dword [rbx]
cmp eax, 0xffffffff
jne 0x553d15
jmp 0x553dce
xor esi, esi
mov r13d, dword [rbp + 0x1fc]
lea rdi, [0x00687b24]
mov rbx, rdi
jmp 0x553d83
add rbx, 4
mov esi, eax
mov eax, dword [rbx]
inc esi
cmp eax, esi
je 0x553d7d
lea ecx, [rax - 1]
cmp eax, 0xffffffff
cmove ecx, dword [rbp + 0xc0]
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x28], ecx
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov r8d, r13d
mov r9, r12
call fcn.0055b600
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
mov eax, dword [rbx]
cmp eax, 0xffffffff
jne 0x553d7d
xor r8d, r8d
mov eax, r15d
mov qword [rbp + 0x180], rax
mov eax, dword [rbp + 0x148]
mov qword [rbp + 0x190], rax
mov rsi, qword [rbp + 0x1c8]
mov ebx, dword [rbp + 0x138]
jmp case.0x554225.25
test dil, 1
jne 0x553ed6
movups xmm0, xmmword [rbx + r15]
orps xmm0, xmmword [rbp + 0x70]
movaps xmmword [rbp + 0x70], xmm0
lea ecx, [r15 + 0x10]
movdqu xmm0, xmmword [rbx + rcx]
por xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0x80], xmm0
jmp 0x553f11
test r13d, r13d
je 0x553474
cmp dword [rbp + 0x150], 0
jne 0x553e4f
movzx eax, word [r15 + 4]
cmp eax, 0x5d
je 0x553474
mov rax, qword [rbp + 0x140]
lea rdx, [rax + 2]
mov qword [rbp + 0x140], rdx
mov word [rax], 2
mov ecx, pe_nt_image_headers64
call fcn.005b72c0
mov edx, eax
add rdx, rdx
add rdx, qword [rbp + 0x140]
mov qword [rbp + 0x140], rdx
mov ecx, 0x10ffff
call fcn.005b72c0
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
mov eax, eax
add rax, rax
add qword [rbp + 0x140], rax
jmp 0x553474
xor ecx, ecx
lea rdx, [r15 + rcx]
mov edi, edx
movzx eax, byte [rbx + rdi]
not al
and byte [rbp + rcx + 0x70], al
inc edx
movzx eax, byte [rbx + rdx]
not al
and byte [rbp + rcx + 0x71], al
add rcx, 2
cmp rcx, 0x20
jne 0x553eae
jmp 0x553f11
xor ecx, ecx
lea rdi, [r15 + rcx]
mov esi, edi
movzx edx, byte [rbx + rsi]
or byte [rbp + rcx + 0x70], dl
lea edx, [rdi + 1]
movzx edx, byte [rbx + rdx]
or byte [rbp + rcx + 0x71], dl
lea edx, [rdi + 2]
movzx edx, byte [rbx + rdx]
or byte [rbp + rcx + 0x72], dl
add edi, 3
movzx edx, byte [rbx + rdi]
or byte [rbp + rcx + 0x73], dl
add rcx, 4
cmp rcx, 0x20
jne 0x553ed8
mov ecx, r10d
neg ecx
movabs rax, 0x12492490494
bt rax, r8
cmovae ecx, r10d
cmp ecx, 1
mov ebx, dword [rbp + 0x138]
je 0x553f59
cmp ecx, 2
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
mov rdi, qword [rbp + 0xf0]
jne 0x553f7c
mov rdx, rax
mov al, 0x7f
mov ecx, 0xb
jmp 0x553f75
mov al, 0xc3
mov ecx, 1
mov rdx, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
mov rdi, qword [rbp + 0xf0]
and byte [rbp + rcx + 0x70], al
mov rax, rdx
test r13d, r13d
mov edx, dword [rbp + 0x170]
je 0x553fae
movdqa xmm0, xmmword [rbp + 0x70]
pxor xmm0, xmm6
por xmm0, xmmword [rbp + 0x100]
movdqa xmmword [rbp + 0x100], xmm0
movdqa xmm0, xmmword [rbp + 0x80]
pxor xmm0, xmm6
jmp 0x553fc8
movaps xmm0, xmmword [rbp + 0x100]
orps xmm0, xmmword [rbp + 0x70]
movaps xmmword [rbp + 0x100], xmm0
movdqa xmm0, xmmword [rbp + 0x80]
por xmm0, xmmword [rbp + 0x110]
movdqa xmmword [rbp + 0x110], xmm0
mov qword [rbp + 0x1f0], rdi
mov r10d, 0x12
mov ecx, 2
mov qword [rbp + 0x180], rcx
mov ecx, 1
mov qword [rbp + 0x190], rcx
jmp 0x5531ff
mov qword [rbp + 0x1d0], rax
test r11d, r11d
je 0x55406f
mov eax, r10d
and eax, 0xfc00
cmp eax, 0xd800
jne 0x55406f
mov rax, qword [rbp + 0x1f0]
movzx r10d, word [rax]
mov ecx, r10d
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x55406f
shl r10d, 0xa
and r10d, 0xffc00
movzx ecx, word [rax + 2]
add rax, 2
and ecx, 0x3ff
lea r10d, [r10 + rcx + 0x10000]
mov qword [rbp + 0x1f0], rax
mov rax, qword [rbp + 0x140]
cmp rax, rdi
mov ecx, 1
cmova edx, ecx
cmp qword [rbp + 0x2e8], 0
je 0x5540a3
sub rax, rdi
jbe 0x5540a3
shr rax, 1
mov rcx, qword [rbp + 0x2e8]
add dword [rcx], eax
mov qword [rbp + 0x140], rdi
cmp dword [rbp + 0x160], 0
mov dword [rbp + 0x150], edx
je 0x5540e9
cmp r10d, 0x5c
jne case.0x554225.5
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
mov r10d, 0x5c
cmp ecx, 0x45
jne case.0x554225.5
add rax, 2
mov qword [rbp + 0x1f0], rax
xor r8d, r8d
jmp case.0x554225.25
cmp r10d, 0x5c
je 0x5541a5
cmp r10d, 0x5b
jne case.0x554225.5
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
mov r10d, 0x5b
cmp rcx, 0x3d
ja case.0x554225.5
movabs rdx, 0x2400400000000000
bt rdx, rcx
jae case.0x554225.5
mov r8d, ebx
lea rbx, [rax + 4]
mov r15, rbx
mov r11d, dword [rbp + 0x1f8]
jmp 0x554144
add r15, 2
movsx edx, word [r15]
movzx edi, dx
cmp edx, 0x5b
jg 0x554160
cmp edi, 0x5b
jne 0x55417f
cmp word [r15 + 2], cx
jne 0x554184
jmp 0x55419d
cmp edi, 0x5c
jne 0x554198
movzx edi, word [r15 + 2]
and edi, 0xfffe
cmp edi, 0x5c
jne 0x554184
add r15, 2
add r15, 2
jmp 0x554144
test dx, dx
je 0x55419d
cmp dx, cx
jne 0x554140
movzx edx, word [r15 + 2]
cmp edx, 0x5d
jne 0x554140
jmp 0x5530db
cmp edi, 0x5d
jne 0x554184
mov ebx, r8d
jmp case.0x554225.5
mov r9d, dword [r12 + 0x70]
mov eax, dword [rbp + 0x1fc]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], 1
lea rcx, [rbp + 0x1f0]
lea rdx, [rbp + 0x9c]
mov rsi, qword [rbp + 0x1d8]
mov r8, rsi
call fcn.0055a2d0
mov r15d, eax
cmp dword [rsi], 0
jne 0x5592f9
xor r8d, r8d
cmp r15d, 0x1a
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
mov rdi, qword [rbp + 0xe8]
ja case.0x554225.1
mov r10d, 8
mov eax, r15d
lea rcx, [0x00559d30]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov r10d, dword [rbp + 0x9c]
mov rcx, qword [rbp + 0x1f0]
movzx eax, word [rcx + 2]
cmp eax, 0x5c
jne 0x55429d
mov rdi, rcx
add rdi, 4
nop word cs:[rax + rax]
mov rdx, rdi
movzx eax, word [rdx]
cmp eax, 0x45
jne 0x5542af
mov qword [rbp + 0x1f0], rdx
movzx eax, word [rdx + 2]
lea rdi, [rdx + 4]
mov dword [rbp + 0x160], 0
cmp eax, 0x5c
mov rcx, rdx
je 0x554250
add rdi, 0xfffffffffffffffc
xor r8d, r8d
mov rcx, rdx
cmp r10d, 0xd
je 0x5542c7
cmp r10d, 0xa
je 0x5542c7
test r8d, r8d
jne 0x5543df
jmp 0x5542d8
mov r8d, dword [rbp + 0x160]
mov rdi, rcx
cmp r10d, 0xd
jne 0x55428c
jmp 0x5542c7
add rdx, 0xfffffffffffffffc
mov ax, 0x5c
mov r8d, dword [rbp + 0x160]
mov rdi, rdx
cmp r10d, 0xd
jne 0x55428c
mov rdx, qword [rbp + 0x50]
or byte [rdx + 1], 8
test r8d, r8d
jne 0x5543df
movzx eax, ax
xor r8d, r8d
cmp eax, 0x2d
jne 0x5543df
mov r13, rsi
mov r15, qword [rbp + 0x1d0]
lea rax, [rdi + 4]
mov qword [rbp + 0x1f0], rax
movzx esi, word [rdi + 4]
cmp esi, 0x5c
mov dword [rbp + 0x138], ebx
jne 0x5543a2
lea rax, [rdi + 8]
add rdi, 0xc
mov r11d, dword [rbp + 0x1f8]
nop
movzx edx, word [rax - 2]
cmp edx, 0x45
jne 0x55434d
mov qword [rbp + 0x1f0], rax
movzx esi, word [rax]
add rax, 4
add rdi, 4
cmp esi, 0x5c
je 0x554320
xor ebx, ebx
add rax, 0xfffffffffffffffc
test si, si
jne 0x5543b0
jmp 0x5543cc
movzx eax, word [rdi - 6]
cmp eax, 0x51
jne 0x553211
lea rax, [rdi - 4]
mov qword [rbp + 0x1f0], rax
movzx esi, word [rdi - 4]
cmp esi, 0x5c
jne 0x553219
movzx eax, word [rdi - 2]
cmp eax, 0x45
jne 0x55322c
mov qword [rbp + 0x1f0], rdi
movzx esi, word [rdi]
add rdi, 8
cmp esi, 0x5c
je 0x55434d
xor ebx, ebx
add rdi, 0xfffffffffffffff8
mov rax, rdi
test si, si
jne 0x5543b0
jmp 0x5543cc
xor ebx, ebx
mov r11d, dword [rbp + 0x1f8]
test si, si
je 0x5543cc
mov edx, ebx
test edx, edx
setne r8b
movzx edi, si
cmp edi, 0x5d
jne 0x553244
test edx, edx
jne 0x553244
mov qword [rbp + 0x1f0], rcx
mov rsi, r13
mov r8d, ebx
mov ebx, dword [rbp + 0x138]
xor eax, eax
mov rcx, qword [rbp + 0x180]
cmp ecx, 2
setl al
add ecx, eax
mov qword [rbp + 0x180], rcx
cmp ecx, 1
jne 0x554417
mov eax, r8d
or eax, ebx
jne 0x554417
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x5d
je 0x554f31
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], r10d
lea rcx, [rbp + 0x100]
lea rdx, [rbp + 0x140]
mov edi, r8d
mov r8d, dword [rbp + 0x1fc]
mov r9, r12
call fcn.0055b600
mov r8d, edi
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
add eax, dword [rbp + 0x190]
mov qword [rbp + 0x190], rax
mov rax, qword [rbp + 0x1f0]
lea rcx, [rax + 2]
mov qword [rbp + 0x1f0], rcx
movzx r10d, word [rax + 2]
test r10d, r10d
je 0x554498
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov rax, qword [rbp + 0x1d0]
mov edx, dword [rbp + 0x150]
jmp 0x5544dd
mov rax, qword [rbp + 0x1d0]
test rax, rax
mov r11d, dword [rbp + 0x1f8]
mov edx, dword [rbp + 0x150]
je 0x554d8e
mov rcx, rax
lea rax, [rcx + 2]
mov qword [rbp + 0x1f0], rax
movzx r10d, word [rcx + 2]
test r10d, r10d
mov eax, 0
mov r13, qword [rbp + 0x198]
je 0x554da8
test r8d, r8d
mov dword [rbp + 0x160], r8d
jne 0x554010
cmp r10d, 0x5d
mov dword [rbp + 0x160], r8d
jne 0x554010
mov dword [rbp + 0x160], 0
jmp 0x554dba
add rax, 4
movzx ecx, word [rax + 2]
add rax, 2
test cx, cx
sete dl
cmp ecx, 0x29
setne bl
xor bl, dl
jne 0x554511
test cx, cx
mov qword [rbp + 0x1f0], rax
mov ebx, dword [rbp + 0x1fc]
mov rax, qword [rbp + 0x1d0]
jne 0x554d37
jmp 0x5593c9
mov ebx, dword [rbp + 0x1fc]
mov eax, ebx
shr eax, 1
and eax, 1
add eax, 0x19
mov word [r14], ax
jmp 0x55513b
mov rax, qword [rbp + 0x1f0]
lea rcx, [rax + 2]
mov qword [rbp + 0x1f0], rcx
movzx ecx, word [rax + 2]
cmp ecx, 0x2a
jne 0x554fec
movzx ecx, word [rax + 4]
cmp rcx, 0x3a
je 0x555210
movzx edx, cx
cmp edx, 0xff
ja 0x5545ab
mov rdx, qword [r12 + 0x18]
test byte [rdx + rcx], 2
jne 0x555210
mov rax, qword [r12 + 0x40]
sub rax, qword [r12 + 0x20]
sar rax, 1
mov qword [rbp + 0x158], rax
jmp 0x555147
mov rdx, rsi
mov r10d, 0xffffffff
jmp 0x554642
mov rdx, rsi
mov r10d, 0xffffffff
mov ebx, 1
test r15, r15
jne 0x55464d
jmp 0x5593a5
mov ecx, dword [rbp + 0x1ec]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
cmove ecx, eax
mov rax, qword [r12 + 0x40]
sub rax, qword [r12 + 0x20]
sar rax, 1
mov qword [rbp + 0x158], rax
mov ebx, dword [rbp + 0x1fc]
mov eax, ebx
shr eax, 2
and eax, 1
or eax, 0xc
mov word [r14], ax
mov r15, r14
lea r14, [r14 + 2]
mov dword [rbp + 0x1ec], ecx
mov dword [rbp + 0x178], ecx
jmp 0x554c57
mov rdx, rsi
mov r10d, 1
xor ebx, ebx
test r15, r15
je 0x5593a5
test ebx, ebx
mov eax, dword [rbp + 0x1b0]
cmove eax, dword [rbp + 0x1a0]
mov dword [rbp + 0x150], eax
mov eax, dword [rbp + 0x1ec]
cmove eax, dword [rbp + 0x178]
mov dword [rbp + 0x1ec], eax
mov eax, dword [rbp + 0x1a8]
cmove eax, dword [rbp + 0x1a4]
mov dword [rbp + 0x180], eax
mov eax, dword [rbp + 0x1c4]
cmove eax, dword [rbp + 0x130]
mov dword [rbp + 0x1c4], eax
xor r8d, r8d
mov qword [rbp + 0x190], rbx
cmp r10d, ebx
setne byte [rbp + 0xe8]
test byte [rbp + 0x1fc], 8
mov qword [rbp + 0xb8], r15
mov rbx, qword [rbp + 0x1f0]
je 0x5546fd
movzx eax, word [rbx + 2]
add rbx, 2
cmp eax, 0xff
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
ja 0x554d7c
mov r13, qword [rbp + 0x198]
mov rsi, rdx
jmp 0x555ab0
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
mov rsi, rdx
jmp 0x555bad
mov qword [rbp + 0x1c8], rsi
mov r9d, dword [r12 + 0x70]
mov eax, dword [rbp + 0x1fc]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], 0
lea rcx, [rbp + 0x1f0]
lea rdx, [rbp + 0x9c]
mov rsi, qword [rbp + 0x1d8]
mov r8, rsi
call fcn.0055a2d0
mov r10d, eax
cmp dword [rsi], 0
jne 0x5592f9
test r10d, r10d
je 0x55517a
lea eax, [r10 - 6]
cmp eax, 0x11
mov edx, dword [rbp + 0x1ec]
mov edi, edx
mov ecx, 0xffffffff
cmovb edi, ecx
cmp edx, 0xfffffffe
cmovne edi, edx
cmp r10d, 0x1c
mov r11d, dword [rbp + 0x1f8]
mov dword [rbp + 0x178], edi
je 0x55563f
cmp r10d, 0x1b
mov r9, qword [rbp + 0x1e0]
jne 0x5556dc
mov rax, qword [rbp + 0x2e0]
mov rcx, qword [rax + 0x40]
sub rcx, qword [rax + 0x20]
mov qword [rbp + 0x158], rcx
mov rax, qword [rbp + 0x1f0]
lea rbx, [rax + 2]
mov qword [rbp + 0x1f0], rbx
movzx ecx, word [rax + 2]
cmp ecx, 0x3c
mov r8d, 0x27
mov ecx, 0x3e
cmove r8d, ecx
movzx edx, word [rax + 4]
cmp edx, 0x2b
mov r13, qword [rbp + 0x198]
je 0x55481b
movzx edi, dx
cmp edi, 0x2d
je 0x55481b
add edx, 0xffffffd0
movzx edx, dx
cmp edx, 9
ja 0x556fa4
lea rdi, [rax + 4]
add rax, 6
movzx edx, word [rax]
lea esi, [rdx - 0x30]
movzx esi, si
add rax, 2
cmp esi, 0xa
jb 0x554823
cmp r8d, edx
jne 0x555a69
mov qword [rbp + 0x1f0], rdi
mov r10d, 0xa3
mov rbx, rdi
jmp 0x556fb4
mov cx, 0x5d
test byte [r12 + 0x93], 2
je 0x5548de
jmp 0x55940b
mov ebx, dword [rbp + 0x1fc]
test bl, 2
jne 0x55510f
mov word [r14], 0x1b
jmp 0x55513b
mov cx, 0x7b
test al, al
je 0x5548de
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
cmp edx, 9
ja 0x555333
add rax, 4
xor ebx, ebx
movzx ecx, cx
lea edx, [rbx + rbx*4]
lea ebx, [rcx + rdx*2 - 0x30]
cmp ebx, 0xffff
jg 0x55938b
movzx ecx, word [rax]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
add rax, 2
cmp edx, 9
jbe 0x5548ab
add rax, 0xfffffffffffffffe
jmp 0x555339
mov word [rbp + 0x60], cx
mov eax, 1
mov r8d, dword [rbp + 0x160]
mov ecx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov rdx, qword [r12 + 0x40]
sub rdx, qword [r12 + 0x20]
sar rdx, 1
mov qword [rbp + 0x158], rdx
and ecx, 1
sete dl
or dl, byte [rbp + 0x18f]
jne 0x5549ff
movzx edx, word [rbp + 0x60]
mov ebx, edx
and ebx, 0xfc00
mov r10, rsi
cmp ebx, 0xd800
jne 0x55495b
mov rdi, qword [rbp + 0x1d0]
shl edx, 0xa
and edx, 0xffc00
movzx ebx, word [rbp + 0x62]
and ebx, 0x3ff
lea edx, [rdx + rbx + 0x10000]
jmp 0x554962
mov rdi, qword [rbp + 0x1d0]
mov qword [rbp + 0x1d0], rdi
mov ebx, edx
sar ebx, 0x1f
shr ebx, 0x19
add ebx, edx
mov edi, ebx
and edi, 0xffffff80
sar ebx, 7
movsxd rbx, ebx
lea rsi, [0x00689d10]
movzx ebx, byte [rbx + rsi]
shl rbx, 7
sub edx, edi
movsxd rdx, edx
add rdx, rbx
lea rbx, [0x0068bf10]
movzx edx, word [rbx + rdx*2]
lea rbx, [0x00688690]
movzx edx, byte [rbx + rdx*8 + 3]
test dx, dx
mov ebx, dword [rbp + 0x1fc]
mov rsi, r10
je 0x5549ff
mov dword [r14], 0x90010
mov word [r14 + 4], dx
mov r15, r14
lea r14, [r14 + 6]
mov ecx, dword [rbp + 0x1ec]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
mov edx, dword [rbp + 0x178]
cmove edx, eax
mov dword [rbp + 0x178], edx
cmove ecx, eax
mov dword [rbp + 0x1ec], ecx
mov dword [rbp + 0x160], r8d
jmp 0x554d30
add ecx, 0x1d
mov word [r14], cx
lea r10, [r14 + 2]
test eax, eax
je 0x554b0b
mov dword [rbp + 0x160], r8d
mov qword [rbp + 0x1c8], rsi
lea r9d, [rax - 1]
lea r8, [r14 + 4]
mov r15d, eax
cmp eax, 0x10
jb 0x554a55
lea rcx, [r14 + r15*2 + 2]
lea rdx, [rbp + r15*2 + 0x60]
lea rsi, [rbp + 0x60]
cmp rsi, rcx
setb cl
cmp r10, rdx
jae 0x554c80
test cl, cl
je 0x554c80
xor ebx, ebx
mov rcx, r10
mov esi, r15d
sub esi, ebx
lea rdi, [r15 - 1]
sub rdi, rbx
and rsi, 7
je 0x554a84
neg rsi
nop
movzx edx, word [rbp + rbx*2 + 0x60]
mov word [rcx], dx
inc rbx
add rcx, 2
inc rsi
jne 0x554a70
cmp rdi, 7
jb 0x554aec
sub r15, rbx
lea rdx, [rbp + 0x70]
lea rbx, [rdx + rbx*2 - 2]
nop word cs:[rax + rax]
movzx edx, word [rbx - 0xe]
mov word [rcx], dx
movzx edx, word [rbx - 0xc]
mov word [rcx + 2], dx
movzx edx, word [rbx - 0xa]
mov word [rcx + 4], dx
movzx edx, word [rbx - 8]
mov word [rcx + 6], dx
movzx edx, word [rbx - 6]
mov word [rcx + 8], dx
movzx edx, word [rbx - 4]
mov word [rcx + 0xa], dx
movzx edx, word [rbx - 2]
mov word [rcx + 0xc], dx
movzx edx, word [rbx]
mov word [rcx + 0xe], dx
add rbx, 0x10
add rcx, 0x10
add r15, 0xfffffffffffffff8
jne 0x554aa0
lea rdi, [r10 + r9*2]
lea r10, [r8 + r9*2]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
mov r8d, dword [rbp + 0x160]
jmp 0x554b0e
mov rdi, r14
movzx ebx, word [rbp + 0x60]
cmp ebx, 0xd
je 0x554b1f
movzx edx, bx
cmp edx, 0xa
jne 0x554b27
mov rcx, qword [rbp + 0x50]
or byte [rcx + 1], 8
cmp eax, 1
sete cl
cmp dword [rbp + 0xfc], 0
sete dl
or dl, cl
cmp dword [rbp + 0x1ec], 0xfffffffe
jne 0x554b93
mov dword [rbp + 0x178], 0xffffffff
test dl, dl
je 0x554c00
cmp eax, 1
jne 0x554cd5
mov r15, r14
mov dword [rbp + 0x160], r8d
mov r14, r10
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov eax, dword [rbp + 0xfc]
mov dword [rbp + 0x1ec], eax
jmp 0x554d1d
test dl, dl
mov ebx, dword [rbp + 0x1fc]
je 0x554c3e
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
movzx eax, word [rdi]
mov ecx, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], ecx
mov ecx, dword [r12 + 0x98]
or ecx, dword [rbp + 0xfc]
mov r15, r14
mov dword [rbp + 0x160], r8d
mov r14, r10
mov edx, dword [rbp + 0x1ec]
mov dword [rbp + 0x178], edx
mov edx, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], edx
mov dword [rbp + 0x1b0], ecx
mov dword [rbp + 0x1a8], eax
jmp 0x554d29
mov r15, r14
mov dword [rbp + 0x160], r8d
mov r14, r10
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov dword [rbp + 0x1b0], 0xffffffff
mov dword [rbp + 0x1ec], 0xffffffff
jmp 0x554d23
mov r15, r14
mov dword [rbp + 0x160], r8d
mov r14, r10
mov eax, dword [rbp + 0x1ec]
mov dword [rbp + 0x178], eax
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
jmp 0x554d29
mov r11d, eax
and r11d, 0xf
mov rbx, r15
sub rbx, r11
lea rcx, [r10 + rbx*2]
lea rsi, [r14 + 0x12]
mov rdi, rbx
lea rdx, [rbp + 0x70]
nop dword [rax]
movdqa xmm0, xmmword [rdx - 0x10]
movdqa xmm1, xmmword [rdx]
movdqu xmmword [rsi - 0x10], xmm0
movdqu xmmword [rsi], xmm1
add rsi, 0x20
add rdx, 0x20
add rdi, 0xfffffffffffffff0
jne 0x554ca0
test r11d, r11d
mov r11d, dword [rbp + 0x1f8]
jne 0x554a5a
jmp 0x554aec
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
movzx eax, word [rdi]
mov ecx, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], ecx
mov ecx, dword [r12 + 0x98]
mov r15, r14
mov dword [rbp + 0x160], r8d
mov r14, r10
mov dword [rbp + 0x1b0], ecx
mov ecx, dword [rbp + 0xfc]
mov dword [rbp + 0x1ec], ecx
mov dword [rbp + 0x1a8], eax
mov dword [rbp + 0x1c4], ebx
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1d0]
mov dword [rbp + 0x1fc], ebx
mov rcx, qword [rbp + 0x1f0]
add rcx, 2
mov qword [rbp + 0x1f0], rcx
jmp 0x552590
xor eax, eax
mov qword [rbp + 0x190], rax
xor ebx, ebx
mov dword [rbp + 0x170], 0
xor edx, edx
mov rax, qword [rbp + 0x1d0]
test r10d, r10d
jne 0x554dba
jmp 0x5593b7
mov rcx, rbx
mov r13, qword [rbp + 0x198]
mov rsi, rdx
jmp 0x555b9f
xor eax, eax
mov dword [rbp + 0x160], r8d
mov r13, qword [rbp + 0x198]
test r10d, r10d
jne 0x554dba
jmp 0x5593b7
xor eax, eax
mov dword [rbp + 0x160], r8d
test r10d, r10d
je 0x5593b7
mov r15d, ebx
mov ebx, edx
mov qword [rbp + 0x1d0], rax
mov rcx, qword [rbp + 0x140]
mov edx, dword [rbp + 0x1ec]
cmp edx, 0xfffffffe
mov eax, 0xffffffff
cmove edx, eax
mov dword [rbp + 0x1ec], edx
test ebx, ebx
mov ebx, dword [rbp + 0x1fc]
mov edx, dword [rbp + 0x170]
jne 0x554df9
cmp rcx, rdi
jbe 0x554e19
mov eax, ebx
and eax, 0x20000000
test edx, edx
je 0x554eb4
mov edx, r15d
or edx, eax
mov edx, dword [rbp + 0x170]
jne 0x554eb4
mov rax, qword [rbp + 0x2e8]
test rax, rax
je 0x554e45
sub rcx, rdi
shr rcx, 1
add dword [rax], ecx
xor eax, eax
cmp dword [rbp + 0x1b8], edx
sete al
mov ecx, 0x6f
sub ecx, eax
mov word [r14], cx
jmp 0x554ea8
xor eax, eax
mov ecx, edx
mov edx, dword [rbp + 0x1b8]
cmp edx, ecx
sete al
mov ecx, 0x6f
sub ecx, eax
lea rax, [r14 + 2]
mov word [r14], cx
test edx, edx
je 0x554e8f
movdqa xmm0, xmmword [rbp + 0x100]
pxor xmm0, xmm6
movdqa xmmword [rbp + 0x100], xmm0
movdqa xmm0, xmmword [rbp + 0x110]
pxor xmm0, xmm6
movdqa xmmword [rbp + 0x110], xmm0
movdqu xmm0, xmmword [rbp + 0x100]
movdqu xmm1, xmmword [rbp + 0x110]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
mov r15, r14
lea r14, [r14 + 0x22]
jmp 0x55560a
test eax, eax
jne 0x555295
mov edi, dword [rbp + 0x1b8]
test edi, edi
jne 0x5552b7
test edx, edx
je 0x5552b7
lea rdx, [rcx + 2]
test r11d, r11d
mov qword [rbp + 0x140], rdx
mov word [rcx], 2
je 0x55529d
mov ecx, pe_nt_image_headers64
call fcn.005b72c0
mov edx, eax
add rdx, rdx
add rdx, qword [rbp + 0x140]
mov qword [rbp + 0x140], rdx
mov ecx, 0x10ffff
call fcn.005b72c0
mov r11d, dword [rbp + 0x1f8]
mov ecx, eax
add rcx, rcx
add rcx, qword [rbp + 0x140]
mov qword [rbp + 0x140], rcx
jmp 0x5552b7
add rax, 2
mov qword [rbp + 0x1f0], rax
cmp dword [rbp + 0x1b8], 0
je 0x55524c
mov ecx, dword [rbp + 0x1ec]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
cmove ecx, eax
mov dword [rbp + 0x1ec], ecx
cmp dword [rbp + 0x16c], 0
sete al
or al, byte [rbp + 0x18f]
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
jne 0x5551b1
mov eax, r10d
sar eax, 0x1f
shr eax, 0x19
add eax, r10d
mov ecx, eax
and ecx, 0xffffff80
sar eax, 7
cdqe
lea rdx, [0x00689d10]
movzx eax, byte [rax + rdx]
shl rax, 7
mov edx, r10d
sub edx, ecx
movsxd rcx, edx
add rcx, rax
lea rax, [0x0068bf10]
movzx eax, word [rax + rcx*2]
lea rcx, [0x00688690]
movzx eax, byte [rcx + rax*8 + 3]
test ax, ax
je 0x5551b1
mov dword [r14], 0x9000f
mov word [r14 + 4], ax
mov r15, r14
lea r14, [r14 + 6]
jmp 0x55587c
mov rdx, qword [r12 + 0x40]
sub rdx, qword [r12 + 0x20]
sar rdx, 1
mov qword [rbp + 0x158], rdx
movzx ecx, cx
cmp ecx, 0x3f
jne 0x555147
lea rbx, [rax + 4]
mov qword [rbp + 0x1f0], rbx
movzx edx, word [rax + 4]
lea ecx, [rdx - 0x21]
movzx edi, cx
cmp edi, 0x5b
ja case.0x55505f.1
mov dword [rbp + 0x1b8], 1
mov r8d, 0x29
mov r10d, 0x27
mov dword [rbp + 0x150], 0
lea rcx, [0x00559874]
movsxd rdi, dword [rcx + rdi*4]
add rdi, rcx
mov r9, qword [rbp + 0x1e0]
jmp rdi
mov r8, rsi
mov rdi, qword [rbp + 0x1d0]
lea rcx, [rax + 6]
mov qword [rbp + 0x1f0], rcx
movzx ecx, word [rax + 6]
cmp ecx, 0x29
jne 0x5550e7
movzx ecx, word [rax + 8]
lea edx, [rcx - 0x2a]
movzx edx, dx
cmp edx, 2
jb 0x5550e7
movzx ecx, cx
cmp ecx, 0x3f
je 0x5550e7
cmp ecx, 0x7b
jne 0x5591c2
movzx ecx, word [rax + 0xa]
add ecx, 0xffffffd0
movzx ecx, cx
cmp ecx, 9
ja 0x5591c2
add rax, 0xe
movzx ecx, word [rax - 2]
lea edx, [rcx - 0x30]
movzx edx, dx
add rax, 2
cmp edx, 0xa
jb 0x5550b6
movzx ecx, cx
cmp ecx, 0x7d
je 0x5550e7
cmp ecx, 0x2c
jne 0x5591c2
movzx ecx, word [rax - 2]
cmp ecx, 0x7d
jne 0x559199
mov r12, qword [rbp + 0x2e0]
inc dword [r12 + 0x8c]
mov ebx, 0x7e
xor r9d, r9d
mov ecx, dword [rbp + 0x1fc]
xor r10d, r10d
mov rsi, r8
jmp 0x55535b
mov ecx, dword [rbp + 0x1ec]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
mov edx, dword [rbp + 0x178]
cmove edx, eax
mov dword [rbp + 0x178], edx
cmove ecx, eax
mov dword [rbp + 0x1ec], ecx
mov word [r14], 0x1c
add r14, 2
xor r15d, r15d
jmp 0x554d29
mov ecx, dword [rbp + 0x1fc]
test ch, 0x10
jne 0x555350
mov eax, dword [r12 + 0x70]
inc eax
mov dword [r12 + 0x70], eax
mov word [r14 + 4], ax
mov ebx, 0x85
xor r10d, r10d
mov r9d, 1
jmp 0x55535b
mov r11d, dword [rbp + 0x1f8]
test r11d, r11d
mov ecx, dword [rbp + 0x9c]
je 0x555839
cmp ecx, 0xffff
jbe 0x555839
lea rdx, [rbp + 0x60]
call fcn.005b72c0
mov r11d, dword [rbp + 0x1f8]
jmp 0x555842
mov eax, dword [rbp + 0x16c]
add eax, 0x1f
test r11d, r11d
mov word [r14], ax
je 0x555870
cmp r10d, 0x10000
jb 0x555870
lea r13, [r14 + 2]
mov ecx, r10d
mov rdx, r13
mov edi, r8d
call fcn.005b72c0
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
mov eax, eax
mov r15, r14
lea r14, [r13 + rax*2]
mov r13, qword [rbp + 0x198]
mov dword [rbp + 0x160], edi
jmp 0x555883
lea rbx, [rax + 4]
mov qword [rbp + 0x1f0], rbx
mov rdx, qword [r12 + 0x18]
add rax, 6
movzx edi, cx
test byte [rdx + rdi], 2
je 0x5558b8
mov qword [rbp + 0x1f0], rax
movzx ecx, word [rax]
add rax, 2
cmp ecx, 0xff
jbe 0x555224
jmp case.0x556b0d.2
mov r11d, dword [rbp + 0x1f8]
test r11d, r11d
mov r13, qword [rbp + 0x198]
je 0x55591c
cmp r10d, 0x10000
jb 0x55591c
mov ecx, r10d
lea rdx, [rbp + 0x60]
mov edi, r8d
call fcn.005b72c0
mov r8d, edi
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
jmp 0x555926
mov edi, dword [rbp + 0x1b8]
jmp 0x5552b7
mov word [rcx + 2], pe_nt_image_headers64
lea rax, [rcx + 6]
mov qword [rbp + 0x140], rax
mov word [rcx + 4], 0xffff
mov rcx, rax
xor ebx, ebx
test edi, edi
setne bl
lea rax, [rcx + 2]
mov qword [rbp + 0x140], rax
mov word [rcx], 0
mov word [r14], 0x70
mov edx, ebx
or edx, 4
test r15d, r15d
cmove dx, bx
mov word [r14 + 4], dx
cmp dword [rbp + 0x190], 0
jle 0x555321
lea r8, [r14 + 6]
or edx, 2
mov word [r14 + 4], dx
mov r10, rax
sub r10, r8
je 0x555594
lea rdx, [r8 + r10]
lea rbx, [r14 + r10 + 0x26]
cmp r10, 8
jae 0x555529
xor r10d, r10d
jmp 0x555578
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
jmp 0x5555f8
add rax, 2
xor ebx, ebx
movzx ecx, cx
cmp ecx, 0x7d
jne 0x5557ac
mov rdx, rsi
mov r10d, ebx
jmp 0x55581d
mov ebx, 0x83
xor r9d, r9d
xor r10d, r10d
mov eax, dword [r12 + 0x88]
lea edx, [rax + 1]
mov dword [r12 + 0x88], edx
cmp eax, 0xfa
jge 0x55942f
cmp ebx, 0x80
mov qword [rbp + 0x1c8], rsi
ja 0x5553a4
cmp dword [r12 + 0xb0], 0
je 0x5553a4
mov dword [r12 + 0xb0], 0
xor r15d, r15d
jmp 0x5553bb
mov rax, qword [r12 + 0x40]
sub rax, qword [r12 + 0x20]
sar rax, 1
mov qword [rbp + 0x158], rax
mov r15, r14
mov word [r14], bx
mov qword [rbp + 0xb8], r14
mov r13d, dword [r12 + 0x70]
mov rsi, r12
mov r12d, dword [rsi + 0x98]
mov dword [rbp + 0xf8], 0
lea eax, [rbx - 0x7f]
xor edx, edx
cmp eax, 2
setb dl
xor eax, eax
cmp ebx, 0x87
sete al
add eax, dword [rbp + 0x2d8]
mov rdi, qword [rbp + 8]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x68], rsi
mov rdi, qword [rbp + 0x2d0]
mov qword [rsp + 0x60], rdi
lea rdi, [rbp + 0xd0]
mov qword [rsp + 0x58], rdi
lea rdi, [rbp + 0x94]
mov qword [rsp + 0x50], rdi
lea rdi, [rbp + 0x98]
mov qword [rsp + 0x48], rdi
lea rdi, [rbp + 0x3c]
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], edx
lea rdx, [rbp + 0xb8]
lea r8, [rbp + 0x1f0]
mov r9, qword [rbp + 0x1d8]
call fcn.00550990
test eax, eax
je 0x5592f9
mov rax, qword [rbp + 0x2e0]
dec dword [rax + 0x88]
cmp ebx, 0x81
jne 0x55549e
mov rax, qword [rbp + 0x2e0]
cmp dword [rax + 0x70], r13d
ja 0x55549e
mov word [r14], 0x82
cmp ebx, 0x80
ja 0x5554b3
mov rax, qword [rbp + 0x2e0]
dec dword [rax + 0x8c]
mov rsi, qword [rbp + 0x2e8]
test rsi, rsi
mov r9, qword [rbp + 0x1e0]
jne 0x555949
cmp ebx, 0x87
mov r11d, dword [rbp + 0x1f8]
mov r8, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
jne 0x555986
mov eax, 0xffffffff
mov rcx, r14
movzx edx, word [rcx + 2]
movzx edi, word [rcx + rdx*2]
lea rcx, [rcx + rdx*2]
inc eax
cmp edi, 0x78
jne 0x5554f3
movzx ecx, word [r14 + 4]
cmp ecx, 0x91
jne 0x555960
mov ebx, 0x91
test eax, eax
jle 0x555986
jmp 0x5594f9
mov dword [rbp + 0x1b8], edi
mov qword [rbp + 0x1c8], rsi
mov r9d, r10d
and r9d, 7
lea rdi, [r9 + r8]
sub rdi, rax
add rdx, rdi
add rbx, rdi
lea rdi, [r14 + r10 + 0x1e]
sub r10, r9
mov rsi, r10
mov rcx, qword [rdi - 0x20]
mov qword [rdi], rcx
add rdi, 0xfffffffffffffff8
add rsi, 0xfffffffffffffff8
jne 0x555555
test r9, r9
mov rsi, qword [rbp + 0x1c8]
mov edi, dword [rbp + 0x1b8]
je 0x555594
dec rdx
dec rbx
sub rax, r10
sub rax, r8
movzx ecx, byte [rdx]
mov byte [rbx], cl
dec rdx
dec rbx
dec rax
jne 0x555584
test edi, edi
mov r9, qword [rbp + 0x1e0]
je 0x5555cc
test r15d, r15d
jne 0x5555cc
movdqa xmm0, xmmword [rbp + 0x100]
pxor xmm0, xmm6
movdqa xmmword [rbp + 0x100], xmm0
movdqa xmm0, xmmword [rbp + 0x110]
pxor xmm0, xmm6
movdqa xmmword [rbp + 0x110], xmm0
movdqu xmm0, xmmword [rbp + 0x100]
movdqu xmm1, xmmword [rbp + 0x110]
movdqu xmmword [r8 + 0x10], xmm1
movdqu xmmword [r8], xmm0
mov rax, qword [rbp + 0x140]
add rax, 0x20
mov ebx, dword [rbp + 0x1fc]
mov ecx, eax
sub ecx, r14d
shr ecx, 1
mov word [r14 + 2], cx
mov r15, r14
mov r14, rax
mov eax, dword [rbp + 0x1ec]
mov dword [rbp + 0x178], eax
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
jmp 0x554d30
mov rbx, qword [rbp + 0x1f0]
movzx eax, word [rbx + 2]
cmp eax, 0x27
mov r9, qword [rbp + 0x1e0]
je 0x555667
movzx ecx, ax
cmp ecx, 0x3c
je 0x555667
cmp ecx, 0x7b
jne 0x55948d
add rbx, 2
mov qword [rbp + 0x1f0], rbx
movzx eax, ax
cmp eax, 0x27
mov r8d, 0x7d
cmove r8d, eax
cmp eax, 0x3c
mov eax, 0x3e
cmove r8d, eax
mov dword [rbp + 0x1b8], 0
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov dword [rbp + 0x1ec], edi
mov r13, qword [rbp + 0x198]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
jmp case.0x55505f.5
test r10d, r10d
mov r13, qword [rbp + 0x198]
js 0x556b32
lea ecx, [r10 - 0xf]
cmp ecx, 1
mov ebx, dword [rbp + 0x1fc]
mov rsi, qword [rbp + 0x1c8]
ja 0x556ba0
mov rdi, r10
mov dword [rbp + 0xd4], 0
mov dword [rbp + 0xd8], 0
mov rax, qword [rbp + 0x1d8]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x1f0]
lea rdx, [rbp + 0x70]
lea r8, [rbp + 0xd4]
lea r9, [rbp + 0xd8]
call fcn.0055afd0
test eax, eax
mov r12, qword [rbp + 0x2e0]
je 0x55754e
xor eax, eax
cmp edi, 0x10
sete al
mov rcx, qword [r12 + 0x40]
sub rcx, qword [r12 + 0x20]
sar rcx, 1
mov qword [rbp + 0x158], rcx
xor ecx, ecx
cmp dword [rbp + 0x70], eax
sete cl
mov eax, 0x10
sub eax, ecx
mov word [r14], ax
movzx eax, word [rbp + 0xd4]
mov word [r14 + 2], ax
movzx eax, word [rbp + 0xd8]
mov word [r14 + 4], ax
mov r15, r14
lea r14, [r14 + 6]
xor r10d, r10d
jmp 0x557554
lea r8, [rax + 2]
movzx ecx, word [rax + 2]
mov r10d, 0xffffffff
cmp ecx, 0x7d
je 0x555817
mov rdx, rbx
lea ebx, [rcx - 0x30]
movzx ebx, bx
xor r10d, r10d
cmp ebx, 9
mov rbx, rdx
ja 0x55580e
add rax, 4
xor r10d, r10d
lea edx, [r10 + r10*4]
movzx ecx, cx
lea r10d, [rcx + rdx*2 - 0x30]
cmp r10d, 0xffff
jg 0x55938b
movzx ecx, word [rax]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
add rax, 2
cmp edx, 9
jbe 0x5557da
add rax, 0xfffffffffffffffe
mov r8, rax
cmp r10d, ebx
jl 0x559589
mov rdx, rsi
mov rax, r8
mov rcx, qword [rbp + 0x1d8]
cmp dword [rcx], 0
mov qword [rbp + 0x1f0], rax
je 0x554644
jmp 0x5592f9
mov word [rbp + 0x60], cx
mov eax, 1
mov r8d, dword [rbp + 0x160]
mov r13, qword [rbp + 0x198]
mov ecx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x5548fb
mov word [r14 + 2], r10w
mov r15, r14
lea r14, [r14 + 4]
mov dword [rbp + 0x160], r8d
mov eax, dword [rbp + 0x1ec]
mov dword [rbp + 0x178], eax
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
jmp 0x552c70
cmp edi, 0x3a
jne 0x556ad2
mov r15, rax
jmp 0x5558ca
add r15, 2
mov cx, word [r15]
test cx, cx
je 0x5558db
movzx edx, cx
cmp edx, 0x29
jne 0x5558c6
mov qword [rbp + 0x1f0], r15
sub r15, rax
shr r15, 1
cmp r15d, 0x10000
mov rdi, rax
jb 0x556ad7
jmp 0x559577
mov r15, r14
mov dword [rbp + 0x160], r8d
mov r13, qword [rbp + 0x198]
test r10d, r10d
jne 0x5575a4
jmp 0x552c70
mov word [rbp + 0x60], r10w
mov eax, 1
mov ecx, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], ecx
mov ecx, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], ecx
mov ecx, dword [rbp + 0x1fc]
jmp 0x5548fb
mov r11d, dword [rbp + 0x1f8]
mov r8, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x555986
cmp eax, 2
jge 0x55950b
mov ebx, 0x87
test eax, eax
jne 0x555986
mov dword [rbp + 0xd0], 0xffffffff
mov dword [rbp + 0x98], 0xffffffff
mov rax, qword [rbp + 0x1f0]
movzx eax, word [rax]
cmp eax, 0x29
jne 0x559441
mov rdi, qword [rbp + 0x2e8]
test rdi, rdi
je 0x5559f2
mov eax, dword [rdi]
mov edx, 0x7fffffeb
sub edx, eax
mov ecx, dword [rbp + 0xf8]
add ecx, 0xfffffffc
cmp edx, ecx
mov r13, qword [rbp + 0x198]
mov ebx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
jl 0x5592ec
add ecx, eax
mov dword [rdi], ecx
mov dword [r14 + 2], 0x780002
mov word [r14 + 6], 2
add r14, 8
mov rax, r8
jmp 0x554d37
mov r14, qword [rbp + 0xb8]
cmp ebx, 0x91
je 0x556df1
cmp ebx, 0x81
jl 0x556d84
cmp dword [rbp + 0x1ec], 0xfffffffe
mov ecx, dword [rbp + 0x98]
jne 0x557631
mov eax, ecx
shr eax, 0x1f
xor eax, 1
mov dword [rbp + 0xa0], eax
cmp ecx, 0xfffffffe
mov dword [rbp + 0x1ec], 0xffffffff
mov eax, 0xffffffff
cmovg eax, ecx
mov dword [rbp + 0x1b8], eax
test ecx, ecx
mov r12d, dword [rbp + 0x3c]
mov edi, dword [rbp + 0x1c4]
cmovs r12d, edi
mov r13, qword [rbp + 0x198]
jmp 0x55768b
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x39
mov r10d, 6
jmp 0x556fb4
mov eax, dword [r9]
jmp 0x555a92
xor eax, eax
xor r8d, r8d
jmp 0x555ab0
mov eax, 1
cdqe
lea rcx, [rbx + rax*2]
movzx eax, word [rbx + rax*2]
cmp eax, 0x100
mov rbx, rcx
mov r8d, 0
jae 0x555b9f
mov rcx, qword [r12 + 0x18]
add rbx, 2
movzx eax, ax
test byte [rcx + rax], 1
je 0x555ad5
movzx eax, word [rbx]
add rbx, 2
cmp eax, 0x100
jb 0x555ab9
jmp 0x555b98
cmp eax, 0x23
jne 0x555b98
movzx ecx, word [rbx]
xor eax, eax
test cx, cx
je 0x555ab0
mov edx, dword [r12 + 0xb4]
test edx, edx
mov r8, qword [r12 + 0x38]
je 0x555b2d
cmp rbx, r8
jae 0x555b63
mov eax, dword [rbp + 0x12c]
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov rdi, r10
call fcn.005b7130
mov r10, rdi
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
test eax, eax
je 0x555b63
jmp 0x555a81
movsxd rax, dword [r9]
lea rdx, [rax + rax]
sub r8, rdx
cmp rbx, r8
ja 0x555b63
cmp cx, word [r12 + 0xbc]
jne 0x555b63
cmp eax, 1
je 0x555a8d
movzx ecx, word [rbx + 2]
cmp cx, word [r12 + 0xbe]
je 0x555a92
lea rax, [rbx + 2]
test r11d, r11d
je 0x555b7e
movzx ecx, word [rbx + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
je 0x555b83
mov rbx, rax
jmp 0x555b87
add rbx, 4
movzx ecx, word [rbx]
test cx, cx
jne 0x555ae8
jmp 0x555a86
add rbx, 0xfffffffffffffffe
mov rcx, rbx
add rcx, 0xfffffffffffffffe
mov qword [rbp + 0x1f0], rcx
mov rbx, rcx
movzx eax, word [rbx + 2]
cmp eax, 0x28
jne 0x555c00
movzx eax, word [rbx + 4]
xor edi, edi
cmp eax, 0x3f
jne 0x555c29
movzx eax, word [rbx + 6]
cmp eax, 0x23
mov eax, dword [rbp + 0xb4]
jne 0x555c3b
add rbx, 6
movzx eax, word [rbx + 2]
add rbx, 2
test ax, ax
sete cl
cmp eax, 0x29
setne dl
xor dl, cl
jne 0x555bd4
test ax, ax
mov qword [rbp + 0x1f0], rbx
je 0x5593c9
mov ax, word [rbx + 2]
add rbx, 2
xor edi, edi
movzx eax, ax
cmp eax, 0x3f
je 0x555c31
cmp eax, 0x2b
mov eax, dword [rbp + 0xb4]
jne 0x555c3b
mov qword [rbp + 0x1f0], rbx
xor eax, eax
mov edi, 1
jmp 0x555c3b
mov eax, dword [rbp + 0xb4]
jmp 0x555c3b
mov qword [rbp + 0x1f0], rbx
mov eax, dword [rbp + 0x48]
mov qword [rbp + 0x1b8], rax
movzx eax, word [r15]
cmp eax, 0x75
jne 0x555cb6
add r14, 8
cmp qword [rbp + 0x2e8], 0
mov eax, dword [r15]
mov dword [r15 + 4], eax
mov dword [r15], 0x40081
mov dword [r15 + 8], 0x40078
mov dword [rbp + 0xf8], 6
mov ebx, dword [rbp + 0x1fc]
jne 0x555d13
mov rcx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x40]
add rcx, 2
cmp rax, rcx
jb 0x555d13
lea rdx, [r15 + 2]
movzx ecx, word [rax - 2]
sub rdx, qword [r12 + 0x28]
sar rdx, 1
cmp rdx, rcx
jne 0x555d13
add ecx, 2
mov word [rax - 2], cx
mov ax, word [r15]
lea ecx, [rax - 0x1d]
movzx ecx, cx
cmp ecx, 3
ja 0x555dc0
lea ecx, [rax - 0x1e]
movzx edx, cx
xor ecx, ecx
cmp edx, 2
ja 0x555cd9
lea ecx, [rdx + rdx*2]
lea ecx, [rdx + rcx*4 + 0xd]
movzx ebx, word [r14 - 2]
test r11d, r11d
je 0x555ef1
mov edx, ebx
and edx, 0xfc00
movzx edx, dx
cmp edx, 0xdc00
jne 0x555ef1
mov eax, dword [r14 - 4]
mov dword [rbp + 0x1c], eax
mov ax, word [r15]
mov ebx, 0x10000002
jmp 0x555f1e
mov rax, r14
sub rax, r15
mov rcx, rax
mov qword [rbp + 0xc0], rcx
shr rax, 1
mov qword [rbp + 0x148], rax
mov rax, qword [rbp + 0x190]
test eax, eax
je 0x555e1c
cmp eax, 2
mov rdx, rax
jl 0x555ea3
cmp qword [rbp + 0x2e8], 0
je 0x5560d4
mov dword [rbp + 0xf0], 0
lea ecx, [rdx - 1]
mov eax, dword [rbp + 0xf8]
cvtsi2sd xmm0, ecx
cvtsi2sd xmm1, eax
mulsd xmm1, xmm0
ucomisd xmm1, xmm8
mov rbx, qword [rbp + 0x2e8]
ja 0x5592ec
imul eax, ecx
mov ecx, dword [rbx]
mov edx, 0x7fffffeb
sub edx, ecx
cmp edx, eax
jl 0x5592ec
add ecx, eax
mov dword [rbx], ecx
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x170], rax
mov r8, qword [rbp + 0x1b8]
mov rdx, qword [rbp + 0x190]
jmp 0x555ec2
movzx ebx, ax
mov ecx, 0x34
cmp ebx, 0x16
jbe 0x555f1e
lea ecx, [rax - 0x6e]
movzx ecx, cx
cmp ecx, 6
ja 0x556082
test r10d, r10d
mov ebx, dword [rbp + 0x1fc]
je 0x556ac3
cmp dword [rbp + 0x190], 0
mov rax, qword [rbp + 0x1d0]
jne 0x556b7a
cmp r10d, 0xffffffff
jne 0x556b7a
mov rcx, qword [rbp + 0x1b8]
add ecx, 0x62
jmp 0x556f8f
mov qword [rbp + 0x138], r10
cmp r10d, 1
mov word [r14], 0
jg 0x555fbf
mov rax, qword [rbp + 0x158]
mov qword [rsp + 0x20], rax
mov edx, 1
mov rcx, r15
mov r8d, dword [rbp + 0x12c]
mov r9, r12
call fcn.00559e10
movsxd rax, dword [rbp + 0xc0]
and rax, 0xfffffffffffffffe
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r8d, 0
mov r10, qword [rbp + 0x138]
je 0x5562aa
lea rbx, [rax - 2]
mov rdx, rbx
shr rdx, 1
lea ecx, [rdx + 1]
and ecx, 3
cmp rbx, 6
jae 0x556238
xor edx, edx
jmp 0x556286
mov dword [rbp + 0xf0], 0
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x170], rax
mov r8, qword [rbp + 0x1b8]
test r10d, r10d
mov eax, 0
cmovg eax, edx
sub r10d, eax
xor ebx, ebx
xor edx, edx
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x150], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x180], eax
jmp 0x55639d
cmp dword [rbp + 0x190], 2
jl 0x555f1e
movzx edx, ax
cmp edx, 0x1e
ja 0x555f1e
mov edx, dword [r12 + 0x98]
or edx, dword [rbp + 0xfc]
mov dword [rbp + 0x150], edx
mov edx, ebx
mov dword [rbp + 0x180], edx
add eax, 0xfffffff1
movzx eax, ax
mov edx, 0xffffffff
cmp eax, 1
mov eax, 0xffffffff
ja 0x555f3d
movzx edx, word [r15 + 2]
movzx eax, word [r15 + 4]
mov dword [rbp + 0x1a8], eax
test r10d, r10d
mov rax, qword [rbp + 0x1d0]
je 0x555fb1
mov dword [rbp + 0x1b0], edx
mov rdx, qword [rbp + 0x1b8]
add edx, ecx
mov qword [rbp + 0x1b8], rdx
mov rdx, qword [rbp + 0x190]
cmp edx, 1
je 0x556032
test edx, edx
jne 0x556055
cmp r10d, 1
je 0x5561cc
cmp r10d, 0xffffffff
mov rax, qword [rbp + 0x1b8]
mov ecx, dword [rbp + 0x1b0]
jne 0x5561ec
add eax, 0x21
mov word [r15], ax
add r15, 2
mov r14, r15
jmp 0x557b06
mov r14, r15
mov ebx, dword [rbp + 0x1fc]
jmp 0x557d4b
mov rax, qword [rbp + 0x158]
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, r15
mov r8d, dword [rbp + 0x12c]
mov r9, r12
call fcn.00559e10
movsxd rcx, dword [rbp + 0xc0]
and rcx, 0xfffffffffffffffe
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r10, qword [rbp + 0x138]
je 0x556364
lea rbx, [rcx - 2]
mov rdx, rbx
shr rdx, 1
lea eax, [rdx + 1]
and eax, 3
cmp rbx, 6
jae 0x5562f6
xor edx, edx
test rax, rax
jne 0x556349
jmp 0x556364
cmp r10d, 1
je 0x556204
cmp r10d, 0xffffffff
jne 0x55620f
mov rax, qword [rbp + 0x1b8]
add eax, 0x23
jmp 0x5561d6
add ecx, 0x29
mov word [r15], cx
mov word [r15 + 2], dx
lea r14, [r15 + 4]
test r10d, r10d
js 0x55618b
sub r10d, edx
jne 0x556a9a
mov ecx, dword [rbp + 0x1b0]
jmp 0x557b06
lea ecx, [rax - 0x7d]
movzx ecx, cx
cmp ecx, 0xa
mov ebx, dword [rbp + 0x1fc]
ja 0x556171
mov rcx, r14
sub rcx, r15
mov rdx, rcx
mov qword [rbp + 0xc0], rdx
shr rcx, 1
mov qword [rbp + 0x148], rcx
movzx eax, ax
cmp eax, 0x87
jne 0x556d18
movzx eax, word [r15 + 4]
cmp eax, 0x91
jne 0x555d2d
jmp 0x556d30
mov dword [rbp + 0x16c], edi
mov qword [rbp + 0x138], r10
cmp dword [rbp + 0xa0], 0
setne al
mov edx, dword [rbp + 0x150]
test edx, edx
sets cl
and cl, al
cmovne edx, dword [rbp + 0x1ec]
mov dword [rbp + 0x150], edx
test cl, cl
mov eax, dword [rbp + 0x180]
cmovne eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x180], eax
mov rax, qword [rbp + 0xc0]
movsxd rcx, eax
and rcx, 0xfffffffffffffffe
mov qword [rbp + 0x58], rcx
shr rax, 1
cdqe
mov qword [rbp + 0x30], rax
mov r13, qword [r12 + 0x20]
mov rbx, qword [r12 + 0x40]
movd xmm0, dword [rbp + 0x148]
pshufd xmm9, xmm0, 0
mov dword [rbp + 0xf0], 1
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x1a8], rax
mov qword [rbp + 0x1c8], rsi
jmp 0x55770c
movzx eax, ax
cmp eax, 0x9d
mov rax, qword [rbp + 0x1d0]
je 0x557d4b
jmp 0x55951d
test ebx, 0x10000000
sete al
or al, byte [rbp + 0x18f]
je 0x556d3c
mov word [r15 + 4], bx
mov ecx, dword [rbp + 0x1b0]
test ecx, ecx
js 0x557aed
mov word [r15 + 6], cx
mov eax, dword [rbp + 0x1a8]
mov word [r15 + 8], ax
add r15, 0xa
jmp 0x557af1
mov rax, qword [rbp + 0x1b8]
add eax, 0x25
mov word [r15], ax
add r15, 2
mov r14, r15
mov ecx, dword [rbp + 0x1b0]
jmp 0x557b06
add eax, 0x27
mov word [r15], ax
mov word [r15 + 2], r10w
add r15, 4
mov r14, r15
jmp 0x557b06
mov ebx, dword [rbp + 0x1fc]
jmp 0x557d4b
mov rax, qword [rbp + 0x1b8]
add eax, 0x27
mov word [r14], ax
add r10d, 0xffff
mov word [r14 + 2], r10w
add r14, 4
mov ecx, dword [rbp + 0x1b0]
jmp 0x557b06
mov dword [rbp + 0x16c], edi
mov r10, rsi
lea rbx, [r15 + rax]
lea rdi, [rcx - 1]
sub rdi, rdx
xor edx, edx
movzx esi, word [rbx + rdx - 2]
mov word [rbx + rdx], si
movzx esi, word [rbx + rdx - 4]
mov word [rbx + rdx - 2], si
mov esi, dword [rbx + rdx - 8]
mov dword [rbx + rdx - 6], esi
add rdx, 0xfffffffffffffff8
add rdi, 4
jne 0x55624e
neg rdx
mov rsi, r10
mov edi, dword [rbp + 0x16c]
mov r10, qword [rbp + 0x138]
test rcx, rcx
mov ebx, dword [rbp + 0x1fc]
je 0x5562aa
add rax, r15
sub rax, rdx
neg rcx
movzx edx, word [rax - 2]
mov word [rax], dx
lea rax, [rax - 2]
inc rcx
jne 0x55629a
add r14, 2
test r10d, r10d
je 0x5562e4
mov r8, qword [rbp + 0x1b8]
lea eax, [r8 + 0x92]
mov word [r15], ax
mov rdx, r15
lea r15, [r15 + 2]
dec r10d
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x170], rax
xor ebx, ebx
jmp 0x55639d
mov word [r15], 0xa1
mov rax, qword [rbp + 0x1d0]
jmp 0x557d4b
mov dword [rbp + 0x16c], edi
mov r10, rsi
lea rbx, [r15 + rcx]
lea rdi, [rax - 1]
sub rdi, rdx
xor edx, edx
movzx esi, word [rbx + rdx - 2]
mov word [rbx + rdx + 4], si
mov esi, dword [rbx + rdx - 6]
mov dword [rbx + rdx], esi
movzx esi, word [rbx + rdx - 8]
mov word [rbx + rdx - 2], si
add rdx, 0xfffffffffffffff8
add rdi, 4
jne 0x55630c
neg rdx
mov rsi, r10
mov edi, dword [rbp + 0x16c]
mov r10, qword [rbp + 0x138]
test rax, rax
je 0x556364
lea rcx, [r15 + rcx + 4]
sub rcx, rdx
neg rax
movzx edx, word [rcx - 6]
mov word [rcx], dx
add rcx, 0xfffffffffffffffe
inc rax
jne 0x556354
mov r8, qword [rbp + 0x1b8]
lea eax, [r8 + 0x92]
mov word [r15], ax
lea rbx, [r15 + 4]
mov dword [r15 + 2], 0x83
lea r15, [r15 + 6]
add r14, 6
dec r10d
mov rax, qword [rbp + 0x158]
mov qword [rbp + 0x170], rax
xor edx, edx
test r10d, r10d
mov rax, qword [rbp + 0x1d0]
js 0x556436
cmp qword [rbp + 0x2e8], 0
mov dword [rbp + 0x16c], edi
je 0x55647c
test r10d, r10d
je 0x55647c
mov eax, dword [rbp + 0xf8]
add eax, 5
xorps xmm0, xmm0
cvtsi2sd xmm0, r10d
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
mulsd xmm1, xmm0
ucomisd xmm1, xmm8
mov rdi, qword [rbp + 0x2e8]
ja 0x5592ec
imul eax, r10d
add eax, 0xfffffffc
mov ecx, dword [rdi]
mov edx, 0x7fffffeb
sub edx, ecx
cmp edx, eax
jl 0x5592ec
add ecx, eax
mov dword [rdi], ecx
mov rax, qword [rbp + 0x1d0]
test rbx, rbx
jne 0x556939
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
jmp 0x556993
mov qword [rbp + 0x1c8], rsi
mov r12, rax
lea r15, [r14 - 4]
movzx r13d, word [r14 - 2]
lea rax, [r13 + r13]
mov rcx, r15
sub rcx, rax
neg rax
movzx esi, word [r14 + rax - 4]
cmp esi, 0x81
jne 0x5569a9
test edi, edi
mov ebx, dword [rbp + 0x1fc]
jne 0x5569c5
jmp 0x556a6a
test r10d, r10d
jle 0x556930
add r8d, 0x92
mov rdx, qword [rbp + 0xc0]
movsxd rdi, edx
and rdi, 0xfffffffffffffffe
mov qword [rbp + 0xf0], rdi
shr rdx, 1
movsxd rdx, edx
mov qword [rbp + 0xc0], rdx
mov rdx, qword [r12 + 0x20]
mov qword [rbp + 0x1a8], rdx
mov r11, qword [r12 + 0x40]
mov edi, r10d
mov qword [rbp + 0x1c8], rsi
mov qword [rbp + 0x1b8], r8
sub r11, qword [rbp + 0x1a8]
sar r11, 1
mov qword [rbp + 0x1b0], r11
dec edi
mov word [r14], r8w
mov qword [rbp + 0x138], r10
mov dword [rbp + 0x190], edi
je 0x556521
lea rax, [r14 + 4]
mov word [r14 + 2], 0x83
mov ecx, eax
sub ecx, ebx
shr ecx, 1
test rbx, rbx
mov edx, 0
cmovne dx, cx
mov word [r14 + 4], dx
add r14, 6
mov rbx, rax
jmp 0x556525
add r14, 2
mov rcx, r14
mov rdx, r15
mov r8, qword [rbp + 0xf0]
call fcn.0054d240
mov r8, qword [r12 + 0x20]
mov r11, qword [r12 + 0x40]
movsxd rax, dword [r12 + 0x6c]
lea rcx, [r8 + rax*2]
mov rdx, qword [rbp + 0x170]
mov r13, rdx
mov rdi, qword [rbp + 0x1b0]
sub r13, rdi
lea rcx, [rcx + r13*2 - 0xc8]
cmp r11, rcx
jbe 0x556641
lea esi, [rax + rax]
cmp esi, 0x32001
mov ecx, 0x32000
cmovge esi, ecx
cmp eax, 0x31fff
mov ecx, 0x48
jg 0x559255
mov edx, esi
sub edx, eax
cmp edx, 0x64
jl 0x559255
lea eax, [rsi + rsi]
movsxd rcx, eax
call qword [0x006855f8]
test rax, rax
je 0x55936f
mov rdx, qword [r12 + 0x20]
movsxd r8, dword [r12 + 0x6c]
add r8, r8
mov rcx, rax
mov rdi, rax
call fcn.0054d240
mov r8, rdi
mov rcx, qword [r12 + 0x20]
mov r11, qword [r12 + 0x40]
sub r11, rcx
add r11, r8
mov qword [r12 + 0x40], r11
cmp dword [r12 + 0x6c], 0x801
jl 0x5565fb
call qword [fcn.0054d370]
mov r8, rdi
mov r11, qword [r12 + 0x40]
mov qword [r12 + 0x20], r8
mov dword [r12 + 0x6c], esi
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0
movsxd rax, dword [r12 + 0x6c]
lea rcx, [r8 + rax*2]
lea rcx, [rcx + r13*2 - 0xc8]
cmp r11, rcx
ja 0x55656f
mov rsi, qword [rbp + 0x1c8]
mov rdx, qword [rbp + 0x170]
mov rdi, qword [rbp + 0x1b0]
cmp rdx, rdi
mov rcx, rdx
mov qword [rbp + 0x1a8], r8
jge 0x5566c3
lea r10, [r8 + rdi*2]
xor eax, eax
cmp dword [rbp + 0x190], 0
setne al
lea rdx, [r8 + rcx*2]
mov rdi, rcx
mov rcx, qword [rbp + 0x148]
lea ecx, [rcx + rax*2 + 1]
lea r13, [r8 + rdi*2 + 2]
cmp r13, r10
mov r9, r10
cmova r9, r13
mov rsi, r8
neg rsi
mov qword [rbp + 0x170], rdi
lea rax, [rdi + rdi]
sub rsi, rax
lea rdi, [r9 + rsi - 1]
shr rdi, 1
mov rax, rdi
mov qword [rbp + 0x58], rax
lea rax, [rdi + 1]
mov r9, rax
cmp rax, 8
jae 0x5566dd
mov rax, r11
mov r13, qword [rbp + 0x198]
mov r8, r10
jmp 0x55683d
mov r13, qword [rbp + 0x198]
mov r9, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1d0]
jmp 0x5568f7
cmp r13, r10
mov qword [rbp + 0x30], r10
cmovbe r13, r10
lea rax, [r13 + rsi - 1]
shr rax, 1
mov rdi, qword [rbp + 0x170]
lea rsi, [rdi + rax]
lea rsi, [r8 + rsi*2 + 2]
cmp r11, rsi
jae 0x556722
lea rax, [r11 + rax*2 + 2]
cmp rdx, rax
jae 0x556722
mov rax, r11
mov r13, qword [rbp + 0x198]
mov r8, qword [rbp + 0x30]
jmp 0x55683d
mov r10, r9
and r9, 0xfffffffffffffff8
movd xmm0, ecx
pshufd xmm0, xmm0, 0
lea rsi, [r9 - 8]
mov rdi, rsi
shr rdi, 3
lea r8d, [rdi + 1]
and r8d, 3
cmp rsi, 0x18
jae 0x55675b
xor edi, edi
test r8, r8
jne 0x5567da
jmp 0x556821
mov rsi, qword [rbp + 0x170]
mov rax, qword [rbp + 0x1a8]
lea rsi, [rax + rsi*2 + 0x30]
lea r13, [r8 - 1]
sub r13, rdi
xor edi, edi
movdqu xmm1, xmmword [rsi + rdi*2 - 0x30]
movdqa xmm2, xmm0
pslld xmm2, 0x10
psrad xmm2, 0x10
packssdw xmm2, xmm2
paddw xmm1, xmm2
movdqu xmmword [r11 + rdi*2], xmm1
movdqu xmm1, xmmword [rsi + rdi*2 - 0x20]
paddw xmm1, xmm2
movdqu xmmword [r11 + rdi*2 + 0x10], xmm1
movdqu xmm1, xmmword [rsi + rdi*2 - 0x10]
paddw xmm1, xmm2
movdqu xmmword [r11 + rdi*2 + 0x20], xmm1
movdqu xmm1, xmmword [rsi + rdi*2]
paddw xmm1, xmm2
movdqu xmmword [r11 + rdi*2 + 0x30], xmm1
add rdi, 0x20
add r13, 4
jne 0x556777
test r8, r8
je 0x556821
mov rsi, qword [rbp + 0x170]
add rsi, rdi
mov rax, qword [rbp + 0x1a8]
lea rsi, [rax + rsi*2]
lea rdi, [r11 + rdi*2]
neg r8
movdqu xmm1, xmmword [rsi]
movdqa xmm2, xmm0
pslld xmm2, 0x10
psrad xmm2, 0x10
packssdw xmm2, xmm2
paddw xmm2, xmm1
movdqu xmmword [rdi], xmm2
add rsi, 0x10
add rdi, 0x10
inc r8
jne 0x5567f6
cmp r10, r9
mov r13, qword [rbp + 0x198]
mov r8, qword [rbp + 0x30]
je 0x5568d4
lea rax, [r11 + r9*2]
lea rdx, [rdx + r9*2]
lea r10, [rdx + 2]
cmp r8, r10
cmova r10, r8
sub r10, rdx
dec r10
mov esi, r10d
shr esi, 1
inc esi
and rsi, 7
je 0x556873
neg rsi
movzx edi, word [rdx]
add edi, ecx
mov word [rax], di
add rax, 2
add rdx, 2
inc rsi
jne 0x55685e
cmp r10, 0xe
jb 0x5568d4
movzx edi, word [rdx]
add edi, ecx
mov word [rax], di
movzx edi, word [rdx + 2]
add edi, ecx
mov word [rax + 2], di
movzx edi, word [rdx + 4]
add edi, ecx
mov word [rax + 4], di
movzx edi, word [rdx + 6]
add edi, ecx
mov word [rax + 6], di
movzx edi, word [rdx + 8]
add edi, ecx
mov word [rax + 8], di
movzx edi, word [rdx + 0xa]
add edi, ecx
mov word [rax + 0xa], di
movzx edi, word [rdx + 0xc]
add edi, ecx
mov word [rax + 0xc], di
movzx edi, word [rdx + 0xe]
add edi, ecx
mov word [rax + 0xe], di
add rdx, 0x10
add rax, 0x10
cmp rdx, r8
jb 0x556879
mov rax, qword [rbp + 0x58]
lea r11, [r11 + rax*2 + 2]
mov qword [r12 + 0x40], r11
mov r9, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
mov rcx, qword [rbp + 0x138]
mov edi, dword [rbp + 0x190]
mov rdx, qword [rbp + 0xc0]
lea r14, [r14 + rdx*2]
cmp ecx, 1
mov r10d, edi
mov rcx, qword [rbp + 0x1b0]
mov qword [rbp + 0x170], rcx
mov r8, qword [rbp + 0x1b8]
jg 0x5564d0
test rbx, rbx
je 0x556424
mov r8, rax
mov r11d, dword [rbp + 0x1f8]
mov rax, r14
sub rax, rbx
shr rax, 1
inc rax
movsxd rcx, eax
add rcx, rcx
mov rdx, r14
sub rdx, rcx
neg rcx
movzx edx, word [rdx + 2]
lea rdi, [rdx + rdx]
sub rbx, rdi
test rdx, rdx
mov word [r14], 0x78
mov word [r14 + 2], ax
mov word [r14 + rcx + 2], ax
lea r14, [r14 + 4]
cmove rbx, rdx
test rbx, rbx
jne 0x556943
mov ebx, dword [rbp + 0x1fc]
mov rax, r8
xor r8d, r8d
mov edi, dword [rbp + 0x16c]
test edi, edi
jne 0x557b7b
jmp 0x557d4b
test edi, edi
mov ebx, dword [rbp + 0x1fc]
je 0x556a58
movzx eax, si
cmp eax, 0x82
jne 0x556a58
mov word [rcx], 0x83
mov si, 0x83
cmp qword [rbp + 0x2e8], 0
jne 0x556c0b
mov qword [rbp + 0x1a8], rdx
mov qword [rbp + 0x1b0], rcx
mov rbx, rcx
mov qword [rsp + 0x20], 0
mov rcx, rbx
mov rdx, r15
mov r8d, dword [rbp + 0x12c]
mov r9, qword [rbp + 0x2e0]
call fcn.00551d50
test eax, eax
jne 0x556bda
movzx eax, word [rbx + 2]
movzx ecx, word [rbx + rax*2]
lea rbx, [rbx + rax*2]
cmp ecx, 0x77
je 0x5569ed
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
xor eax, eax
mov r8, qword [rbp + 0x1b8]
mov rdx, qword [rbp + 0x1a8]
mov rcx, qword [rbp + 0x1b0]
jmp 0x556c0b
lea eax, [rsi - 0x81]
movzx eax, ax
cmp eax, 1
ja 0x5569ce
add r8d, 0x79
mov word [r15], r8w
mov r13, qword [rbp + 0x198]
mov rax, r12
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
xor r8d, r8d
test edi, edi
jne 0x557b7b
jmp 0x557d4b
mov dword [rbp + 0x16c], edi
test ebx, 0x10000000
sete al
or al, byte [rbp + 0x18f]
je 0x556dfd
mov word [r15 + 4], bx
add r15, 6
jmp 0x556e3b
mov r14, r15
mov rax, qword [rbp + 0x1d0]
jmp 0x557d4b
xor r15d, r15d
xor edi, edi
movzx ecx, cx
cmp ecx, 0x29
jne case.0x556b0d.2
mov qword [rbp + 0x1c8], rsi
add rax, 0xfffffffffffffffe
sub rax, rbx
shr rax, 1
cmp eax, 6
ja case.0x556b0d.2
mov eax, eax
lea rcx, [0x00559bc4]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
xor esi, esi
xor r8d, r8d
mov rcx, rbx
lea rdx, [0x00685a10]
call fcn.005b73f0
test eax, eax
jne case.0x556b0d.2
xor eax, eax
jmp 0x5582ad
neg r10d
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov edx, dword [rbp + 0x178]
mov ecx, edx
mov ebx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x557ed1
cmp dword [rbp + 0x190], 1
mov rcx, qword [rbp + 0x1b8]
jne 0x556f75
cmp r10d, 0xffffffff
jne 0x556f75
add ecx, 0x64
jmp 0x556f8f
cmp r10d, 5
mov r12, qword [rbp + 0x2e0]
ja 0x55817e
mov ecx, 0x32
bt ecx, r10d
jae 0x55817e
cmp dword [r12 + 0x78], 0
jne 0x5581e3
mov dword [r12 + 0x78], 1
jmp 0x5581e3
add esi, 5
mov rcx, qword [rbp + 0x1b0]
mov word [rcx], si
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
xor eax, eax
mov r8, qword [rbp + 0x1b8]
mov rdx, qword [rbp + 0x1a8]
movzx eax, si
cmp eax, 0x87
jne 0x556c2f
movzx eax, word [rcx + 2]
movzx eax, word [rcx + rax*2]
mov si, 0x87
cmp eax, 0x77
je 0x556c2f
mov word [rcx], 0x8c
mov si, 0x8c
test edi, edi
je 0x556cd6
movzx eax, si
cmp eax, 0x8c
je 0x556c4c
cmp eax, 0x87
jne 0x556cfb
mov qword [rbp + 0x1a8], rdx
mov dword [rbp + 0x16c], edi
mov rsi, r14
sub rsi, rcx
mov r15, rsi
shr r15, 1
mov word [r14], 0
mov rax, qword [rbp + 0x158]
mov qword [rsp + 0x20], rax
mov edx, 2
mov qword [rbp + 0x1b0], rcx
mov r8d, dword [rbp + 0x12c]
mov r9, qword [rbp + 0x2e0]
call fcn.00559e10
movsxd rdi, esi
mov rax, rdi
and rax, 0xfffffffffffffffe
mov r10, r12
mov rsi, qword [rbp + 0x1c8]
je 0x556eed
mov rdx, qword [rbp + 0x1b0]
lea rcx, [rdx + 2]
cmp rax, 4
jae 0x556e90
lea rdx, [rdx + rax]
lea rcx, [rcx + rax + 2]
xor r8d, r8d
jmp 0x556ed4
add r8d, 0x79
mov word [r15], r8w
mov r13, qword [rbp + 0x198]
mov rax, r12
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x557d48
inc esi
mov word [rcx], si
mov word [r15], 0x7b
mov rax, r12
mov rsi, qword [rbp + 0x1c8]
xor r8d, r8d
jmp 0x556f4b
cmp eax, 0x80
ja 0x555d2d
cmp dword [rbp + 0x190], 0
jle 0x5584d2
mov rax, qword [rbp + 0x1d0]
jmp 0x557d4b
mov r15d, edi
mov rdi, rsi
mov esi, ebx
and esi, 7
lea r8d, [rsi + rsi]
mov rcx, r14
lea rdx, [rbp + 0x1c]
call fcn.0054d240
xor r8d, r8d
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
lea r14, [r14 + rsi*2]
mov rsi, rdi
mov edi, r15d
mov rax, qword [rbp + 0x1b8]
mov ecx, dword [rbp + 0x1b0]
jmp 0x557afb
cmp ebx, 0x7d
sete al
mov ecx, dword [rbp + 0xd0]
mov edx, dword [rbp + 0x98]
or edx, ecx
setns dl
and dl, al
mov ebx, dword [rbp + 0x1b0]
cmove ecx, ebx
test dl, dl
mov eax, dword [rbp + 0x94]
mov edi, dword [rbp + 0x1a8]
cmove eax, edi
mov dword [rbp + 0xa0], 0
mov edx, dword [rbp + 0x1ec]
mov dword [rbp + 0x178], edx
mov dword [rbp + 0x1a0], ebx
mov edx, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], edx
mov dword [rbp + 0x1a4], edi
mov dword [rbp + 0x1b0], ecx
mov dword [rbp + 0x1a8], eax
mov r13, qword [rbp + 0x198]
jmp 0x5576ea
mov qword [rbp + 0x1c8], rsi
mov esi, ebx
and esi, 7
lea r8d, [rsi + rsi]
mov rcx, r14
lea rdx, [rbp + 0x1c]
mov rdi, r10
call fcn.0054d240
mov r10, rdi
xor r8d, r8d
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
lea r15, [r14 + rsi*2]
mov rsi, qword [rbp + 0x1c8]
mov rax, qword [rbp + 0x1b8]
mov ecx, dword [rbp + 0x1b0]
test ecx, ecx
js 0x556e5f
mov word [r15], cx
mov edx, dword [rbp + 0x1a8]
mov word [r15 + 2], dx
add r15, 4
cmp r10d, 1
jne 0x556e72
add eax, 0x25
mov word [r15], ax
add r15, 2
jmp 0x556e82
add eax, 0x27
mov word [r15], ax
mov word [r15 + 2], r10w
add r15, 4
mov r14, r15
mov edi, dword [rbp + 0x16c]
jmp 0x557b06
add rcx, 2
mov r9d, edi
and r9d, 2
mov r8, rax
sub r8, r9
lea rdx, [rdx + r9]
add rcx, r9
shr rdi, 1
sub rdi, r13
lea rdi, [r14 + rdi*2 - 4]
mov rsi, r8
mov ebx, dword [rdi - 4]
mov dword [rdi], ebx
lea rdi, [rdi - 4]
add rsi, 0xfffffffffffffffc
jne 0x556eb6
test r9, r9
mov r10, r12
mov rsi, qword [rbp + 0x1c8]
je 0x556eed
dec rdx
dec rcx
sub rax, r8
movzx ebx, byte [rdx]
mov byte [rcx], bl
dec rdx
dec rcx
dec rax
jne 0x556edd
add r15d, 2
mov rdx, qword [rbp + 0x1b0]
movzx eax, word [rdx]
cmp eax, 0x87
mov ax, 0x89
mov cx, 0x84
cmove ax, cx
mov word [rdx], ax
mov word [r14 + 4], 0x7b
mov word [r14 + 6], r15w
add r14, 8
mov word [rdx + 2], r15w
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov rax, r10
xor r8d, r8d
mov edi, dword [rbp + 0x16c]
mov rdx, qword [rbp + 0x1a8]
test rdx, rdx
mov r13, qword [rbp + 0x198]
mov r12, qword [rbp + 0x2e0]
je 0x556f63
mov word [rdx], 0x94
cmp dword [rbp + 0x190], 2
jge 0x557b73
jmp 0x557d4b
cmp dword [rbp + 0x190], 0
jne 0x558140
cmp r10d, 1
jne 0x558140
add ecx, 0x66
mov word [r14], cx
add r14, 2
test edi, edi
jne 0x557b7b
jmp 0x557d4b
mov dword [rbp + 0xdc], 1
mov r10d, 0x86
cmp r10b, 0x86
mov rsi, qword [rbp + 0x1c8]
je 0x5570e0
sar qword [rbp + 0x158], 1
cmp r10b, 0xa3
mov r12, qword [rbp + 0x2e0]
jne 0x55756b
mov dx, word [rbx]
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov eax, dword [rbp + 0x178]
mov dword [rbp + 0x1ec], eax
movzx eax, dx
cmp eax, 0x2b
jne 0x55703c
lea rdi, [rbx + 2]
mov qword [rbp + 0x1f0], rdi
movzx edx, word [rbx + 2]
mov ebx, edx
add ebx, 0xffffffd0
movzx ebx, bx
cmp ebx, 0xa
mov rbx, rdi
jb 0x55705f
jmp 0x55952f
cmp eax, 0x2d
jne 0x55705f
movzx edx, word [rbx + 2]
lea edi, [rdx - 0x30]
movzx edi, di
cmp edi, 9
ja case.0x55505f.1
add rbx, 2
mov qword [rbp + 0x1f0], rbx
lea edi, [rdx - 0x30]
movzx edi, di
xor r10d, r10d
cmp edi, 9
ja 0x5570a8
add rbx, 2
xor r10d, r10d
cmp r10d, 0xccccccc
jge 0x5593db
lea edi, [r10 + r10*4]
mov qword [rbp + 0x1f0], rbx
movzx edx, dx
lea r10d, [rdx + rdi*2 - 0x30]
movzx edx, word [rbx]
mov edi, edx
add edi, 0xffffffd0
movzx edi, di
add rbx, 2
cmp edi, 0xa
jb 0x557074
movzx edx, dx
cmp r8d, edx
jne 0x5594e7
cmp eax, 0x2d
jne 0x557315
test r10d, r10d
je 0x559553
mov eax, dword [r12 + 0x70]
sub eax, r10d
inc eax
test eax, eax
mov r10d, eax
jg 0x557dc0
jmp 0x55949f
mov eax, dword [rbp + 0xdc]
mov dword [rbp + 0x1b8], eax
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov eax, dword [rbp + 0x178]
mov dword [rbp + 0x1ec], eax
mov r12, qword [rbp + 0x2e0]
lea rcx, [rbx + 2]
mov qword [rbp + 0x1f0], rcx
movzx eax, word [rbx + 2]
lea edx, [rax - 0x30]
movzx edx, dx
cmp edx, 9
jbe 0x55946c
movzx edx, ax
cmp edx, 0xff
ja 0x557179
mov rdx, qword [r12 + 0x18]
add rbx, 4
movzx edi, ax
test byte [rdx + rdi], 0x10
je 0x557173
mov qword [rbp + 0x1f0], rbx
movzx eax, word [rbx]
add rbx, 2
cmp eax, 0x100
jb 0x557155
add rbx, 0xfffffffffffffffe
jmp 0x55717c
mov rbx, rcx
sub rbx, rcx
mov rdx, rbx
shr rdx, 1
cmp qword [rbp + 0x2e8], 0
mov qword [rbp + 0x158], rdx
je 0x55729d
test edx, edx
je 0x5594c3
cmp ax, r8w
mov ebx, dword [rbp + 0x1fc]
jne 0x5594b1
cmp edx, 0x21
mov eax, dword [rbp + 0x1b8]
jge 0x5594d5
test eax, eax
jne 0x5571cd
inc dword [r12 + 0x84]
mov rdx, qword [rbp + 0x2e8]
mov eax, dword [rdx]
lea edi, [rax + 9]
mov dword [rdx], edi
cmp dword [r12 + 0xac], 0
je 0x5571eb
add eax, 0x11
mov dword [rdx], eax
mov eax, dword [r12 + 0x60]
test eax, eax
mov r8, qword [rbp + 0x158]
jle 0x557331
mov qword [rbp + 0x150], rcx
mov qword [rbp + 0x1c8], rsi
mov rsi, qword [r12 + 0x50]
xor r15d, r15d
xor r10d, r10d
cmp dword [rsi + 8], r8d
jne 0x557280
mov rdx, qword [rsi]
mov rcx, qword [rbp + 0x150]
mov rdi, r10
call fcn.005b73b0
mov r10, rdi
mov r8, qword [rbp + 0x158]
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
test eax, eax
jne 0x557280
cmp dword [rbp + 0x1b8], 0
mov r10d, dword [rsi + 0xc]
jne 0x558256
mov rax, qword [r12 + 0x48]
test rax, rax
je 0x557280
movzx ecx, word [rax + 8]
cmp r10d, ecx
je 0x55727a
mov rax, qword [rax]
test rax, rax
jne 0x557267
jmp 0x557280
mov word [rax + 0xa], 1
inc r15d
add rsi, 0x10
mov eax, dword [r12 + 0x60]
cmp r15d, eax
jl 0x557218
mov rsi, qword [rbp + 0x1c8]
jmp 0x557dac
mov rdi, qword [r12 + 0x58]
mov eax, dword [r12 + 0x60]
test eax, eax
jle 0x55733c
shl rbx, 0x1f
movabs rax, 0x100000000
add rbx, rax
sar rbx, 0x20
mov qword [rbp + 0x150], rbx
xor r15d, r15d
lea rdx, [rdi + 2]
mov rbx, rcx
mov r8, qword [rbp + 0x158]
call fcn.005b73b0
test eax, eax
jne 0x5572f7
mov rax, qword [rbp + 0x150]
cmp word [rdi + rax*2], 0
je 0x557d7f
movsxd rax, dword [r12 + 0x64]
lea rdi, [rdi + rax*2]
inc r15d
mov eax, dword [r12 + 0x60]
cmp r15d, eax
mov rcx, rbx
jl 0x5572ce
jmp 0x557d84
cmp eax, 0x2b
jne 0x557dc0
test r10d, r10d
je 0x559553
add r10d, dword [r12 + 0x70]
jmp 0x557dc0
xor r10d, r10d
xor r15d, r15d
jmp 0x557dac
xor r15d, r15d
cmp r15d, eax
jl 0x557d8d
jmp 0x55949f
mov qword [rbp + 0x1c8], rsi
mov r10, qword [rbp + 0x1d0]
mov dword [rbp + 0x44], 0
mov dword [rbp + 0x40], 0
lea rsi, [rbp + 0x40]
lea r8, [0x00559a94]
jmp 0x557385
or dword [rax], ecx
jmp 0x557385
add rdx, 2
mov rbx, rdx
lea rsi, [rbp + 0x44]
mov rdx, rbx
movzx edi, word [rdx]
cmp edi, 0x29
je 0x5575c0
movzx eax, di
cmp eax, 0x3a
je 0x5575c0
lea rbx, [rdx + 2]
mov qword [rbp + 0x1f0], rbx
lea eax, [rdi - 0x2d]
movzx eax, ax
cmp eax, 0x4b
ja case.0x5573c9.1
mov ecx, 1
movsxd rdi, dword [r8 + rax*4]
add rdi, r8
mov rax, rsi
jmp rdi
or byte [rsi + 2], 8
mov ecx, 0x400
mov rax, qword [rbp + 0x50]
jmp case.0x5573c9.60
mov ecx, 0x200
mov rax, rsi
or dword [rax], ecx
jmp 0x557385
mov ecx, 0x40
mov rax, rsi
or dword [rax], ecx
jmp 0x557385
mov ecx, 2
mov rax, rsi
or dword [rax], ecx
jmp 0x557385
mov ecx, 4
mov rax, rsi
or dword [rax], ecx
jmp 0x557385
mov ecx, 8
mov rax, rsi
or dword [rax], ecx
jmp 0x557385
mov r8d, 1
mov rcx, rbx
lea rdx, [0x00685a24]
call fcn.005b73f0
test eax, eax
jne case.0x556b0d.2
mov esi, 4
mov eax, 4
jmp 0x5582ad
mov r8d, 4
mov rcx, rbx
lea rdx, str.MARK
call fcn.005b73f0
test eax, eax
je 0x5582a3
mov r8d, 4
mov rcx, rbx
lea rdx, str.FAIL
call fcn.005b73f0
test eax, eax
je 0x558780
mov r8d, 4
mov rcx, rbx
lea rdx, str.SKIP
call fcn.005b73f0
test eax, eax
je 0x5589b0
mov r8d, 4
mov rcx, rbx
lea rdx, str.THEN
call fcn.005b73f0
test eax, eax
mov r13, qword [rbp + 0x198]
mov r12, qword [rbp + 0x2e0]
jne case.0x556b0d.2
mov esi, 8
mov eax, 8
jmp 0x5582ad
mov r8d, 5
mov rcx, rbx
lea rdx, str.PRUNE
call fcn.005b73f0
test eax, eax
jne case.0x556b0d.2
mov esi, 6
mov eax, 6
jmp 0x5582ad
mov r8d, 6
mov rcx, rbx
lea rdx, str.ACCEPT
call fcn.005b73f0
test eax, eax
je 0x5583ba
mov r8d, 6
mov rcx, rbx
lea rdx, str.COMMIT
call fcn.005b73f0
test eax, eax
jne case.0x556b0d.2
mov esi, 3
mov eax, 3
jmp 0x5582ad
mov r10d, 6
mov r9, qword [rbp + 0x1e0]
test r10d, r10d
mov r11d, dword [rbp + 0x1f8]
je 0x558221
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov eax, dword [rbp + 0x178]
mov dword [rbp + 0x1ec], eax
test r10d, r10d
je 0x552c70
cmp r10d, 4
mov ebx, dword [rbp + 0x1fc]
mov rax, qword [rbp + 0x1d0]
je 0x554d37
jmp 0x55947e
mov eax, dword [rbp + 0x40]
or eax, dword [rbp + 0x1fc]
mov ecx, dword [rbp + 0x44]
not ecx
and ecx, eax
movzx eax, di
cmp eax, 0x29
jne 0x55827a
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [rbp + 0xb4], eax
xor eax, 1
mov dword [rbp + 0x48], eax
mov eax, ecx
and eax, 1
mov dword [rbp + 0xfc], eax
mov rax, qword [rbp + 0x10]
mov dword [rax], ecx
xor r15d, r15d
mov ebx, ecx
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov rax, r10
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x554d37
mov rbx, rsi
mov dword [rbp + 0xa0], 0
test ecx, ecx
js 0x55765e
mov eax, dword [rbp + 0xd0]
test eax, eax
jns 0x55765e
mov eax, dword [rbp + 0x3c]
mov dword [rbp + 0x94], eax
or ecx, r12d
mov dword [rbp + 0xd0], ecx
mov eax, dword [rbp + 0x1ec]
mov dword [rbp + 0x1b8], eax
mov edi, dword [rbp + 0x1c4]
mov r12d, edi
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov rsi, rbx
mov edx, dword [rbp + 0xd0]
test edx, edx
mov eax, dword [rbp + 0x1b0]
cmovs edx, eax
mov ebx, dword [rbp + 0x94]
mov ecx, dword [rbp + 0x1a8]
cmovs ebx, ecx
mov r10d, dword [rbp + 0x1ec]
mov dword [rbp + 0x178], r10d
mov dword [rbp + 0x1a0], eax
mov dword [rbp + 0x130], edi
mov dword [rbp + 0x1a4], ecx
mov dword [rbp + 0x1b0], edx
mov eax, dword [rbp + 0x1b8]
mov dword [rbp + 0x1ec], eax
mov dword [rbp + 0x1a8], ebx
mov dword [rbp + 0x1c4], r12d
mov ebx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
mov rax, r8
jmp 0x554d37
lea rax, [rbx + r9*2]
lea rdx, [rdx + r9*2]
jmp 0x5578b1
sub rbx, r13
mov rdi, rbx
sar rdi, 1
mov rcx, r14
mov rdx, r15
mov r8, qword [rbp + 0x58]
call fcn.0054d240
mov r13, qword [r12 + 0x20]
mov rbx, qword [r12 + 0x40]
movsxd rax, dword [r12 + 0x6c]
lea rcx, [r13 + rax*2]
mov r8, qword [rbp + 0x1a8]
mov rdx, r8
sub rdx, rdi
mov qword [rbp + 0x1b0], rdx
lea rcx, [rcx + rdx*2 - 0xc8]
cmp rbx, rcx
jbe 0x55782a
lea esi, [rax + rax]
cmp esi, 0x32001
mov ecx, 0x32000
cmovge esi, ecx
cmp eax, 0x31fff
mov ecx, 0x48
jg 0x559255
mov edx, esi
sub edx, eax
cmp edx, 0x64
jl 0x559255
lea eax, [rsi + rsi]
movsxd rcx, eax
call qword [0x006855f8]
mov r13, rax
test r13, r13
je 0x55936f
mov rdx, qword [r12 + 0x20]
movsxd r8, dword [r12 + 0x6c]
add r8, r8
mov rcx, r13
call fcn.0054d240
mov rcx, qword [r12 + 0x20]
mov rbx, qword [r12 + 0x40]
sub rbx, rcx
add rbx, r13
mov qword [r12 + 0x40], rbx
cmp dword [r12 + 0x6c], 0x801
jl 0x5577e3
call qword [fcn.0054d370]
mov rbx, qword [r12 + 0x40]
mov qword [r12 + 0x20], r13
mov dword [r12 + 0x6c], esi
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0
movsxd rax, dword [r12 + 0x6c]
lea rcx, [r13 + rax*2]
mov rdx, qword [rbp + 0x1b0]
lea rcx, [rcx + rdx*2 - 0xc8]
cmp rbx, rcx
ja 0x55775d
mov rsi, qword [rbp + 0x1c8]
mov r8, qword [rbp + 0x1a8]
cmp r8, rdi
mov rax, r8
jge 0x557a66
mov qword [rbp + 0x170], rdi
lea r11, [r13 + rdi*2]
lea rdx, [r13 + rax*2]
mov r9, rax
lea rax, [r13 + r9*2 + 2]
cmp rax, r11
mov rdi, r11
cmova rdi, rax
mov rcx, r13
neg rcx
lea rsi, [r9 + r9]
sub rcx, rsi
lea r8, [rdi + rcx - 1]
shr r8, 1
lea r10, [r8 + 1]
cmp r10, 8
jb 0x5578ae
cmp rax, r11
cmovbe rax, r11
lea rax, [rax + rcx - 1]
shr rax, 1
mov qword [rbp + 0x1a8], r9
lea rcx, [r9 + rax]
lea rcx, [r13 + rcx*2 + 2]
cmp rbx, rcx
jae 0x557964
lea rax, [rbx + rax*2 + 2]
cmp rdx, rax
jae 0x557964
mov rax, rbx
lea r9, [rdx + 2]
cmp r11, r9
cmova r9, r11
sub r9, rdx
dec r9
mov ecx, r9d
shr ecx, 1
inc ecx
and rcx, 7
je 0x5578f0
neg rcx
mov rsi, qword [rbp + 0x148]
movzx edi, word [rdx]
add edi, esi
mov word [rax], di
add rax, 2
add rdx, 2
inc rcx
jne 0x5578d9
jmp 0x5578f7
mov rsi, qword [rbp + 0x148]
cmp r9, 0xe
mov rdi, rsi
jb 0x557a4e
movzx ecx, word [rdx]
add ecx, edi
mov word [rax], cx
movzx ecx, word [rdx + 2]
add ecx, edi
mov word [rax + 2], cx
movzx ecx, word [rdx + 4]
add ecx, edi
mov word [rax + 4], cx
movzx ecx, word [rdx + 6]
add ecx, edi
mov word [rax + 6], cx
movzx ecx, word [rdx + 8]
add ecx, edi
mov word [rax + 8], cx
movzx ecx, word [rdx + 0xa]
add ecx, edi
mov word [rax + 0xa], cx
movzx ecx, word [rdx + 0xc]
add ecx, edi
mov word [rax + 0xc], cx
movzx ecx, word [rdx + 0xe]
add ecx, edi
mov word [rax + 0xe], cx
add rdx, 0x10
add rax, 0x10
cmp rdx, r11
jb 0x557904
jmp 0x557a4e
mov r9, r10
and r9, 0xfffffffffffffff8
lea rax, [r9 - 8]
mov rdi, rax
shr rdi, 3
lea esi, [rdi + 1]
and esi, 3
cmp rax, 0x18
jae 0x55798e
xor edi, edi
test rsi, rsi
jne 0x557a03
jmp 0x557a45
mov rax, qword [rbp + 0x1a8]
lea rax, [r13 + rax*2 + 0x30]
lea rcx, [rsi - 1]
sub rcx, rdi
xor edi, edi
movdqu xmm0, xmmword [rax + rdi*2 - 0x30]
movdqa xmm1, xmm9
pslld xmm1, 0x10
psrad xmm1, 0x10
packssdw xmm1, xmm1
paddw xmm0, xmm1
movdqu xmmword [rbx + rdi*2], xmm0
movdqu xmm0, xmmword [rax + rdi*2 - 0x20]
paddw xmm0, xmm1
movdqu xmmword [rbx + rdi*2 + 0x10], xmm0
movdqu xmm0, xmmword [rax + rdi*2 - 0x10]
paddw xmm0, xmm1
movdqu xmmword [rbx + rdi*2 + 0x20], xmm0
movdqu xmm0, xmmword [rax + rdi*2]
paddw xmm0, xmm1
movdqu xmmword [rbx + rdi*2 + 0x30], xmm0
add rdi, 0x20
add rcx, 4
jne 0x5579a3
test rsi, rsi
je 0x557a45
mov rax, qword [rbp + 0x1a8]
add rax, rdi
lea rax, [r13 + rax*2]
lea rcx, [rbx + rdi*2]
neg rsi
movdqu xmm0, xmmword [rax]
movdqa xmm1, xmm9
pslld xmm1, 0x10
psrad xmm1, 0x10
packssdw xmm1, xmm1
paddw xmm1, xmm0
movdqu xmmword [rcx], xmm1
add rax, 0x10
add rcx, 0x10
inc rsi
jne 0x557a19
cmp r10, r9
jne 0x5576ff
lea rbx, [rbx + r8*2 + 2]
mov qword [r12 + 0x40], rbx
mov rsi, qword [rbp + 0x1c8]
mov rdi, qword [rbp + 0x170]
mov rax, qword [rbp + 0x30]
lea r14, [r14 + rax*2]
mov eax, dword [rbp + 0xf0]
inc eax
mov dword [rbp + 0xf0], eax
cmp eax, dword [rbp + 0x190]
mov qword [rbp + 0x1a8], rdi
jl 0x55770c
mov qword [rbp + 0x170], rdi
mov eax, dword [rbp + 0x150]
mov dword [rbp + 0x1b0], eax
mov eax, dword [rbp + 0x180]
mov dword [rbp + 0x1a8], eax
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov dword [rbp + 0xf0], 0
mov r10, qword [rbp + 0x138]
mov r8, qword [rbp + 0x1b8]
mov rdx, qword [rbp + 0x190]
mov edi, dword [rbp + 0x16c]
jmp 0x555ec2
add r15, 6
mov r14, r15
mov rax, qword [rbp + 0x1b8]
add eax, 0x21
mov word [r14], ax
add r14, 2
test ebx, 0x10000000
sete al
or al, byte [rbp + 0x18f]
je 0x557b21
mov word [r14], bx
add r14, 2
jmp 0x557b4f
and ebx, 7
lea r8d, [rbx + rbx]
mov rcx, r14
lea rdx, [rbp + 0x1c]
call fcn.0054d240
mov ecx, dword [rbp + 0x1b0]
xor r8d, r8d
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
lea r14, [r14 + rbx*2]
test ecx, ecx
mov ebx, dword [rbp + 0x1fc]
mov rax, qword [rbp + 0x1d0]
js 0x557b73
mov word [r14], cx
mov ecx, dword [rbp + 0x1a8]
mov word [r14 + 2], cx
add r14, 4
test edi, edi
je 0x557d4b
mov rdi, rax
mov rbx, qword [rbp + 0xb8]
movzx eax, word [rbx]
lea ecx, [rax - 0x1d]
movzx ecx, cx
cmp ecx, 0x53
ja case.0x557ba1.4
lea rdx, [0x00559be0]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
test r11d, r11d
lea rcx, [0x00687a20]
movzx eax, byte [rax + rcx]
lea rbx, [rbx + rax*2]
mov qword [rbp + 0xb8], rbx
je case.0x557ba1.4
movzx eax, word [rbx - 2]
and eax, 0xfc00
cmp eax, 0xd800
jne case.0x557ba1.4
add rbx, 2
jmp 0x557c01
add rbx, 0x22
jmp 0x557c01
movzx eax, byte [0x00687a7d]
movzx ecx, word [rbx + 4]
add ecx, 0xfffffff1
movzx ecx, cx
xor edx, edx
cmp ecx, 2
setb dl
lea rax, [rax + rdx*2]
jmp 0x557bfd
movzx eax, word [rbx + 2]
lea rbx, [rbx + rax*2]
mov qword [rbp + 0xb8], rbx
mov r13, r14
sub r13, rbx
mov r15, r13
shr r15, 1
test r15d, r15d
jle 0x557c35
movzx eax, word [rbx]
cmp rax, 0x75
ja 0x557c4a
lea rcx, [0x00685990]
movzx eax, byte [rax + rcx]
test ax, ax
je 0x557c4a
mov word [rbx], ax
mov r13, qword [rbp + 0x198]
mov ebx, dword [rbp + 0x1fc]
mov rax, rdi
jmp 0x557d4b
mov word [r14], 0
mov rax, qword [rbp + 0x158]
mov qword [rsp + 0x20], rax
mov edx, 2
mov rcx, rbx
mov r8d, dword [rbp + 0x12c]
mov r9, r12
call fcn.00559e10
movsxd rax, r13d
and rax, 0xfffffffffffffffe
je 0x557ca0
cmp rax, 4
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
jae 0x557cb7
lea rcx, [rbx + rax + 4]
add rbx, rax
mov rdx, rbx
xor r8d, r8d
jmp 0x557cfa
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
jmp 0x557d21
mov qword [rbp + 0x1c8], rsi
mov r10, rdi
lea rcx, [rbx + 4]
and r13d, 2
mov r8, rax
sub r8, r13
lea rdx, [rbx + r13]
add rcx, r13
add rbx, rax
mov rdi, r8
mov esi, dword [rbx - 4]
mov dword [rbx], esi
lea rbx, [rbx - 4]
add rdi, 0xfffffffffffffffc
jne 0x557cdc
test r13, r13
mov rdi, r10
mov rsi, qword [rbp + 0x1c8]
je 0x557d13
dec rdx
dec rcx
sub rax, r8
movzx ebx, byte [rdx]
mov byte [rcx], bl
dec rdx
dec rcx
dec rax
jne 0x557d03
mov rbx, qword [rbp + 0xb8]
mov r13, qword [rbp + 0x198]
add r15d, 2
mov word [rbx], 0x81
mov word [r14 + 4], 0x78
mov word [r14 + 6], r15w
add r14, 8
mov word [rbx + 2], r15w
mov ebx, dword [rbp + 0x1fc]
mov rax, rdi
xor r8d, r8d
mov cl, byte [rbp + 0xe8]
mov r8b, cl
add r8d, r8d
or dword [r12 + 0x98], r8d
xor r15d, r15d
mov ecx, dword [rbp + 0x150]
mov dword [rbp + 0x1b0], ecx
mov ecx, dword [rbp + 0x180]
mov dword [rbp + 0x1a8], ecx
jmp 0x554d37
mov eax, dword [r12 + 0x60]
cmp r15d, eax
jge 0x55949f
mov qword [rbp + 0xc8], rdi
movzx r10d, word [rdi]
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov ecx, dword [rbp + 0x1b8]
test ecx, ecx
je 0x557ead
mov dword [rbp + 0xdc], ecx
mov rax, qword [r12 + 0x40]
mov qword [rbp + 0x158], rax
mov r8, qword [r12 + 0x20]
mov rcx, qword [r12 + 0x28]
cmp qword [rbp + 0x2e8], 0
je 0x557de8
mov rbx, rcx
jmp 0x558488
mov word [r14], 0
test r10d, r10d
mov rbx, rcx
je 0x557e27
mov edx, dword [rbp + 0x12c]
mov rdi, rcx
mov r15, r8
mov r8d, r10d
mov rbx, r10
call fcn.0054eb90
mov r8, r15
mov rcx, rdi
mov r10, rbx
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
mov rbx, rax
test rbx, rbx
je 0x557f70
cmp dword [rbp + 0x2d8], 0
jg 0x558488
movzx eax, word [rbx + 2]
test ax, ax
jne 0x558488
mov r15, rcx
mov qword [rbp + 0x178], r8
mov qword [rbp + 0x1c8], rsi
cmp qword [rbp + 0x2d0], 0
je 0x55941d
mov rsi, qword [rbp + 0x2d0]
mov rcx, qword [rsi + 8]
cmp rcx, rbx
jb 0x55941d
mov qword [rsp + 0x20], 0
mov rdx, r14
mov r8d, dword [rbp + 0x12c]
mov r9, r12
call fcn.00551d50
test eax, eax
je 0x558462
mov rsi, qword [rsi]
test rsi, rsi
jne 0x557e70
jmp 0x55941d
mov dword [rbp + 0xdc], 0
cmp qword [rbp + 0x2e8], 0
je 0x557fa4
mov ecx, dword [rbp + 0x1ec]
mov edx, dword [rbp + 0x178]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
cmove edx, eax
mov dword [rbp + 0x178], edx
cmove ecx, eax
mov dword [rbp + 0x1ec], ecx
mov rax, qword [r12 + 0x40]
sub rax, qword [r12 + 0x20]
mov qword [rbp + 0x158], rax
mov eax, ebx
and eax, 1
add eax, 0x71
mov word [r14], ax
mov word [r14 + 2], r10w
mov eax, 1
mov ecx, r10d
shl eax, cl
cmp r10d, 0x20
mov ecx, 1
cmovge eax, ecx
or dword [r12 + 0x80], eax
cmp r10d, dword [r12 + 0x7c]
jle 0x557f37
mov dword [r12 + 0x7c], r10d
sar qword [rbp + 0x158], 1
lea rax, [r14 + 4]
mov rcx, qword [r12 + 0x48]
test rcx, rcx
je 0x557f65
movzx edx, word [rcx + 8]
cmp r10d, edx
je 0x557f5f
mov rcx, qword [rcx]
test rcx, rcx
jne 0x557f4c
jmp 0x557f65
mov word [rcx + 0xa], 1
mov r15, r14
mov r14, rax
jmp 0x554d30
cmp r10d, dword [r12 + 0x74]
jg 0x55949f
movsxd rax, dword [r12 + 0x6c]
lea rdx, [r8 + rax*2 - 0xc8]
cmp rdx, qword [rbp + 0x158]
jbe 0x558029
mov r15, rcx
mov rax, qword [rbp + 0x158]
jmp 0x55811f
cmp dword [r12 + 0xa8], 0
je 0x55826e
mov rdi, r10
mov qword [rbp + 0x1c8], rsi
mov r12, qword [rbp + 0x1d0]
lea ecx, [r15 + 1]
cmp ecx, eax
jge 0x558973
mov rcx, qword [rbp + 0xc8]
lea r13, [rcx + 2]
mov rax, qword [rbp + 0x2e0]
movsxd rax, dword [rax + 0x64]
lea rbx, [rcx + rax*2]
mov esi, 1
lea rdx, [rbx + 2]
mov rcx, r13
call fcn.005b7300
test eax, eax
jne 0x558849
lea eax, [rsi + 1]
mov rcx, qword [rbp + 0x2e0]
mov rdx, rcx
movsxd rcx, dword [rdx + 0x64]
lea rbx, [rbx + rcx*2]
lea ecx, [r15 + rsi + 1]
cmp ecx, dword [rdx + 0x60]
mov esi, eax
jl 0x557fef
jmp 0x55884b
mov qword [rbp + 0xa0], rcx
mov qword [rbp + 0x178], r8
mov qword [rbp + 0x130], r10
mov qword [rbp + 0x1c8], rsi
lea esi, [rax + rax]
cmp esi, 0x32001
mov ecx, 0x32000
cmovge esi, ecx
cmp eax, 0x31fff
mov ecx, 0x48
jg 0x559255
mov edx, esi
sub edx, eax
cmp edx, 0x64
jl 0x559255
lea eax, [rsi + rsi]
movsxd rcx, eax
call qword [0x006855f8]
mov rbx, rax
test rbx, rbx
je 0x55936f
mov r12, qword [rbp + 0x2e0]
mov rdx, qword [r12 + 0x20]
movsxd r8, dword [r12 + 0x6c]
add r8, r8
mov rcx, rbx
call fcn.0054d240
mov rcx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x40]
sub rax, rcx
add rax, rbx
mov qword [r12 + 0x40], rax
cmp dword [r12 + 0x6c], 0x801
jl 0x5580d2
call qword [fcn.0054d370]
mov rax, qword [r12 + 0x40]
mov qword [r12 + 0x20], rbx
mov dword [r12 + 0x6c], esi
mov rcx, qword [rbp + 0x1d8]
mov dword [rcx], 0
mov r15, qword [r12 + 0x28]
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov rsi, qword [rbp + 0x1c8]
mov r10, qword [rbp + 0x130]
mov r8, qword [rbp + 0x178]
mov rcx, qword [rbp + 0xa0]
movsxd rdx, r10d
lea rbx, [rcx + rdx*2]
lea edx, [r14 + 2]
sub edx, r15d
shr edx, 1
mov word [rax], dx
add rax, 2
mov qword [r12 + 0x40], rax
jmp 0x558485
add ecx, 0x68
cmp r10d, 0xffffffff
mov word [r14], cx
mov rax, qword [rbp + 0x190]
mov word [r14 + 2], ax
mov eax, 0
cmovne ax, r10w
mov word [r14 + 4], ax
mov rax, qword [rbp + 0x1d0]
add r14, 6
test edi, edi
jne 0x557b7b
jmp 0x557d4b
lea ecx, [r10 - 0x1d]
cmp ecx, 5
ja 0x5581e3
mov rdx, qword [rbp + 0x1f0]
add rdx, 2
movsxd rax, ecx
lea rcx, str.PNd
mov rax, qword [rcx + rax*8]
add rax, 0xfffffffffffffffe
mov qword [rbp + 0x1f0], rax
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov eax, dword [rbp + 0x178]
mov dword [rbp + 0x1ec], eax
mov rax, rdx
jmp 0x554d37
cmp eax, 0x11
mov r15d, 0
cmovb r15, r14
mov rax, qword [r12 + 0x40]
sub rax, qword [r12 + 0x20]
sar rax, 1
mov qword [rbp + 0x158], rax
mov eax, r10d
xor eax, 0xe
or eax, dword [rbp + 0x12c]
mov ax, 0xd
cmove r10w, ax
mov word [r14], r10w
add r14, 2
mov eax, dword [rbp + 0x1b0]
mov dword [rbp + 0x1a0], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x130], eax
mov eax, dword [rbp + 0x1a8]
mov dword [rbp + 0x1a4], eax
mov eax, dword [rbp + 0x178]
mov dword [rbp + 0x1ec], eax
jmp 0x554d30
mov eax, dword [rbp + 0x1b8]
mov dword [rbp + 0xdc], eax
mov rsi, qword [rbp + 0x1c8]
jmp 0x557dc0
mov r12, qword [rbp + 0x2e0]
jmp 0x557ec5
add rdx, 2
mov qword [rbp + 0x1f0], rdx
mov ebx, 0x83
xor r9d, r9d
xor r10d, r10d
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x55535b
mov esi, 1
mov eax, 1
mov r9, qword [rbp + 0x1e0]
lea rcx, [rax + rax*2]
test r15d, r15d
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
je 0x558303
add rax, 0xfffffffffffffffe
cmp rax, 3
jbe 0x559541
mov rax, qword [rbp + 0x2e8]
test rax, rax
lea rdx, [0x00685a40]
mov esi, dword [rdx + rcx*4 + 8]
mov word [r14], si
je 0x55831e
add dword [rax], r15d
mov word [r14 + 2], 0
add r14, 4
jmp 0x55834c
cmp esi, 1
jbe 0x5595a8
lea rax, [0x00685a40]
movzx eax, word [rax + rcx*4 + 4]
mov word [r14], ax
jmp 0x558355
lea rcx, [r14 + 4]
mov word [r14 + 2], r15w
lea eax, [r15 + r15]
movsxd r8, eax
mov rdx, rdi
call fcn.0054d240
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
movsxd rax, r15d
lea r14, [r14 + rax*2 + 4]
movzx eax, si
mov word [r14], 0
add r14, 2
lea ecx, [rax - 0x96]
movzx ecx, cx
cmp ecx, 4
jae 0x558389
mov dword [r12 + 0xa0], 1
xor r15d, r15d
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x554d37
add eax, 0xffffff66
movzx eax, ax
cmp eax, 1
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
ja 0x5583b2
mov rcx, rax
mov rax, qword [rbp + 0x50]
or byte [rax + 1], 0x10
mov rax, rcx
xor r15d, r15d
jmp 0x554d37
test r15d, r15d
jne 0x559541
mov rax, qword [rbp + 0x2e0]
mov dword [rax + 0x9c], 1
mov rax, qword [rax + 0x48]
test rax, rax
je 0x558409
mov rdx, qword [rbp + 0x2e8]
test rdx, rdx
je 0x5583ee
add dword [rdx], 3
jmp 0x558401
mov word [r14], 0xa0
movzx ecx, word [rax + 8]
mov word [r14 + 2], cx
add r14, 4
mov rax, qword [rax]
test rax, rax
jne 0x5583e4
xor eax, eax
mov r12, qword [rbp + 0x2e0]
cmp dword [r12 + 0x8c], 0
setg al
or eax, 0x9e
mov word [r14], ax
add r14, 2
mov edx, dword [rbp + 0x1ec]
cmp edx, 0xfffffffe
mov ecx, 0xffffffff
cmove edx, ecx
mov dword [rbp + 0x1ec], edx
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
jmp 0x558359
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov rsi, qword [rbp + 0x1c8]
mov r8, qword [rbp + 0x178]
mov rcx, r15
mov rdi, qword [rbp + 0x158]
sub rdi, r8
sar rdi, 1
mov qword [rbp + 0x158], rdi
mov word [r14], 0x75
sub ebx, ecx
shr ebx, 1
mov word [r14 + 2], bx
mov r15, r14
lea r14, [r14 + 4]
mov ecx, dword [rbp + 0x1ec]
cmp ecx, 0xfffffffe
mov eax, 0xffffffff
cmove ecx, eax
mov dword [rbp + 0xa0], 0
jmp 0x552f65
xor eax, eax
test r10d, r10d
setne al
mov r10d, eax
jmp 0x555d2d
mov qword [rbp + 0x1c8], rsi
movzx ecx, word [rax + 6]
cmp ecx, 0x3f
jne 0x55854b
movzx ecx, word [rax + 8]
cmp ecx, 0x43
jne 0x55854b
lea rdx, [rax + 0xa]
movabs rcx, 0x300000000
movabs r8, 0x100000000
movzx edi, word [rdx]
lea esi, [rdi - 0x30]
movzx esi, si
add rcx, r8
add rdx, 2
cmp esi, 0xa
jb 0x558513
movzx edx, di
sar rcx, 0x1f
mov rdi, rbx
add rcx, rdi
cmp edx, 0x29
cmove rdi, rcx
mov rbx, rdi
movzx ecx, word [rdi]
cmp ecx, 0x28
jne 0x559614
movzx ecx, word [rbx + 2]
cmp ecx, 0x3f
jne 0x55878f
movzx ecx, word [rbx + 4]
cmp ecx, 0x21
je 0x558587
movzx ecx, cx
cmp ecx, 0x3d
je 0x558587
cmp ecx, 0x3c
jne 0x55878f
movzx ecx, word [rbx + 6]
cmp ecx, 0x3d
je 0x558587
movzx ecx, cx
cmp ecx, 0x21
jne 0x55878f
mov r12, qword [rbp + 0x2e0]
mov dword [r12 + 0xb0], 1
mov ebx, 0x87
xor r9d, r9d
mov ecx, dword [rbp + 0x1fc]
xor r10d, r10d
mov rsi, qword [rbp + 0x1c8]
jmp 0x55535b
movzx ecx, word [rax + 6]
cmp rcx, 0x21
je 0x5589fc
movzx edx, cx
cmp edx, 0x3d
jne 0x558a29
mov r12, qword [rbp + 0x2e0]
inc dword [r12 + 0x8c]
add rax, 8
mov qword [rbp + 0x1f0], rax
mov ebx, 0x7f
jmp 0x558a1b
inc dword [r12 + 0x8c]
add rax, 6
mov qword [rbp + 0x1f0], rax
mov ebx, 0x7d
jmp 0x558a1b
add rax, 6
mov qword [rbp + 0x1f0], rax
mov ebx, 0x81
jmp 0x558a1b
mov r8, rsi
lea rcx, [r14 + 2]
mov word [r14], 0x76
lea rdi, [rax + 6]
mov qword [rbp + 0x1f0], rdi
movzx esi, word [rax + 6]
mov edx, esi
add edx, 0xffffffd0
movzx edx, dx
xor ebx, ebx
cmp edx, 9
ja 0x558693
add rax, 8
xor ebx, ebx
lea ebx, [rbx + rbx*4]
movzx edx, si
lea edi, [rdx + rbx*2]
cmp edi, 0x130
jge 0x558c16
lea ebx, [rdx + rbx*2 - 0x30]
movzx esi, word [rax]
mov edx, esi
add edx, 0xffffffd0
movzx edx, dx
add rax, 2
cmp edx, 9
jbe 0x558658
add rax, 0xfffffffffffffffe
mov qword [rbp + 0x1f0], rax
mov rdi, rax
movzx eax, si
cmp eax, 0x29
jne 0x5589d4
mov word [r14 + 2], bx
mov rax, qword [rbp + 0x2e0]
sub edi, dword [rax + 0x30]
shr edi, 1
inc edi
mov word [r14 + 4], di
mov word [r14 + 6], 0
lea rcx, [r14 + 8]
xor r10d, r10d
jmp 0x558c30
mov rdi, rsi
lea rcx, [rax + 6]
mov rbx, rcx
mov qword [rbp + 0x1f0], rcx
movzx eax, word [rax + 6]
mov edx, eax
add edx, 0xffffffc3
movzx edx, dx
cmp edx, 2
jae 0x5589e6
movzx eax, ax
xor ecx, ecx
cmp eax, 0x3e
sete cl
mov dword [rbp + 0x1b8], ecx
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
mov rsi, rdi
jmp case.0x55505f.5
lea rcx, [rax + 6]
mov qword [rbp + 0x1f0], rcx
movzx eax, word [rax + 6]
xor r10d, r10d
cmp eax, 0x29
je 0x557dc0
jmp 0x5594e7
mov dword [r12 + 0xac], 1
mov dword [rbp + 0x150], 1
add rax, 6
mov qword [rbp + 0x1f0], rax
mov ebx, 0x83
xor r9d, r9d
mov ecx, dword [rbp + 0x1fc]
mov r10d, dword [rbp + 0x150]
jmp 0x55535b
mov esi, 5
mov eax, 5
jmp 0x5589ba
lea r15, [rax + 6]
mov word [r14 + 4], 0x8d
mov qword [rbp + 0x1f0], r15
movzx ecx, word [r15]
mov edx, ecx
add edx, 0xffffffd9
movzx edx, dx
cmp edx, 0x2b
ja case.0x5587c4.1
lea rbx, [0x005599e4]
movsxd rdx, dword [rbx + rdx*4]
add rdx, rbx
jmp rdx
movzx r8d, cx
lea r15, [rax + 8]
mov qword [rbp + 0x1f0], r15
mov cx, word [rax + 8]
lea eax, [rcx - 0x30]
movzx eax, ax
mov bl, 1
mov dword [rbp + 0x150], 2
mov r12d, 0xffffffff
cmp eax, 9
ja 0x558d33
add r15, 2
xor eax, eax
cmp eax, 0xccccccc
jge 0x5595ba
movzx ecx, cx
lea eax, [rax + rax*4]
lea eax, [rcx + rax*2 - 0x30]
mov qword [rbp + 0x1f0], r15
movzx ecx, word [r15]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
add r15, 2
cmp edx, 0xa
jb 0x558800
add r15, 0xfffffffffffffffe
xor edx, edx
mov qword [rbp + 0x1b8], rdx
mov rdx, r15
xor r15d, r15d
jmp 0x558e7a
mov eax, esi
cmp eax, 2
jl 0x558973
mov edx, dword [rbp + 0x1ec]
cmp edx, 0xfffffffe
mov ecx, 0xffffffff
cmove edx, ecx
mov dword [rbp + 0x1ec], edx
mov rcx, qword [rbp + 0x2e0]
mov rdx, qword [rcx + 0x40]
sub rdx, qword [rcx + 0x20]
sar rdx, 1
mov qword [rbp + 0x158], rdx
mov ecx, dword [rbp + 0x1fc]
and ecx, 1
add ecx, 0x73
mov word [r14], cx
mov word [r14 + 2], r15w
mov word [r14 + 4], ax
lea r8, [r14 + 6]
mov dword [rbp + 0xdc], 0
cmp qword [rbp + 0xc8], rbx
jae 0x558bed
mov rax, qword [rbp + 0x2e0]
mov r11, qword [rax + 0x48]
movsxd r9, dword [rax + 0x64]
mov esi, dword [rax + 0x80]
mov r10d, dword [rax + 0x7c]
mov rax, qword [rbp + 0xc8]
movzx ecx, word [rax]
mov edi, 1
shl edi, cl
cmp ecx, 0x20
mov edx, 1
cmovae edi, edx
cmp r10d, ecx
jge 0x558900
mov rdx, qword [rbp + 0x2e0]
mov dword [rdx + 0x7c], ecx
mov r10d, ecx
test r11, r11
je 0x55891e
mov rdx, r11
cmp word [rdx + 8], cx
je 0x558918
mov rdx, qword [rdx]
test rdx, rdx
jne 0x558908
jmp 0x55891e
mov word [rdx + 0xa], 1
or esi, edi
lea rax, [rax + r9*2]
cmp rax, rbx
jb 0x5588d9
mov qword [rbp + 0xc8], rax
mov rax, qword [rbp + 0x2e0]
mov dword [rax + 0x80], esi
mov r15, r14
mov r14, r8
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov rcx, r12
mov r12, rax
mov rax, rcx
mov rsi, qword [rbp + 0x1c8]
jmp 0x554d37
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
mov ecx, dword [rbp + 0x1ec]
mov edx, dword [rbp + 0x178]
mov r10, rdi
jmp 0x557ed1
mov esi, 7
mov eax, 7
mov r13, qword [rbp + 0x198]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
jmp 0x5582b4
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x27
jmp 0x558c2a
mov r10d, 0x3e
movzx eax, ax
cmp eax, 0x3c
mov rsi, rdi
je case.0x55505f.6
jmp 0x5595f0
mov r12, qword [rbp + 0x2e0]
inc dword [r12 + 0x8c]
add rax, 8
mov qword [rbp + 0x1f0], rax
mov ebx, 0x80
xor r9d, r9d
mov ecx, dword [rbp + 0x1fc]
jmp 0x555358
cmp ecx, 0xff
mov rdx, qword [rbp + 0x2e0]
ja 0x55963f
mov rdx, qword [rdx + 0x18]
mov r10d, 0x3e
test byte [rdx + rcx], 0x10
je 0x55963f
mov qword [rbp + 0x1c8], rsi
lea r12, [rbx + 2]
mov qword [rbp + 0x1f0], r12
mov rdx, rbx
movzx eax, word [rbx + 2]
lea ecx, [rax - 0x30]
movzx ecx, cx
cmp ecx, 9
jbe 0x55946c
movzx ecx, ax
cmp ecx, 0xff
ja 0x558ac9
mov rcx, qword [rbp + 0x2e0]
mov rcx, qword [rcx + 0x18]
mov rbx, rdx
add rbx, 4
movzx edx, ax
test byte [rcx + rdx], 0x10
je 0x558ab3
mov qword [rbp + 0x1f0], rbx
movzx eax, word [rbx]
add rbx, 2
cmp eax, 0x100
jb 0x558a95
add rbx, 0xfffffffffffffffe
mov rcx, rbx
cmp qword [rbp + 0x2e8], 0
jne 0x558ada
jmp 0x558d12
mov rcx, r12
cmp qword [rbp + 0x2e8], 0
je 0x558d12
movzx eax, ax
cmp r10d, eax
jne 0x5594b1
mov rax, qword [rbp + 0x2e0]
mov eax, dword [rax + 0x60]
cmp eax, 0x2710
jge 0x559602
mov rbx, rcx
sub rbx, r12
shr rbx, 1
mov rcx, qword [rbp + 0x2e0]
mov rdx, rcx
mov r13d, dword [rdx + 0x70]
mov rcx, rbx
mov qword [rbp + 0x150], rcx
lea ecx, [rbx + 2]
cmp ecx, dword [rdx + 0x64]
jle 0x558b3b
mov rdx, qword [rbp + 0x2e0]
mov dword [rdx + 0x64], ecx
cmp dword [rbp + 0x150], 0x21
jge 0x5594d5
inc r13d
test eax, eax
jle 0x558bc0
mov rdi, qword [rbp + 0x2e0]
mov r15, qword [rdi + 0x50]
add r15, 0xc
xor esi, esi
mov rbx, qword [rbp + 0x150]
jmp 0x558b8f
cmp dword [r15], r13d
je 0x558f83
test dword [rbp + 0x1fc], 0x80000
je 0x5595de
mov rdi, qword [rbp + 0x2e0]
mov dword [rdi + 0xa8], 1
mov rbx, qword [rbp + 0x150]
jmp 0x558bb1
cmp dword [r15 - 4], ebx
jne 0x558ba8
mov rdx, qword [r15 - 0xc]
mov rcx, r12
mov r8d, ebx
call fcn.005b73b0
test eax, eax
je 0x558b5c
cmp dword [r15], r13d
je 0x559596
inc esi
mov eax, dword [rdi + 0x60]
add r15, 0x10
cmp esi, eax
jl 0x558b8f
jmp 0x558bc2
xor esi, esi
cmp esi, eax
jl 0x558d12
mov rcx, qword [rbp + 0x2e0]
movsxd rsi, dword [rcx + 0x68]
cmp eax, esi
jge 0x558c88
mov rcx, qword [rbp + 0x2e0]
mov rbx, qword [rcx + 0x50]
jmp 0x558ce9
mov r15, r14
mov r14, r8
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov rax, r12
jmp 0x55761e
mov qword [rbp + 0x1f0], rax
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x26
mov r10d, 6
test r10d, r10d
mov eax, 4
cmove r10d, eax
mov eax, 0
cmove r15, rax
mov eax, 1
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0xe0], r14
mov r14, rcx
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
mov rsi, r8
test r10d, r10d
jne 0x5575a4
jmp 0x552c70
mov rcx, rsi
shl rcx, 5
call qword [0x006855f8]
mov rbx, rax
test rbx, rbx
je 0x55965c
add esi, esi
mov rax, qword [rbp + 0x2e0]
mov rdi, rax
mov rdx, qword [rdi + 0x50]
movsxd r8, dword [rdi + 0x68]
shl r8, 4
mov rcx, rbx
call fcn.0054d240
cmp dword [rdi + 0x68], 0x15
jl 0x558cd8
mov rax, qword [rbp + 0x2e0]
mov rcx, qword [rax + 0x50]
call qword [fcn.0054d370]
mov rax, qword [rbp + 0x2e0]
mov qword [rax + 0x50], rbx
mov dword [rax + 0x68], esi
mov eax, dword [rax + 0x60]
cdqe
mov rcx, rax
shl rcx, 4
mov qword [rbx + rcx], r12
mov rdx, qword [rbp + 0x150]
mov dword [rbx + rcx + 8], edx
mov dword [rbx + rcx + 0xc], r13d
inc eax
mov rcx, qword [rbp + 0x2e0]
mov dword [rcx + 0x60], eax
add qword [rbp + 0x1f0], 2
mov ecx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x555156
xor eax, eax
mov rdx, r15
xor r15d, r15d
xor edi, edi
mov qword [rbp + 0x1b8], rdi
jmp 0x558e7a
add rax, 8
mov qword [rbp + 0x1f0], rax
mov ecx, 0x27
jmp 0x558db1
lea eax, [rcx - 0x30]
movzx eax, ax
xor r8d, r8d
cmp eax, 9
mov eax, 0
mov qword [rbp + 0x1b8], rax
jbe 0x5587d9
jmp 0x558dbf
add rax, 8
mov qword [rbp + 0x1f0], rax
mov ecx, 0x3e
jmp 0x558db1
movzx ecx, word [rax + 8]
cmp ecx, 0x26
jne 0x558f71
add rax, 0xa
mov qword [rbp + 0x1f0], rax
mov word [r14 + 4], 0x8f
mov ecx, 0xffffffff
mov qword [rbp + 0x1b8], rcx
mov r15, rax
mov cx, word [r15]
lea eax, [rcx - 0x30]
movzx eax, ax
cmp eax, 9
jbe 0x55946c
movzx eax, cx
cmp eax, 0xff
ja 0x559614
mov rax, qword [rbp + 0x2e0]
mov rax, qword [rax + 0x18]
movzx ecx, cx
test byte [rax + rcx], 0x10
je 0x559614
lea rdx, [r15 + 2]
mov qword [rbp + 0x1f0], rdx
movzx ecx, word [r15 + 2]
cmp ecx, 0xff
ja 0x558e33
lea rdx, [r15 + 4]
movzx ebx, cx
test byte [rax + rbx], 0x10
je 0x558e2f
mov qword [rbp + 0x1f0], rdx
movzx ecx, word [rdx]
add rdx, 2
cmp ecx, 0xff
jbe 0x558e10
add rdx, 0xfffffffffffffffe
mov r12, rdx
sub r12, r15
shr r12, 1
mov r8d, 0xffffffff
cmp dword [rbp + 0x1b8], 0
jle 0x558e6d
lea rbx, [rdx + 2]
mov qword [rbp + 0x1f0], rbx
cmp cx, word [rbp + 0x1b8]
jne 0x559626
mov cx, word [rbx]
xor eax, eax
mov rdx, rbx
jmp 0x558e6f
xor eax, eax
mov ebx, dword [rbp + 0x4c]
mov dword [rbp + 0x150], ebx
xor ebx, ebx
lea rdi, [rdx + 2]
mov qword [rbp + 0x1f0], rdi
movzx ecx, cx
cmp ecx, 0x29
jne 0x559626
cmp qword [rbp + 0x2e8], 0
je 0x558ec0
mov ecx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
mov ebx, 0x87
mov r9d, dword [rbp + 0x150]
jmp 0x555358
test bl, bl
je 0x558eff
test eax, eax
jle 0x55966e
test r8d, r8d
je 0x559026
cmp r8d, 0x2d
jne 0x559014
mov ecx, 1
sub ecx, eax
mov rax, qword [rbp + 0x2e0]
add ecx, dword [rax + 0x70]
mov eax, ecx
test eax, eax
jg 0x559026
jmp 0x55949f
mov rax, qword [rbp + 0x2e0]
mov rcx, rax
mov rax, qword [rcx + 0x58]
mov qword [rbp + 0xc8], rax
mov eax, dword [rcx + 0x60]
test eax, eax
jle 0x558f9a
lea eax, [r12 + 1]
movsxd rsi, eax
xor ebx, ebx
mov rdi, qword [rbp + 0xc8]
lea rdx, [rdi + 2]
mov rcx, r15
mov r8d, r12d
call fcn.005b73b0
test eax, eax
jne 0x558f4a
cmp word [rdi + rsi*2], 0
je 0x55909e
mov rax, qword [rbp + 0x2e0]
mov rcx, rax
movsxd rax, dword [rcx + 0x64]
lea rdi, [rdi + rax*2]
mov qword [rbp + 0xc8], rdi
inc ebx
mov eax, dword [rcx + 0x60]
cmp ebx, eax
jl 0x558f25
jmp 0x5590a8
xor eax, eax
mov qword [rbp + 0x1b8], rax
mov cx, 0x52
jmp 0x558ddc
mov rax, qword [rbp + 0x2e0]
mov eax, dword [rax + 0x60]
cmp esi, eax
jge 0x558bca
jmp 0x558d12
xor ebx, ebx
cmp ebx, eax
jl 0x5590b0
cmp dword [rbp + 0x1b8], 0
jne 0x55949f
movzx eax, word [r15]
cmp eax, 0x52
jne 0x559062
cmp r12d, 1
jle 0x559148
movsxd rcx, r12d
xor eax, eax
mov edx, 1
movzx ebx, word [r15 + rdx*2]
lea edi, [rbx - 0x30]
movzx edi, di
cmp edi, 0xa
jae 0x55949f
cmp eax, 0xccccccc
jge 0x5593f9
lea eax, [rax + rax*4]
lea eax, [rbx + rax*2 - 0x30]
inc rdx
cmp rdx, rcx
jl 0x558fd2
test eax, eax
mov word [r14 + 4], 0x8f
jne 0x559153
jmp 0x55914f
mov rcx, qword [rbp + 0x2e0]
add eax, dword [rcx + 0x70]
test eax, eax
jle 0x55949f
mov rcx, qword [rbp + 0x2e0]
cmp eax, dword [rcx + 0x74]
jg 0x55949f
mov word [r14 + 6], ax
mov rcx, qword [rbp + 0x2e0]
cmp eax, dword [rcx + 0x7c]
jle 0x558e9b
mov r12, qword [rbp + 0x2e0]
mov dword [r12 + 0x7c], eax
mov ecx, dword [rbp + 0x1fc]
jmp 0x558ea8
cmp r12d, 6
jne 0x55949f
mov r8d, 6
mov rcx, r15
lea rdx, str.DEFINE
call fcn.005b73f0
test eax, eax
jne 0x55949f
mov word [r14 + 4], 0x91
xor r10d, r10d
mov r9d, 1
jmp 0x559223
mov rax, qword [rbp + 0x2e0]
mov eax, dword [rax + 0x60]
cmp ebx, eax
jge 0x558fa4
mov rcx, qword [rbp + 0xc8]
movzx ecx, word [rcx]
mov word [rbp + 0x1b8], cx
movzx ecx, cx
mov rdx, qword [rbp + 0x2e0]
cmp dword [rdx + 0x7c], ecx
jge 0x5590da
mov rdx, qword [rbp + 0x2e0]
mov dword [rdx + 0x7c], ecx
lea ecx, [rbx + 1]
cmp ecx, eax
jge 0x559165
movsxd rdi, r12d
mov esi, 1
mov rax, qword [rbp + 0xc8]
mov rcx, qword [rbp + 0x2e0]
movsxd rcx, dword [rcx + 0x64]
lea rdx, [rax + rcx*2 + 2]
lea rax, [rax + rcx*2]
mov qword [rbp + 0xc8], rax
mov rcx, r15
mov r13, rdx
mov r8d, r12d
call fcn.005b73b0
test eax, eax
jne 0x55915a
cmp word [r13 + rdi*2], 0
jne 0x5591fc
lea eax, [rsi + 1]
lea ecx, [rbx + rsi + 1]
mov rdx, qword [rbp + 0x2e0]
cmp ecx, dword [rdx + 0x60]
mov esi, eax
jl 0x5590ed
jmp 0x5591fe
mov word [r14 + 4], 0x8f
mov ax, 0xffff
mov word [r14 + 6], ax
jmp 0x559171
mov eax, esi
cmp eax, 2
jge 0x559207
movzx eax, word [rbp + 0x1b8]
mov word [r14 + 6], ax
xor r10d, r10d
mov ecx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
mov ebx, 0x87
mov r9d, dword [rbp + 0x150]
jmp 0x55535b
add ecx, 0xffffffd0
movzx ecx, cx
cmp ecx, 9
ja 0x5591c2
movzx ecx, word [rax]
lea edx, [rcx - 0x30]
movzx edx, dx
add rax, 2
cmp edx, 0xa
jb 0x5591a4
movzx eax, cx
cmp eax, 0x7d
je 0x5550e7
mov word [r14], 0x9d
add r14, 2
xor r15d, r15d
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
mov rax, rdi
mov r12, qword [rbp + 0x2e0]
mov rsi, r8
jmp 0x554d37
mov eax, esi
cmp eax, 2
jl 0x559165
mov word [r14 + 6], bx
mov word [r14 + 8], ax
mov r9d, dword [rbp + 0x150]
inc r9d
inc word [r14 + 4]
xor r10d, r10d
mov ecx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
mov ebx, 0x87
jmp 0x55535b
lea rax, [rcx + rdx*2]
cmp r14, rax
mov eax, 0x57
mov ecx, 0x34
cmovb ecx, eax
mov rax, qword [rbp + 0x1d8]
mov dword [rax], ecx
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x34
jmp 0x5592f9
mov rdx, qword [rbp + 0x2e8]
test rdx, rdx
mov rax, qword [rbp + 0x2b0]
mov ecx, dword [rbp + 0x1c4]
mov dword [rax], ecx
mov rax, qword [rbp + 0x2b8]
mov ecx, dword [rbp + 0x1ec]
mov dword [rax], ecx
mov rax, qword [rbp + 0x2c0]
mov ecx, dword [rbp + 0x1a8]
mov dword [rax], ecx
mov rax, qword [rbp + 0x2c8]
mov ecx, dword [rbp + 0x1b0]
mov dword [rax], ecx
mov rax, qword [rbp]
mov qword [rax], r14
mov rax, qword [rbp + 0x1f0]
mov rcx, qword [rbp + 0x28]
mov qword [rcx], rax
je 0x559359
movsxd rax, dword [rdx]
mov ecx, 0x7fffffeb
sub rcx, rax
sub r14, rsi
sar r14, 1
cmp r14, rcx
jle 0x559353
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x14
mov rax, qword [rbp + 0x1f0]
mov rcx, qword [rbp + 0x28]
mov qword [rcx], rax
xor eax, eax
movaps xmm6, xmmword [rbp + 0x200]
movaps xmm7, xmmword [rbp + 0x210]
movaps xmm8, xmmword [rbp + 0x220]
movaps xmm9, xmmword [rbp + 0x230]
add rsp, 0x2c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movzx eax, ax
cmp eax, 0x3a
mov eax, 0xd
mov ecx, 0x1f
cmove ecx, eax
jmp 0x559255
add r14d, eax
mov dword [rdx], r14d
mov eax, 1
jmp 0x559309
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x47
jmp 0x5592f9
mov ecx, 0x15
jmp 0x559255
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3c
jmp 0x5592f9
mov ecx, 5
mov rdx, qword [rbp + 0x1d8]
mov dword [rdx], ecx
mov qword [rbp + 0x1f0], rax
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 9
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 6
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x12
jmp 0x5592f9
add rbx, 0xfffffffffffffffe
movzx eax, word [rbx + 2]
add rbx, 2
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 0xa
jb 0x5593df
mov qword [rbp + 0x1f0], rbx
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3d
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x40
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x28
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x52
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xe
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xc
mov qword [rbp + 0x1f0], rdx
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x54
jmp 0x5592f9
cmp r10d, 6
je 0x5592f9
jmp 0x559309
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x45
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xf
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x2a
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3e
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x30
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1d
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x36
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1b
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xb
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3f
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3b
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3a
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 7
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x4b
jmp 0x5592f9
mov ecx, 4
mov rax, r8
jmp 0x559390
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x41
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x42
jmp 0x5592f9
add r15, 0xfffffffffffffffe
movzx eax, word [r15 + 2]
add r15, 2
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 0xa
jb 0x5595be
mov qword [rbp + 0x1f0], r15
jmp 0x5593f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x2b
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x29
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x31
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1c
jmp 0x5592f9
mov qword [rbp + 0x1f0], rdx
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1a
jmp 0x5592f9
add rax, 6
mov qword [rbp + 0x1f0], rax
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x18
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x15
jmp 0x5592f9
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x23
jmp 0x5592f9