Function at 0x4f48d0
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 [0x0059da20]
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 0x4f4ab0
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
add rax, 0xe
mov qword [rbp + 0x1f0], rcx
jmp 0x4f4ab0
lea rcx, str._b__w_
jmp 0x4f4a7e
movzx r10d, word [rcx]
test rax, rax
je 0x4f4acc
test r10w, r10w
jne 0x4f4acc
mov qword [rbp + 0x1f0], rax
movzx r10d, word [rax]
xor eax, eax
cmp qword [rbp + 0x2e8], 0
mov qword [rbp + 0x1d0], rax
je 0x4f4c10
mov rcx, qword [r12 + 0x20]
movsxd rdx, dword [r12 + 0x6c]
lea rbx, [rcx + rdx*2 - 0xc8]
cmp r14, rbx
ja 0x4fb761
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 0x4fb80c
add edx, ecx
mov dword [rdi], edx
test r15, r15
je 0x4f4c30
mov r8, r15
sub r8, r13
jbe 0x4f4c3e
mov rbx, r14
sub rbx, r15
je 0x4f4d38
cmp rbx, 0x20
jb 0x4f4b6d
lea rcx, [r15 + rbx]
cmp rcx, r13
jbe 0x4f4c46
lea rcx, [r13 + rbx]
cmp rcx, r15
jbe 0x4f4c46
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 0x4f4ba3
neg rcx
nop
movzx eax, byte [rbx]
inc rbx
mov byte [rsi], al
inc rsi
inc rdx
inc rcx
jne 0x4f4b90
cmp rdi, 7
jb 0x4f4d38
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 0x4f4bc0
jmp 0x4f4d38
movsxd rax, dword [r12 + 0x6c]
add rax, rax
add rax, qword [r12 + 0x20]
cmp qword [r12 + 0x40], rax
jbe 0x4f4d50
jmp 0x4fb783
xor r15d, r15d
mov rsi, r13
mov r14, r13
jmp 0x4f4d50
mov rsi, r14
jmp 0x4f4d50
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 0x4f4c74
xor ecx, ecx
test rsi, rsi
jne 0x4f4cf2
jmp 0x4f4d2f
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 0x4f4c80
test rsi, rsi
je 0x4f4d2f
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 0x4f4d10
cmp rbx, rdx
jne 0x4f50bc
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 0x4f4d98
cmp ebx, 0x5c
jne 0x4f4d72
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x45
je 0x4f50ca
cmp dword [rbp + 0x160], 0
jne 0x4f5071
cmp ebx, 0x5c
jne 0x4f4d98
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x51
je 0x4f517b
test byte [rbp + 0x1fc], 8
je 0x4f4f1b
cmp ebx, 0xff
ja 0x4f4f1b
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 0x4f4e00
mov qword [rbp + 0x1f0], rcx
movzx ebx, word [rcx]
add rcx, 2
cmp ebx, 0x100
jb 0x4f4dd0
jmp 0x4f4f00
cmp ebx, 0x23
jne 0x4f4f00
mov qword [rbp + 0x1f0], rcx
mov ax, word [rcx]
mov ebx, 0x23
jmp 0x4f4e23
mov ax, word [rcx]
test ax, ax
je 0x4f4f04
mov edx, dword [r12 + 0xb4]
test edx, edx
mov r8, qword [r12 + 0x38]
je 0x4f4e70
cmp rcx, r8
jae 0x4f4eb0
mov eax, dword [rbp + 0x12c]
mov dword [rsp + 0x20], eax
call fcn.00559650
test eax, eax
jne 0x4f5054
mov rdi, qword [rbp + 0x1f0]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
jmp 0x4f4eb3
movsxd rdx, dword [r9]
lea rdi, [rdx + rdx]
sub r8, rdi
cmp rcx, r8
ja 0x4f4eb0
cmp ax, word [r12 + 0xbc]
jne 0x4f4eb0
cmp edx, 1
je 0x4f519b
movzx eax, word [rcx + 2]
cmp ax, word [r12 + 0xbe]
mov rdi, rcx
jne 0x4f4eb3
jmp 0x4f51a0
mov rdi, rcx
lea rcx, [rdi + 2]
test r11d, r11d
mov qword [rbp + 0x1f0], rcx
je 0x4f4e20
movzx eax, word [rcx]
mov edx, eax
and edx, 0xfc00
cmp edx, 0xdc00
jne 0x4f4e23
add rdi, 4
mov qword [rbp + 0x1f0], rdi
mov rcx, rdi
jmp 0x4f4e20
add rcx, 0xfffffffffffffffe
mov rax, qword [rbp + 0x1d0]
cmp rcx, r13
mov r13, qword [rbp + 0x198]
ja 0x4f4ab0
xor eax, eax
cmp ebx, 0x3e
jg 0x4f4fd8
lea ecx, [rbx - 0x2a]
cmp ecx, 2
jb 0x4f5044
cmp ebx, 0x28
jne 0x4f51f2
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x3f
jne 0x4f4f58
movzx ecx, word [rax + 4]
cmp ecx, 0x23
je 0x4f6a2d
xor eax, eax
cmp qword [rbp + 0x1d0], 0
jne 0x4f5200
cmp qword [rbp + 0xe0], 0
je 0x4f5200
test al, al
jne 0x4f5200
mov rdx, qword [rbp + 0xa8]
lea ecx, [rdx - 1]
test edx, edx
mov edx, 0
cmovg rdx, qword [rbp + 0xe0]
jg 0x4f4fcc
cmp qword [rbp + 0x2e8], 0
jne 0x4f4fcc
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 0x4f5207
cmp ebx, 0x3f
je 0x4f5044
cmp ebx, 0x7b
jne 0x4f51f2
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
add ecx, 0xffffffd0
movzx edx, cx
xor ecx, ecx
cmp edx, 9
ja 0x4f51ed
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 0x4f5010
mov ecx, 1
movzx edx, dx
cmp edx, 0x2c
je 0x4f51b3
cmp edx, 0x7d
je 0x4f51ed
xor ecx, ecx
jmp 0x4f51ed
mov al, 1
cmp ebx, 0x7c
jbe 0x4f526d
jmp case.0x4f527d.1
mov r9, qword [rbp + 0x1e0]
mov edx, dword [r9]
mov rcx, qword [rbp + 0x1f0]
mov r11d, dword [rbp + 0x1f8]
jmp 0x4f51a0
cmp qword [rbp + 0x2e8], 0
jne 0x4f50a6
cmp qword [rbp + 0xe0], 0
je 0x4f50a6
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 0x4f50e4
xor eax, eax
mov qword [rbp + 0xe0], rax
jmp case.0x4f527d.1
lea rbx, [r15 + rdx]
lea rsi, [r13 + rdx]
jmp 0x4f4b75
add rax, 2
mov qword [rbp + 0x1f0], rax
mov dword [rbp + 0x160], 0
jmp 0x4f5190
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 0x4f6e07
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x4f6e07
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 0x4f5169
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 0x4f6e1b
add rax, 2
mov qword [rbp + 0x1f0], rax
mov dword [rbp + 0x160], 1
mov ebx, dword [rbp + 0x1fc]
jmp 0x4f7250
mov edx, 1
movsxd rax, edx
lea rcx, [rcx + rax*2]
mov qword [rbp + 0x1f0], rcx
jmp 0x4f4f04
movzx edx, word [rax - 2]
cmp edx, 0x7d
je 0x4f51ed
add edx, 0xffffffd0
movzx ecx, dx
cmp ecx, 9
mov ecx, 0
ja 0x4f51ed
nop dword [rax]
movzx ecx, word [rax]
lea edx, [rcx - 0x30]
movzx edx, dx
add rax, 2
cmp edx, 0xa
jb 0x4f51d0
movzx eax, cx
xor ecx, ecx
cmp eax, 0x7d
sete cl
test ecx, ecx
setne al
cmp qword [rbp + 0x1d0], 0
je 0x4f4f68
mov rcx, qword [rbp + 0xa8]
mov edx, dword [rbp + 0x1fc]
test dh, 0x40
sete dl
cmp qword [rbp + 0x1d0], 0
jne 0x4f525d
or dl, al
jne 0x4f525d
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 0x4f526d
jmp case.0x4f527d.1
mov qword [rbp + 0xa8], rcx
cmp ebx, 0x7c
ja case.0x4f527d.1
mov ecx, ebx
lea rdx, [0x004fbba0]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov rcx, qword [rbp + 0x1f0]
add rcx, 2
mov r8d, 6
lea rdx, [0x0059daac]
call fcn.00559910
test eax, eax
mov rax, qword [rbp + 0x1f0]
je 0x4f4a99
add rax, 2
mov r8d, 6
mov rcx, rax
lea rdx, str._:_:__
call fcn.00559910
test eax, eax
jne 0x4f52db
mov rax, qword [rbp + 0x1f0]
lea rcx, str._b___w_
jmp 0x4f4a7e
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 0x4f537b
movabs rdx, 0x2400400000000000
bt rdx, rax
jae 0x4f537b
lea rdx, [rcx + 4]
jmp 0x4f5324
add rdx, 2
movsx ebx, word [rdx]
movzx edi, bx
cmp ebx, 0x5b
jg 0x4f5340
cmp edi, 0x5b
jne 0x4f535e
cmp word [rdx + 2], ax
jne 0x4f5363
jmp 0x4f537b
cmp edi, 0x5c
jne 0x4f5376
movzx edi, word [rdx + 2]
and edi, 0xfffe
cmp edi, 0x5c
jne 0x4f5363
add rdx, 2
add rdx, 2
jmp 0x4f5324
test bx, bx
je 0x4f537b
cmp bx, ax
jne 0x4f5320
movzx ebx, word [rdx + 2]
cmp ebx, 0x5d
jne 0x4f5320
jmp 0x4fb85b
cmp edi, 0x5d
jne 0x4f5363
sar qword [rbp + 0x158], 1
xor ebx, ebx
jmp 0x4f5399
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 0x4f53d0
movzx eax, word [rcx + 4]
add rcx, 4
cmp eax, 0x45
jne 0x4f53f0
mov qword [rbp + 0x1f0], rcx
mov rdx, rcx
mov edi, ebx
jmp 0x4f5390
test ebx, ebx
jne 0x4f5434
mov edi, 1
movzx ecx, ax
cmp ecx, 0x5e
je 0x4f5390
jmp 0x4f5434
mov dword [rbp + 0x1b8], ebx
mov r8d, 3
lea rdx, [0x0059daba]
call fcn.00559910
test eax, eax
jne 0x4f54a2
mov rdx, qword [rbp + 0x1f0]
add rdx, 6
mov qword [rbp + 0x1f0], rdx
mov edi, dword [rbp + 0x1b8]
mov r11d, dword [rbp + 0x1f8]
jmp 0x4f5390
mov dword [rbp + 0x1b8], ebx
cmp r10d, 0x5d
mov r9, qword [rbp + 0x1e0]
jne 0x4f54d1
test byte [r12 + 0x93], 2
je 0x4f54b6
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 0x4f5190
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 0x4f54f3
lea rdi, [r14 + 6]
mov qword [rbp + 0x140], rdi
movaps xmmword [rbp + 0x110], xmm7
movaps xmmword [rbp + 0x100], xmm7
test ax, ax
je 0x4f7274
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 0x4f6530
lea ecx, [r15 - 6]
cmp ecx, 0x1c
ja case.0x4f558e.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, [0x004fc2bc]
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.0x4f6745.25
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x5c
jne 0x4f56f1
movzx ecx, word [rax + 4]
cmp ecx, 0x45
jne 0x4f56f1
add rax, 4
mov qword [rbp + 0x1f0], rax
jmp case.0x4f6745.25
movzx ecx, cx
cmp ecx, 0x3a
jne 0x4f56fc
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 0x4f5646
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, [0x0059dac5]
movzx esi, byte [rdi + rax]
cmp esi, r8d
jne 0x4f56ba
mov rcx, rbx
mov rdx, r13
mov rbx, r8
call fcn.00559910
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 0x4f595e
lea r13, [r13 + rsi + 1]
inc rdi
cmp rdi, 0xe
jne 0x4f5676
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 0x4f571f
mov r8d, 1
jmp case.0x4f6745.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 0x4f6007
add rdi, 0xfffffffffffffff8
xor ecx, ecx
jmp 0x4f5755
mov ebx, 1
test si, si
jne 0x4f68d0
jmp 0x4f68ec
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 0x4f57a7
mov edi, ecx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x4f57a7
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 0x4f5838
mov r8d, ebx
cmp ecx, r10d
jb 0x4f5fdb
je 0x4f68f9
mov rdi, rdx
cmp ecx, 0xd
je 0x4f57d5
cmp ecx, 0xa
jne 0x4f57dd
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.004fdb20
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 0x4f5945
cmp ecx, 0x5b
mov r8d, ebx
je 0x4f58a5
cmp ecx, 0x5c
jne 0x4f5fd2
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.004fc7f0
mov r10d, 6
cmp dword [rsi], 0
je 0x4f5a4a
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov rax, r15
mov rsi, r13
jmp 0x4f5945
movzx r8d, word [rax + 2]
mov ecx, 0x5b
cmp r8, 0x3d
ja 0x4f57b6
movabs rdi, 0x2400400000000000
bt rdi, r8
jae 0x4f57b6
add rax, 4
jmp 0x4f58d7
add rax, 2
movsx edi, word [rax]
movzx esi, di
cmp edi, 0x5b
jg 0x4f58f0
cmp esi, 0x5b
jne 0x4f590e
cmp word [rax + 2], r8w
jne 0x4f591a
jmp 0x4f5953
cmp esi, 0x5c
jne 0x4f5915
movzx esi, word [rax + 2]
and esi, 0xfffe
cmp esi, 0x5c
jne 0x4f591a
add rax, 2
add rax, 2
jmp 0x4f58d7
test di, di
jne 0x4f591a
jmp 0x4f5953
cmp esi, 0x5d
je 0x4f5953
cmp di, r8w
mov rdx, r15
mov rsi, r13
jne 0x4f58d3
movzx edi, word [rax + 2]
cmp edi, 0x5d
jne 0x4f58d3
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x53
mov r10d, 6
mov rax, rdx
mov edx, dword [rbp + 0x170]
mov r8d, ebx
jmp 0x4f5ff7
mov rdx, r15
mov rsi, r13
jmp 0x4f57b6
test edi, edi
js 0x4f56c8
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 0x4f604b
lea eax, [rsi + rsi*2]
movsxd rcx, eax
lea rax, [0x0059db40]
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 0x4f6431
lea rax, [0x0059db40]
mov r15d, dword [rax + rcx*4 + 4]
inc rcx
movabs rdi, 0x12492490494
shr rdi, cl
movabs rax, 0x2db6db6fb6b
bt rax, r8
jb 0x4f631a
test dil, 1
jne 0x4f63cc
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 0x4f6431
cmp eax, 5
mov r9, qword [rbp + 0x1e0]
mov r8d, ebx
je 0x4f5fb6
test eax, eax
mov r11d, dword [rbp + 0x1f8]
mov rdx, r15
mov rsi, r13
jne 0x4f6039
mov ecx, dword [rbp + 0x70]
jmp 0x4f5fcf
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.004fd4f0
test eax, eax
je 0x4f60c7
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 0x4f60da
lea rcx, [rax + 0x60]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x4f60fd
lea rcx, [rax + 0x40]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x4f60fd
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 0x4f5b47
jmp 0x4f5d07
lea rcx, [rax + 0x60]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x4f611d
lea rcx, [rax + 0x40]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x4f611d
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 0x4f5b9c
jmp 0x4f61e1
lea rcx, [rax + 0x20]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x4f6139
lea rcx, [rbp + 0x120]
cmp rax, rcx
jae 0x4f6139
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 0x4f5c01
jmp 0x4f5d07
lea rcx, [rax + 0x20]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x4f6158
lea rcx, [rbp + 0x120]
cmp rax, rcx
jae 0x4f6158
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 0x4f5c6d
jmp 0x4f61e1
lea rcx, [rax + 0xc0]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x4f6170
lea rcx, [rax + 0xa0]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x4f6170
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 0x4f5cdb
mov dword [rbp + 0x170], 1
jmp 0x4f61e1
lea rcx, [rax + 0xc0]
lea rdx, [rbp + 0x100]
cmp rdx, rcx
jae 0x4f61b4
lea rcx, [rax + 0xa0]
lea rdx, [rbp + 0x120]
cmp rcx, rdx
jae 0x4f61b4
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 0x4f5d46
jmp 0x4f61e1
test byte [rbp + 0x1fc], 0x40
jne 0x4fba85
mov rax, qword [rbp + 0x1f0]
movzx r10d, word [rax]
jmp case.0x4f6745.5
mov r15d, r13d
mov dword [rbp + 0x138], ebx
mov esi, dword [0x0059fd30]
test esi, esi
je 0x4f6220
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.004fdb20
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
cmp esi, 0xffffffff
jne 0x4f6229
jmp 0x4f62ee
mov eax, dword [0x0059fd30]
cmp eax, 0xffffffff
je 0x4f61e1
mov dword [rbp + 0x138], ebx
lea rsi, [0x0059fd30]
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 0x4f5e3c
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.004fdb20
neg rdi
sar rdi, 0x1e
mov eax, dword [rsi + rdi]
lea rsi, [rsi + rdi]
cmp eax, 0xffffffff
jne 0x4f5e36
jmp 0x4f5f7f
mov r15d, r13d
mov dword [rbp + 0x138], ebx
mov esi, dword [0x0059fd80]
test esi, esi
je 0x4f6288
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.004fdb20
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
cmp esi, 0xffffffff
jne 0x4f6291
jmp 0x4f62ee
mov eax, dword [0x0059fd80]
cmp eax, 0xffffffff
je 0x4f61e1
mov dword [rbp + 0x138], ebx
lea rsi, [0x0059fd80]
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 0x4f5f27
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.004fdb20
neg rdi
sar rdi, 0x1e
mov eax, dword [rsi + rdi]
lea rsi, [rsi + rdi]
cmp eax, 0xffffffff
jne 0x4f5f21
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 0x4f6601
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 0x4f57c2
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 0x4f6023
test r10d, r10d
jne 0x4f7e1d
mov eax, r13d
mov qword [rbp + 0x180], rax
mov rdi, qword [rbp + 0xe8]
jmp case.0x4f6745.25
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x53
mov rax, rdx
jmp 0x4f5ff1
test r13d, r13d
mov eax, 0xe
cmove eax, r13d
add eax, esi
mov ecx, 0x62bd8af
bt rcx, rax
jb 0x4f61f6
lea eax, [rsi - 8]
cmp eax, 2
ja 0x4f634f
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 0x4f571f
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 0x4f6007
movdqu xmm0, xmmword [rax + 0x40]
pxor xmm0, xmm6
por xmm0, xmmword [rbp + 0x100]
movdqa xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x50]
jmp 0x4f6194
movups xmm0, xmmword [rax + 0x40]
orps xmm0, xmmword [rbp + 0x100]
movaps xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x50]
jmp 0x4f61d1
movdqu xmm0, xmmword [rax]
pxor xmm0, xmm6
por xmm0, xmmword [rbp + 0x100]
movdqa xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x10]
jmp 0x4f6194
movups xmm0, xmmword [rax]
orps xmm0, xmmword [rbp + 0x100]
movaps xmmword [rbp + 0x100], xmm0
movdqu xmm0, xmmword [rax + 0x10]
jmp 0x4f61d1
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 0x4f61e1
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 0x4f6978
cdqe
lea rcx, str.pL
mov rax, qword [rcx + rax*8]
add rax, 0xfffffffffffffffe
mov qword [rbp + 0x1f0], rax
mov r10d, 0x12
mov rax, qword [rbp + 0xf0]
jmp 0x4f56e2
xor esi, esi
mov r13d, dword [rbp + 0x1fc]
lea rdi, [0x0059fd34]
mov rbx, rdi
jmp 0x4f623b
add rbx, 4
mov esi, eax
mov eax, dword [rbx]
inc esi
cmp eax, esi
je 0x4f6235
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.004fdb20
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
mov eax, dword [rbx]
cmp eax, 0xffffffff
jne 0x4f6235
jmp 0x4f62ee
xor esi, esi
mov r13d, dword [rbp + 0x1fc]
lea rdi, [0x0059fd84]
mov rbx, rdi
jmp 0x4f62a3
add rbx, 4
mov esi, eax
mov eax, dword [rbx]
inc esi
cmp eax, esi
je 0x4f629d
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.004fdb20
mov rdi, qword [rbp + 0xe8]
mov r9, qword [rbp + 0x1e0]
mov eax, dword [rbx]
cmp eax, 0xffffffff
jne 0x4f629d
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.0x4f6745.25
test dil, 1
jne 0x4f63f6
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 0x4f6431
test r13d, r13d
je 0x4f5994
cmp dword [rbp + 0x150], 0
jne 0x4f636f
movzx eax, word [r15 + 4]
cmp eax, 0x5d
je 0x4f5994
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.005597e0
mov edx, eax
add rdx, rdx
add rdx, qword [rbp + 0x140]
mov qword [rbp + 0x140], rdx
mov ecx, 0x10ffff
call fcn.005597e0
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
mov eax, eax
add rax, rax
add qword [rbp + 0x140], rax
jmp 0x4f5994
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 0x4f63ce
jmp 0x4f6431
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 0x4f63f8
mov ecx, r10d
neg ecx
movabs rax, 0x12492490494
bt rax, r8
cmovae ecx, r10d
cmp ecx, 1
mov ebx, dword [rbp + 0x138]
je 0x4f6479
cmp ecx, 2
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
mov rdi, qword [rbp + 0xf0]
jne 0x4f649c
mov rdx, rax
mov al, 0x7f
mov ecx, 0xb
jmp 0x4f6495
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 0x4f64ce
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 0x4f64e8
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 0x4f571f
mov qword [rbp + 0x1d0], rax
test r11d, r11d
je 0x4f658f
mov eax, r10d
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4f658f
mov rax, qword [rbp + 0x1f0]
movzx r10d, word [rax]
mov ecx, r10d
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x4f658f
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 0x4f65c3
sub rax, rdi
jbe 0x4f65c3
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 0x4f6609
cmp r10d, 0x5c
jne case.0x4f6745.5
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
mov r10d, 0x5c
cmp ecx, 0x45
jne case.0x4f6745.5
add rax, 2
mov qword [rbp + 0x1f0], rax
xor r8d, r8d
jmp case.0x4f6745.25
cmp r10d, 0x5c
je 0x4f66c5
cmp r10d, 0x5b
jne case.0x4f6745.5
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
mov r10d, 0x5b
cmp rcx, 0x3d
ja case.0x4f6745.5
movabs rdx, 0x2400400000000000
bt rdx, rcx
jae case.0x4f6745.5
mov r8d, ebx
lea rbx, [rax + 4]
mov r15, rbx
mov r11d, dword [rbp + 0x1f8]
jmp 0x4f6664
add r15, 2
movsx edx, word [r15]
movzx edi, dx
cmp edx, 0x5b
jg 0x4f6680
cmp edi, 0x5b
jne 0x4f669f
cmp word [r15 + 2], cx
jne 0x4f66a4
jmp 0x4f66bd
cmp edi, 0x5c
jne 0x4f66b8
movzx edi, word [r15 + 2]
and edi, 0xfffe
cmp edi, 0x5c
jne 0x4f66a4
add r15, 2
add r15, 2
jmp 0x4f6664
test dx, dx
je 0x4f66bd
cmp dx, cx
jne 0x4f6660
movzx edx, word [r15 + 2]
cmp edx, 0x5d
jne 0x4f6660
jmp 0x4f55fb
cmp edi, 0x5d
jne 0x4f66a4
mov ebx, r8d
jmp case.0x4f6745.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.004fc7f0
mov r15d, eax
cmp dword [rsi], 0
jne 0x4fb819
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.0x4f6745.1
mov r10d, 8
mov eax, r15d
lea rcx, [0x004fc250]
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 0x4f67bd
mov rdi, rcx
add rdi, 4
nop word cs:[rax + rax]
mov rdx, rdi
movzx eax, word [rdx]
cmp eax, 0x45
jne 0x4f67cf
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 0x4f6770
add rdi, 0xfffffffffffffffc
xor r8d, r8d
mov rcx, rdx
cmp r10d, 0xd
je 0x4f67e7
cmp r10d, 0xa
je 0x4f67e7
test r8d, r8d
jne 0x4f68ff
jmp 0x4f67f8
mov r8d, dword [rbp + 0x160]
mov rdi, rcx
cmp r10d, 0xd
jne 0x4f67ac
jmp 0x4f67e7
add rdx, 0xfffffffffffffffc
mov ax, 0x5c
mov r8d, dword [rbp + 0x160]
mov rdi, rdx
cmp r10d, 0xd
jne 0x4f67ac
mov rdx, qword [rbp + 0x50]
or byte [rdx + 1], 8
test r8d, r8d
jne 0x4f68ff
movzx eax, ax
xor r8d, r8d
cmp eax, 0x2d
jne 0x4f68ff
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 0x4f68c2
lea rax, [rdi + 8]
add rdi, 0xc
mov r11d, dword [rbp + 0x1f8]
nop
movzx edx, word [rax - 2]
cmp edx, 0x45
jne 0x4f686d
mov qword [rbp + 0x1f0], rax
movzx esi, word [rax]
add rax, 4
add rdi, 4
cmp esi, 0x5c
je 0x4f6840
xor ebx, ebx
add rax, 0xfffffffffffffffc
test si, si
jne 0x4f68d0
jmp 0x4f68ec
movzx eax, word [rdi - 6]
cmp eax, 0x51
jne 0x4f5731
lea rax, [rdi - 4]
mov qword [rbp + 0x1f0], rax
movzx esi, word [rdi - 4]
cmp esi, 0x5c
jne 0x4f5739
movzx eax, word [rdi - 2]
cmp eax, 0x45
jne 0x4f574c
mov qword [rbp + 0x1f0], rdi
movzx esi, word [rdi]
add rdi, 8
cmp esi, 0x5c
je 0x4f686d
xor ebx, ebx
add rdi, 0xfffffffffffffff8
mov rax, rdi
test si, si
jne 0x4f68d0
jmp 0x4f68ec
xor ebx, ebx
mov r11d, dword [rbp + 0x1f8]
test si, si
je 0x4f68ec
mov edx, ebx
test edx, edx
setne r8b
movzx edi, si
cmp edi, 0x5d
jne 0x4f5764
test edx, edx
jne 0x4f5764
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 0x4f6937
mov eax, r8d
or eax, ebx
jne 0x4f6937
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
cmp ecx, 0x5d
je 0x4f7451
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.004fdb20
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 0x4f69b8
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov rax, qword [rbp + 0x1d0]
mov edx, dword [rbp + 0x150]
jmp 0x4f69fd
mov rax, qword [rbp + 0x1d0]
test rax, rax
mov r11d, dword [rbp + 0x1f8]
mov edx, dword [rbp + 0x150]
je 0x4f72ae
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 0x4f72c8
test r8d, r8d
mov dword [rbp + 0x160], r8d
jne 0x4f6530
cmp r10d, 0x5d
mov dword [rbp + 0x160], r8d
jne 0x4f6530
mov dword [rbp + 0x160], 0
jmp 0x4f72da
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 0x4f6a31
test cx, cx
mov qword [rbp + 0x1f0], rax
mov ebx, dword [rbp + 0x1fc]
mov rax, qword [rbp + 0x1d0]
jne 0x4f7257
jmp 0x4fb8e9
mov ebx, dword [rbp + 0x1fc]
mov eax, ebx
shr eax, 1
and eax, 1
add eax, 0x19
mov word [r14], ax
jmp 0x4f765b
mov rax, qword [rbp + 0x1f0]
lea rcx, [rax + 2]
mov qword [rbp + 0x1f0], rcx
movzx ecx, word [rax + 2]
cmp ecx, 0x2a
jne 0x4f750c
movzx ecx, word [rax + 4]
cmp rcx, 0x3a
je 0x4f7730
movzx edx, cx
cmp edx, 0xff
ja 0x4f6acb
mov rdx, qword [r12 + 0x18]
test byte [rdx + rcx], 2
jne 0x4f7730
mov rax, qword [r12 + 0x40]
sub rax, qword [r12 + 0x20]
sar rax, 1
mov qword [rbp + 0x158], rax
jmp 0x4f7667
mov rdx, rsi
mov r10d, 0xffffffff
jmp 0x4f6b62
mov rdx, rsi
mov r10d, 0xffffffff
mov ebx, 1
test r15, r15
jne 0x4f6b6d
jmp 0x4fb8c5
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 0x4f7177
mov rdx, rsi
mov r10d, 1
xor ebx, ebx
test r15, r15
je 0x4fb8c5
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 0x4f6c1d
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 0x4f729c
mov r13, qword [rbp + 0x198]
mov rsi, rdx
jmp 0x4f7fd0
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
mov rsi, rdx
jmp 0x4f80cd
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.004fc7f0
mov r10d, eax
cmp dword [rsi], 0
jne 0x4fb819
test r10d, r10d
je 0x4f769a
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 0x4f7b5f
cmp r10d, 0x1b
mov r9, qword [rbp + 0x1e0]
jne 0x4f7bfc
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 0x4f6d3b
movzx edi, dx
cmp edi, 0x2d
je 0x4f6d3b
add edx, 0xffffffd0
movzx edx, dx
cmp edx, 9
ja 0x4f94c4
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 0x4f6d43
cmp r8d, edx
jne 0x4f7f89
mov qword [rbp + 0x1f0], rdi
mov r10d, 0xa3
mov rbx, rdi
jmp 0x4f94d4
mov cx, 0x5d
test byte [r12 + 0x93], 2
je 0x4f6dfe
jmp 0x4fb92b
mov ebx, dword [rbp + 0x1fc]
test bl, 2
jne 0x4f762f
mov word [r14], 0x1b
jmp 0x4f765b
mov cx, 0x7b
test al, al
je 0x4f6dfe
mov rax, qword [rbp + 0x1f0]
movzx ecx, word [rax + 2]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
cmp edx, 9
ja 0x4f7853
add rax, 4
xor ebx, ebx
movzx ecx, cx
lea edx, [rbx + rbx*4]
lea ebx, [rcx + rdx*2 - 0x30]
cmp ebx, 0xffff
jg 0x4fb8ab
movzx ecx, word [rax]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
add rax, 2
cmp edx, 9
jbe 0x4f6dcb
add rax, 0xfffffffffffffffe
jmp 0x4f7859
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 0x4f6f1f
movzx edx, word [rbp + 0x60]
mov ebx, edx
and ebx, 0xfc00
mov r10, rsi
cmp ebx, 0xd800
jne 0x4f6e7b
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 0x4f6e82
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, [0x005a1f70]
movzx ebx, byte [rbx + rsi]
shl rbx, 7
sub edx, edi
movsxd rdx, edx
add rdx, rbx
lea rbx, [0x005a4170]
movzx edx, word [rbx + rdx*2]
lea rbx, [0x005a08f0]
movzx edx, byte [rbx + rdx*8 + 3]
test dx, dx
mov ebx, dword [rbp + 0x1fc]
mov rsi, r10
je 0x4f6f1f
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 0x4f7250
add ecx, 0x1d
mov word [r14], cx
lea r10, [r14 + 2]
test eax, eax
je 0x4f702b
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 0x4f6f75
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 0x4f71a0
test cl, cl
je 0x4f71a0
xor ebx, ebx
mov rcx, r10
mov esi, r15d
sub esi, ebx
lea rdi, [r15 - 1]
sub rdi, rbx
and rsi, 7
je 0x4f6fa4
neg rsi
nop
movzx edx, word [rbp + rbx*2 + 0x60]
mov word [rcx], dx
inc rbx
add rcx, 2
inc rsi
jne 0x4f6f90
cmp rdi, 7
jb 0x4f700c
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 0x4f6fc0
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 0x4f702e
mov rdi, r14
movzx ebx, word [rbp + 0x60]
cmp ebx, 0xd
je 0x4f703f
movzx edx, bx
cmp edx, 0xa
jne 0x4f7047
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 0x4f70b3
mov dword [rbp + 0x178], 0xffffffff
test dl, dl
je 0x4f7120
cmp eax, 1
jne 0x4f71f5
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 0x4f723d
test dl, dl
mov ebx, dword [rbp + 0x1fc]
je 0x4f715e
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 0x4f7249
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 0x4f7243
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 0x4f7249
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 0x4f71c0
test r11d, r11d
mov r11d, dword [rbp + 0x1f8]
jne 0x4f6f7a
jmp 0x4f700c
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 0x4f4ab0
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 0x4f72da
jmp 0x4fb8d7
mov rcx, rbx
mov r13, qword [rbp + 0x198]
mov rsi, rdx
jmp 0x4f80bf
xor eax, eax
mov dword [rbp + 0x160], r8d
mov r13, qword [rbp + 0x198]
test r10d, r10d
jne 0x4f72da
jmp 0x4fb8d7
xor eax, eax
mov dword [rbp + 0x160], r8d
test r10d, r10d
je 0x4fb8d7
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 0x4f7319
cmp rcx, rdi
jbe 0x4f7339
mov eax, ebx
and eax, 0x20000000
test edx, edx
je 0x4f73d4
mov edx, r15d
or edx, eax
mov edx, dword [rbp + 0x170]
jne 0x4f73d4
mov rax, qword [rbp + 0x2e8]
test rax, rax
je 0x4f7365
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 0x4f73c8
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 0x4f73af
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 0x4f7b2a
test eax, eax
jne 0x4f77b5
mov edi, dword [rbp + 0x1b8]
test edi, edi
jne 0x4f77d7
test edx, edx
je 0x4f77d7
lea rdx, [rcx + 2]
test r11d, r11d
mov qword [rbp + 0x140], rdx
mov word [rcx], 2
je 0x4f77bd
mov ecx, pe_nt_image_headers64
call fcn.005597e0
mov edx, eax
add rdx, rdx
add rdx, qword [rbp + 0x140]
mov qword [rbp + 0x140], rdx
mov ecx, 0x10ffff
call fcn.005597e0
mov r11d, dword [rbp + 0x1f8]
mov ecx, eax
add rcx, rcx
add rcx, qword [rbp + 0x140]
mov qword [rbp + 0x140], rcx
jmp 0x4f77d7
add rax, 2
mov qword [rbp + 0x1f0], rax
cmp dword [rbp + 0x1b8], 0
je 0x4f776c
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 0x4f76d1
mov eax, r10d
sar eax, 0x1f
shr eax, 0x19
add eax, r10d
mov ecx, eax
and ecx, 0xffffff80
sar eax, 7
cdqe
lea rdx, [0x005a1f70]
movzx eax, byte [rax + rdx]
shl rax, 7
mov edx, r10d
sub edx, ecx
movsxd rcx, edx
add rcx, rax
lea rax, [0x005a4170]
movzx eax, word [rax + rcx*2]
lea rcx, [0x005a08f0]
movzx eax, byte [rcx + rax*8 + 3]
test ax, ax
je 0x4f76d1
mov dword [r14], 0x9000f
mov word [r14 + 4], ax
mov r15, r14
lea r14, [r14 + 6]
jmp 0x4f7d9c
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 0x4f7667
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.0x4f757f.1
mov dword [rbp + 0x1b8], 1
mov r8d, 0x29
mov r10d, 0x27
mov dword [rbp + 0x150], 0
lea rcx, [0x004fbd94]
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 0x4f7607
movzx ecx, word [rax + 8]
lea edx, [rcx - 0x2a]
movzx edx, dx
cmp edx, 2
jb 0x4f7607
movzx ecx, cx
cmp ecx, 0x3f
je 0x4f7607
cmp ecx, 0x7b
jne 0x4fb6e2
movzx ecx, word [rax + 0xa]
add ecx, 0xffffffd0
movzx ecx, cx
cmp ecx, 9
ja 0x4fb6e2
add rax, 0xe
movzx ecx, word [rax - 2]
lea edx, [rcx - 0x30]
movzx edx, dx
add rax, 2
cmp edx, 0xa
jb 0x4f75d6
movzx ecx, cx
cmp ecx, 0x7d
je 0x4f7607
cmp ecx, 0x2c
jne 0x4fb6e2
movzx ecx, word [rax - 2]
cmp ecx, 0x7d
jne 0x4fb6b9
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 0x4f787b
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 0x4f7249
mov ecx, dword [rbp + 0x1fc]
test ch, 0x10
jne 0x4f7870
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 0x4f787b
mov r11d, dword [rbp + 0x1f8]
test r11d, r11d
mov ecx, dword [rbp + 0x9c]
je 0x4f7d59
cmp ecx, 0xffff
jbe 0x4f7d59
lea rdx, [rbp + 0x60]
call fcn.005597e0
mov r11d, dword [rbp + 0x1f8]
jmp 0x4f7d62
mov eax, dword [rbp + 0x16c]
add eax, 0x1f
test r11d, r11d
mov word [r14], ax
je 0x4f7d90
cmp r10d, 0x10000
jb 0x4f7d90
lea r13, [r14 + 2]
mov ecx, r10d
mov rdx, r13
mov edi, r8d
call fcn.005597e0
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 0x4f7da3
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 0x4f7dd8
mov qword [rbp + 0x1f0], rax
movzx ecx, word [rax]
add rax, 2
cmp ecx, 0xff
jbe 0x4f7744
jmp case.0x4f902d.2
mov r11d, dword [rbp + 0x1f8]
test r11d, r11d
mov r13, qword [rbp + 0x198]
je 0x4f7e3c
cmp r10d, 0x10000
jb 0x4f7e3c
mov ecx, r10d
lea rdx, [rbp + 0x60]
mov edi, r8d
call fcn.005597e0
mov r8d, edi
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
jmp 0x4f7e46
mov edi, dword [rbp + 0x1b8]
jmp 0x4f77d7
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 0x4f7841
lea r8, [r14 + 6]
or edx, 2
mov word [r14 + 4], dx
mov r10, rax
sub r10, r8
je 0x4f7ab4
lea rdx, [r8 + r10]
lea rbx, [r14 + r10 + 0x26]
cmp r10, 8
jae 0x4f7a49
xor r10d, r10d
jmp 0x4f7a98
mov ebx, dword [rbp + 0x1fc]
mov r9, qword [rbp + 0x1e0]
jmp 0x4f7b18
add rax, 2
xor ebx, ebx
movzx ecx, cx
cmp ecx, 0x7d
jne 0x4f7ccc
mov rdx, rsi
mov r10d, ebx
jmp 0x4f7d3d
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 0x4fb94f
cmp ebx, 0x80
mov qword [rbp + 0x1c8], rsi
ja 0x4f78c4
cmp dword [r12 + 0xb0], 0
je 0x4f78c4
mov dword [r12 + 0xb0], 0
xor r15d, r15d
jmp 0x4f78db
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.004f2eb0
test eax, eax
je 0x4fb819
mov rax, qword [rbp + 0x2e0]
dec dword [rax + 0x88]
cmp ebx, 0x81
jne 0x4f79be
mov rax, qword [rbp + 0x2e0]
cmp dword [rax + 0x70], r13d
ja 0x4f79be
mov word [r14], 0x82
cmp ebx, 0x80
ja 0x4f79d3
mov rax, qword [rbp + 0x2e0]
dec dword [rax + 0x8c]
mov rsi, qword [rbp + 0x2e8]
test rsi, rsi
mov r9, qword [rbp + 0x1e0]
jne 0x4f7e69
cmp ebx, 0x87
mov r11d, dword [rbp + 0x1f8]
mov r8, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
jne 0x4f7ea6
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 0x4f7a13
movzx ecx, word [r14 + 4]
cmp ecx, 0x91
jne 0x4f7e80
mov ebx, 0x91
test eax, eax
jle 0x4f7ea6
jmp 0x4fba19
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 0x4f7a75
test r9, r9
mov rsi, qword [rbp + 0x1c8]
mov edi, dword [rbp + 0x1b8]
je 0x4f7ab4
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 0x4f7aa4
test edi, edi
mov r9, qword [rbp + 0x1e0]
je 0x4f7aec
test r15d, r15d
jne 0x4f7aec
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 0x4f7250
mov rbx, qword [rbp + 0x1f0]
movzx eax, word [rbx + 2]
cmp eax, 0x27
mov r9, qword [rbp + 0x1e0]
je 0x4f7b87
movzx ecx, ax
cmp ecx, 0x3c
je 0x4f7b87
cmp ecx, 0x7b
jne 0x4fb9ad
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.0x4f757f.5
test r10d, r10d
mov r13, qword [rbp + 0x198]
js 0x4f9052
lea ecx, [r10 - 0xf]
cmp ecx, 1
mov ebx, dword [rbp + 0x1fc]
mov rsi, qword [rbp + 0x1c8]
ja 0x4f90c0
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.004fd4f0
test eax, eax
mov r12, qword [rbp + 0x2e0]
je 0x4f9a6e
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 0x4f9a74
lea r8, [rax + 2]
movzx ecx, word [rax + 2]
mov r10d, 0xffffffff
cmp ecx, 0x7d
je 0x4f7d37
mov rdx, rbx
lea ebx, [rcx - 0x30]
movzx ebx, bx
xor r10d, r10d
cmp ebx, 9
mov rbx, rdx
ja 0x4f7d2e
add rax, 4
xor r10d, r10d
lea edx, [r10 + r10*4]
movzx ecx, cx
lea r10d, [rcx + rdx*2 - 0x30]
cmp r10d, 0xffff
jg 0x4fb8ab
movzx ecx, word [rax]
mov edx, ecx
add edx, 0xffffffd0
movzx edx, dx
add rax, 2
cmp edx, 9
jbe 0x4f7cfa
add rax, 0xfffffffffffffffe
mov r8, rax
cmp r10d, ebx
jl 0x4fbaa9
mov rdx, rsi
mov rax, r8
mov rcx, qword [rbp + 0x1d8]
cmp dword [rcx], 0
mov qword [rbp + 0x1f0], rax
je 0x4f6b64
jmp 0x4fb819
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 0x4f6e1b
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 0x4f5190
cmp edi, 0x3a
jne 0x4f8ff2
mov r15, rax
jmp 0x4f7dea
add r15, 2
mov cx, word [r15]
test cx, cx
je 0x4f7dfb
movzx edx, cx
cmp edx, 0x29
jne 0x4f7de6
mov qword [rbp + 0x1f0], r15
sub r15, rax
shr r15, 1
cmp r15d, 0x10000
mov rdi, rax
jb 0x4f8ff7
jmp 0x4fba97
mov r15, r14
mov dword [rbp + 0x160], r8d
mov r13, qword [rbp + 0x198]
test r10d, r10d
jne 0x4f9ac4
jmp 0x4f5190
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 0x4f6e1b
mov r11d, dword [rbp + 0x1f8]
mov r8, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x4f7ea6
cmp eax, 2
jge 0x4fba2b
mov ebx, 0x87
test eax, eax
jne 0x4f7ea6
mov dword [rbp + 0xd0], 0xffffffff
mov dword [rbp + 0x98], 0xffffffff
mov rax, qword [rbp + 0x1f0]
movzx eax, word [rax]
cmp eax, 0x29
jne 0x4fb961
mov rdi, qword [rbp + 0x2e8]
test rdi, rdi
je 0x4f7f12
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 0x4fb80c
add ecx, eax
mov dword [rdi], ecx
mov dword [r14 + 2], 0x780002
mov word [r14 + 6], 2
add r14, 8
mov rax, r8
jmp 0x4f7257
mov r14, qword [rbp + 0xb8]
cmp ebx, 0x91
je 0x4f9311
cmp ebx, 0x81
jl 0x4f92a4
cmp dword [rbp + 0x1ec], 0xfffffffe
mov ecx, dword [rbp + 0x98]
jne 0x4f9b51
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 0x4f9bab
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x39
mov r10d, 6
jmp 0x4f94d4
mov eax, dword [r9]
jmp 0x4f7fb2
xor eax, eax
xor r8d, r8d
jmp 0x4f7fd0
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 0x4f80bf
mov rcx, qword [r12 + 0x18]
add rbx, 2
movzx eax, ax
test byte [rcx + rax], 1
je 0x4f7ff5
movzx eax, word [rbx]
add rbx, 2
cmp eax, 0x100
jb 0x4f7fd9
jmp 0x4f80b8
cmp eax, 0x23
jne 0x4f80b8
movzx ecx, word [rbx]
xor eax, eax
test cx, cx
je 0x4f7fd0
mov edx, dword [r12 + 0xb4]
test edx, edx
mov r8, qword [r12 + 0x38]
je 0x4f804d
cmp rbx, r8
jae 0x4f8083
mov eax, dword [rbp + 0x12c]
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov rdi, r10
call fcn.00559650
mov r10, rdi
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
test eax, eax
je 0x4f8083
jmp 0x4f7fa1
movsxd rax, dword [r9]
lea rdx, [rax + rax]
sub r8, rdx
cmp rbx, r8
ja 0x4f8083
cmp cx, word [r12 + 0xbc]
jne 0x4f8083
cmp eax, 1
je 0x4f7fad
movzx ecx, word [rbx + 2]
cmp cx, word [r12 + 0xbe]
je 0x4f7fb2
lea rax, [rbx + 2]
test r11d, r11d
je 0x4f809e
movzx ecx, word [rbx + 2]
and ecx, 0xfc00
cmp ecx, 0xdc00
je 0x4f80a3
mov rbx, rax
jmp 0x4f80a7
add rbx, 4
movzx ecx, word [rbx]
test cx, cx
jne 0x4f8008
jmp 0x4f7fa6
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 0x4f8120
movzx eax, word [rbx + 4]
xor edi, edi
cmp eax, 0x3f
jne 0x4f8149
movzx eax, word [rbx + 6]
cmp eax, 0x23
mov eax, dword [rbp + 0xb4]
jne 0x4f815b
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 0x4f80f4
test ax, ax
mov qword [rbp + 0x1f0], rbx
je 0x4fb8e9
mov ax, word [rbx + 2]
add rbx, 2
xor edi, edi
movzx eax, ax
cmp eax, 0x3f
je 0x4f8151
cmp eax, 0x2b
mov eax, dword [rbp + 0xb4]
jne 0x4f815b
mov qword [rbp + 0x1f0], rbx
xor eax, eax
mov edi, 1
jmp 0x4f815b
mov eax, dword [rbp + 0xb4]
jmp 0x4f815b
mov qword [rbp + 0x1f0], rbx
mov eax, dword [rbp + 0x48]
mov qword [rbp + 0x1b8], rax
movzx eax, word [r15]
cmp eax, 0x75
jne 0x4f81d6
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 0x4f8233
mov rcx, qword [r12 + 0x20]
mov rax, qword [r12 + 0x40]
add rcx, 2
cmp rax, rcx
jb 0x4f8233
lea rdx, [r15 + 2]
movzx ecx, word [rax - 2]
sub rdx, qword [r12 + 0x28]
sar rdx, 1
cmp rdx, rcx
jne 0x4f8233
add ecx, 2
mov word [rax - 2], cx
mov ax, word [r15]
lea ecx, [rax - 0x1d]
movzx ecx, cx
cmp ecx, 3
ja 0x4f82e0
lea ecx, [rax - 0x1e]
movzx edx, cx
xor ecx, ecx
cmp edx, 2
ja 0x4f81f9
lea ecx, [rdx + rdx*2]
lea ecx, [rdx + rcx*4 + 0xd]
movzx ebx, word [r14 - 2]
test r11d, r11d
je 0x4f8411
mov edx, ebx
and edx, 0xfc00
movzx edx, dx
cmp edx, 0xdc00
jne 0x4f8411
mov eax, dword [r14 - 4]
mov dword [rbp + 0x1c], eax
mov ax, word [r15]
mov ebx, 0x10000002
jmp 0x4f843e
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 0x4f833c
cmp eax, 2
mov rdx, rax
jl 0x4f83c3
cmp qword [rbp + 0x2e8], 0
je 0x4f85f4
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 0x4fb80c
imul eax, ecx
mov ecx, dword [rbx]
mov edx, 0x7fffffeb
sub edx, ecx
cmp edx, eax
jl 0x4fb80c
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 0x4f83e2
movzx ebx, ax
mov ecx, 0x34
cmp ebx, 0x16
jbe 0x4f843e
lea ecx, [rax - 0x6e]
movzx ecx, cx
cmp ecx, 6
ja 0x4f85a2
test r10d, r10d
mov ebx, dword [rbp + 0x1fc]
je 0x4f8fe3
cmp dword [rbp + 0x190], 0
mov rax, qword [rbp + 0x1d0]
jne 0x4f909a
cmp r10d, 0xffffffff
jne 0x4f909a
mov rcx, qword [rbp + 0x1b8]
add ecx, 0x62
jmp 0x4f94af
mov qword [rbp + 0x138], r10
cmp r10d, 1
mov word [r14], 0
jg 0x4f84df
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.004fc330
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 0x4f87ca
lea rbx, [rax - 2]
mov rdx, rbx
shr rdx, 1
lea ecx, [rdx + 1]
and ecx, 3
cmp rbx, 6
jae 0x4f8758
xor edx, edx
jmp 0x4f87a6
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 0x4f88bd
cmp dword [rbp + 0x190], 2
jl 0x4f843e
movzx edx, ax
cmp edx, 0x1e
ja 0x4f843e
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 0x4f845d
movzx edx, word [r15 + 2]
movzx eax, word [r15 + 4]
mov dword [rbp + 0x1a8], eax
test r10d, r10d
mov rax, qword [rbp + 0x1d0]
je 0x4f84d1
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 0x4f8552
test edx, edx
jne 0x4f8575
cmp r10d, 1
je 0x4f86ec
cmp r10d, 0xffffffff
mov rax, qword [rbp + 0x1b8]
mov ecx, dword [rbp + 0x1b0]
jne 0x4f870c
add eax, 0x21
mov word [r15], ax
add r15, 2
mov r14, r15
jmp 0x4fa026
mov r14, r15
mov ebx, dword [rbp + 0x1fc]
jmp 0x4fa26b
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.004fc330
movsxd rcx, dword [rbp + 0xc0]
and rcx, 0xfffffffffffffffe
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
mov r10, qword [rbp + 0x138]
je 0x4f8884
lea rbx, [rcx - 2]
mov rdx, rbx
shr rdx, 1
lea eax, [rdx + 1]
and eax, 3
cmp rbx, 6
jae 0x4f8816
xor edx, edx
test rax, rax
jne 0x4f8869
jmp 0x4f8884
cmp r10d, 1
je 0x4f8724
cmp r10d, 0xffffffff
jne 0x4f872f
mov rax, qword [rbp + 0x1b8]
add eax, 0x23
jmp 0x4f86f6
add ecx, 0x29
mov word [r15], cx
mov word [r15 + 2], dx
lea r14, [r15 + 4]
test r10d, r10d
js 0x4f86ab
sub r10d, edx
jne 0x4f8fba
mov ecx, dword [rbp + 0x1b0]
jmp 0x4fa026
lea ecx, [rax - 0x7d]
movzx ecx, cx
cmp ecx, 0xa
mov ebx, dword [rbp + 0x1fc]
ja 0x4f8691
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 0x4f9238
movzx eax, word [r15 + 4]
cmp eax, 0x91
jne 0x4f824d
jmp 0x4f9250
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 0x4f9c2c
movzx eax, ax
cmp eax, 0x9d
mov rax, qword [rbp + 0x1d0]
je 0x4fa26b
jmp 0x4fba3d
test ebx, 0x10000000
sete al
or al, byte [rbp + 0x18f]
je 0x4f925c
mov word [r15 + 4], bx
mov ecx, dword [rbp + 0x1b0]
test ecx, ecx
js 0x4fa00d
mov word [r15 + 6], cx
mov eax, dword [rbp + 0x1a8]
mov word [r15 + 8], ax
add r15, 0xa
jmp 0x4fa011
mov rax, qword [rbp + 0x1b8]
add eax, 0x25
mov word [r15], ax
add r15, 2
mov r14, r15
mov ecx, dword [rbp + 0x1b0]
jmp 0x4fa026
add eax, 0x27
mov word [r15], ax
mov word [r15 + 2], r10w
add r15, 4
mov r14, r15
jmp 0x4fa026
mov ebx, dword [rbp + 0x1fc]
jmp 0x4fa26b
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 0x4fa026
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 0x4f876e
neg rdx
mov rsi, r10
mov edi, dword [rbp + 0x16c]
mov r10, qword [rbp + 0x138]
test rcx, rcx
mov ebx, dword [rbp + 0x1fc]
je 0x4f87ca
add rax, r15
sub rax, rdx
neg rcx
movzx edx, word [rax - 2]
mov word [rax], dx
lea rax, [rax - 2]
inc rcx
jne 0x4f87ba
add r14, 2
test r10d, r10d
je 0x4f8804
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 0x4f88bd
mov word [r15], 0xa1
mov rax, qword [rbp + 0x1d0]
jmp 0x4fa26b
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 0x4f882c
neg rdx
mov rsi, r10
mov edi, dword [rbp + 0x16c]
mov r10, qword [rbp + 0x138]
test rax, rax
je 0x4f8884
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 0x4f8874
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 0x4f8956
cmp qword [rbp + 0x2e8], 0
mov dword [rbp + 0x16c], edi
je 0x4f899c
test r10d, r10d
je 0x4f899c
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 0x4fb80c
imul eax, r10d
add eax, 0xfffffffc
mov ecx, dword [rdi]
mov edx, 0x7fffffeb
sub edx, ecx
cmp edx, eax
jl 0x4fb80c
add ecx, eax
mov dword [rdi], ecx
mov rax, qword [rbp + 0x1d0]
test rbx, rbx
jne 0x4f8e59
mov r11d, dword [rbp + 0x1f8]
mov ebx, dword [rbp + 0x1fc]
jmp 0x4f8eb3
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 0x4f8ec9
test edi, edi
mov ebx, dword [rbp + 0x1fc]
jne 0x4f8ee5
jmp 0x4f8f8a
test r10d, r10d
jle 0x4f8e50
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 0x4f8a41
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 0x4f8a45
add r14, 2
mov rcx, r14
mov rdx, r15
mov r8, qword [rbp + 0xf0]
call sub.msvcrt.dll_memcpy
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 0x4f8b61
lea esi, [rax + rax]
cmp esi, 0x32001
mov ecx, 0x32000
cmovge esi, ecx
cmp eax, 0x31fff
mov ecx, 0x48
jg 0x4fb775
mov edx, esi
sub edx, eax
cmp edx, 0x64
jl 0x4fb775
lea eax, [rsi + rsi]
movsxd rcx, eax
call qword [0x0059d858]
test rax, rax
je 0x4fb88f
mov rdx, qword [r12 + 0x20]
movsxd r8, dword [r12 + 0x6c]
add r8, r8
mov rcx, rax
mov rdi, rax
call sub.msvcrt.dll_memcpy
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 0x4f8b1b
call qword [fcn.004ef890]
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 0x4f8a8f
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 0x4f8be3
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 0x4f8bfd
mov rax, r11
mov r13, qword [rbp + 0x198]
mov r8, r10
jmp 0x4f8d5d
mov r13, qword [rbp + 0x198]
mov r9, qword [rbp + 0x1e0]
mov rax, qword [rbp + 0x1d0]
jmp 0x4f8e17
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 0x4f8c42
lea rax, [r11 + rax*2 + 2]
cmp rdx, rax
jae 0x4f8c42
mov rax, r11
mov r13, qword [rbp + 0x198]
mov r8, qword [rbp + 0x30]
jmp 0x4f8d5d
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 0x4f8c7b
xor edi, edi
test r8, r8
jne 0x4f8cfa
jmp 0x4f8d41
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 0x4f8c97
test r8, r8
je 0x4f8d41
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 0x4f8d16
cmp r10, r9
mov r13, qword [rbp + 0x198]
mov r8, qword [rbp + 0x30]
je 0x4f8df4
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 0x4f8d93
neg rsi
movzx edi, word [rdx]
add edi, ecx
mov word [rax], di
add rax, 2
add rdx, 2
inc rsi
jne 0x4f8d7e
cmp r10, 0xe
jb 0x4f8df4
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 0x4f8d99
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 0x4f89f0
test rbx, rbx
je 0x4f8944
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 0x4f8e63
mov ebx, dword [rbp + 0x1fc]
mov rax, r8
xor r8d, r8d
mov edi, dword [rbp + 0x16c]
test edi, edi
jne 0x4fa09b
jmp 0x4fa26b
test edi, edi
mov ebx, dword [rbp + 0x1fc]
je 0x4f8f78
movzx eax, si
cmp eax, 0x82
jne 0x4f8f78
mov word [rcx], 0x83
mov si, 0x83
cmp qword [rbp + 0x2e8], 0
jne 0x4f912b
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.004f4270
test eax, eax
jne 0x4f90fa
movzx eax, word [rbx + 2]
movzx ecx, word [rbx + rax*2]
lea rbx, [rbx + rax*2]
cmp ecx, 0x77
je 0x4f8f0d
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 0x4f912b
lea eax, [rsi - 0x81]
movzx eax, ax
cmp eax, 1
ja 0x4f8eee
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 0x4fa09b
jmp 0x4fa26b
mov dword [rbp + 0x16c], edi
test ebx, 0x10000000
sete al
or al, byte [rbp + 0x18f]
je 0x4f931d
mov word [r15 + 4], bx
add r15, 6
jmp 0x4f935b
mov r14, r15
mov rax, qword [rbp + 0x1d0]
jmp 0x4fa26b
xor r15d, r15d
xor edi, edi
movzx ecx, cx
cmp ecx, 0x29
jne case.0x4f902d.2
mov qword [rbp + 0x1c8], rsi
add rax, 0xfffffffffffffffe
sub rax, rbx
shr rax, 1
cmp eax, 6
ja case.0x4f902d.2
mov eax, eax
lea rcx, [0x004fc0e4]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
xor esi, esi
xor r8d, r8d
mov rcx, rbx
lea rdx, [0x0059dc70]
call fcn.00559910
test eax, eax
jne case.0x4f902d.2
xor eax, eax
jmp 0x4fa7cd
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 0x4fa3f1
cmp dword [rbp + 0x190], 1
mov rcx, qword [rbp + 0x1b8]
jne 0x4f9495
cmp r10d, 0xffffffff
jne 0x4f9495
add ecx, 0x64
jmp 0x4f94af
cmp r10d, 5
mov r12, qword [rbp + 0x2e0]
ja 0x4fa69e
mov ecx, 0x32
bt ecx, r10d
jae 0x4fa69e
cmp dword [r12 + 0x78], 0
jne 0x4fa703
mov dword [r12 + 0x78], 1
jmp 0x4fa703
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 0x4f914f
movzx eax, word [rcx + 2]
movzx eax, word [rcx + rax*2]
mov si, 0x87
cmp eax, 0x77
je 0x4f914f
mov word [rcx], 0x8c
mov si, 0x8c
test edi, edi
je 0x4f91f6
movzx eax, si
cmp eax, 0x8c
je 0x4f916c
cmp eax, 0x87
jne 0x4f921b
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.004fc330
movsxd rdi, esi
mov rax, rdi
and rax, 0xfffffffffffffffe
mov r10, r12
mov rsi, qword [rbp + 0x1c8]
je 0x4f940d
mov rdx, qword [rbp + 0x1b0]
lea rcx, [rdx + 2]
cmp rax, 4
jae 0x4f93b0
lea rdx, [rdx + rax]
lea rcx, [rcx + rax + 2]
xor r8d, r8d
jmp 0x4f93f4
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 0x4fa268
inc esi
mov word [rcx], si
mov word [r15], 0x7b
mov rax, r12
mov rsi, qword [rbp + 0x1c8]
xor r8d, r8d
jmp 0x4f946b
cmp eax, 0x80
ja 0x4f824d
cmp dword [rbp + 0x190], 0
jle 0x4fa9f2
mov rax, qword [rbp + 0x1d0]
jmp 0x4fa26b
mov r15d, edi
mov rdi, rsi
mov esi, ebx
and esi, 7
lea r8d, [rsi + rsi]
mov rcx, r14
lea rdx, [rbp + 0x1c]
call sub.msvcrt.dll_memcpy
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 0x4fa01b
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 0x4f9c0a
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 sub.msvcrt.dll_memcpy
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 0x4f937f
mov word [r15], cx
mov edx, dword [rbp + 0x1a8]
mov word [r15 + 2], dx
add r15, 4
cmp r10d, 1
jne 0x4f9392
add eax, 0x25
mov word [r15], ax
add r15, 2
jmp 0x4f93a2
add eax, 0x27
mov word [r15], ax
mov word [r15 + 2], r10w
add r15, 4
mov r14, r15
mov edi, dword [rbp + 0x16c]
jmp 0x4fa026
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 0x4f93d6
test r9, r9
mov r10, r12
mov rsi, qword [rbp + 0x1c8]
je 0x4f940d
dec rdx
dec rcx
sub rax, r8
movzx ebx, byte [rdx]
mov byte [rcx], bl
dec rdx
dec rcx
dec rax
jne 0x4f93fd
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 0x4f9483
mov word [rdx], 0x94
cmp dword [rbp + 0x190], 2
jge 0x4fa093
jmp 0x4fa26b
cmp dword [rbp + 0x190], 0
jne 0x4fa660
cmp r10d, 1
jne 0x4fa660
add ecx, 0x66
mov word [r14], cx
add r14, 2
test edi, edi
jne 0x4fa09b
jmp 0x4fa26b
mov dword [rbp + 0xdc], 1
mov r10d, 0x86
cmp r10b, 0x86
mov rsi, qword [rbp + 0x1c8]
je 0x4f9600
sar qword [rbp + 0x158], 1
cmp r10b, 0xa3
mov r12, qword [rbp + 0x2e0]
jne 0x4f9a8b
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 0x4f955c
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 0x4f957f
jmp 0x4fba4f
cmp eax, 0x2d
jne 0x4f957f
movzx edx, word [rbx + 2]
lea edi, [rdx - 0x30]
movzx edi, di
cmp edi, 9
ja case.0x4f757f.1
add rbx, 2
mov qword [rbp + 0x1f0], rbx
lea edi, [rdx - 0x30]
movzx edi, di
xor r10d, r10d
cmp edi, 9
ja 0x4f95c8
add rbx, 2
xor r10d, r10d
cmp r10d, 0xccccccc
jge 0x4fb8fb
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 0x4f9594
movzx edx, dx
cmp r8d, edx
jne 0x4fba07
cmp eax, 0x2d
jne 0x4f9835
test r10d, r10d
je 0x4fba73
mov eax, dword [r12 + 0x70]
sub eax, r10d
inc eax
test eax, eax
mov r10d, eax
jg 0x4fa2e0
jmp 0x4fb9bf
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 0x4fb98c
movzx edx, ax
cmp edx, 0xff
ja 0x4f9699
mov rdx, qword [r12 + 0x18]
add rbx, 4
movzx edi, ax
test byte [rdx + rdi], 0x10
je 0x4f9693
mov qword [rbp + 0x1f0], rbx
movzx eax, word [rbx]
add rbx, 2
cmp eax, 0x100
jb 0x4f9675
add rbx, 0xfffffffffffffffe
jmp 0x4f969c
mov rbx, rcx
sub rbx, rcx
mov rdx, rbx
shr rdx, 1
cmp qword [rbp + 0x2e8], 0
mov qword [rbp + 0x158], rdx
je 0x4f97bd
test edx, edx
je 0x4fb9e3
cmp ax, r8w
mov ebx, dword [rbp + 0x1fc]
jne 0x4fb9d1
cmp edx, 0x21
mov eax, dword [rbp + 0x1b8]
jge 0x4fb9f5
test eax, eax
jne 0x4f96ed
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 0x4f970b
add eax, 0x11
mov dword [rdx], eax
mov eax, dword [r12 + 0x60]
test eax, eax
mov r8, qword [rbp + 0x158]
jle 0x4f9851
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 0x4f97a0
mov rdx, qword [rsi]
mov rcx, qword [rbp + 0x150]
mov rdi, r10
call fcn.005598d0
mov r10, rdi
mov r8, qword [rbp + 0x158]
mov r9, qword [rbp + 0x1e0]
mov r11d, dword [rbp + 0x1f8]
test eax, eax
jne 0x4f97a0
cmp dword [rbp + 0x1b8], 0
mov r10d, dword [rsi + 0xc]
jne 0x4fa776
mov rax, qword [r12 + 0x48]
test rax, rax
je 0x4f97a0
movzx ecx, word [rax + 8]
cmp r10d, ecx
je 0x4f979a
mov rax, qword [rax]
test rax, rax
jne 0x4f9787
jmp 0x4f97a0
mov word [rax + 0xa], 1
inc r15d
add rsi, 0x10
mov eax, dword [r12 + 0x60]
cmp r15d, eax
jl 0x4f9738
mov rsi, qword [rbp + 0x1c8]
jmp 0x4fa2cc
mov rdi, qword [r12 + 0x58]
mov eax, dword [r12 + 0x60]
test eax, eax
jle 0x4f985c
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.005598d0
test eax, eax
jne 0x4f9817
mov rax, qword [rbp + 0x150]
cmp word [rdi + rax*2], 0
je 0x4fa29f
movsxd rax, dword [r12 + 0x64]
lea rdi, [rdi + rax*2]
inc r15d
mov eax, dword [r12 + 0x60]
cmp r15d, eax
mov rcx, rbx
jl 0x4f97ee
jmp 0x4fa2a4
cmp eax, 0x2b
jne 0x4fa2e0
test r10d, r10d
je 0x4fba73
add r10d, dword [r12 + 0x70]
jmp 0x4fa2e0
xor r10d, r10d
xor r15d, r15d
jmp 0x4fa2cc
xor r15d, r15d
cmp r15d, eax
jl 0x4fa2ad
jmp 0x4fb9bf
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, [0x004fbfb4]
jmp 0x4f98a5
or dword [rax], ecx
jmp 0x4f98a5
add rdx, 2
mov rbx, rdx
lea rsi, [rbp + 0x44]
mov rdx, rbx
movzx edi, word [rdx]
cmp edi, 0x29
je 0x4f9ae0
movzx eax, di
cmp eax, 0x3a
je 0x4f9ae0
lea rbx, [rdx + 2]
mov qword [rbp + 0x1f0], rbx
lea eax, [rdi - 0x2d]
movzx eax, ax
cmp eax, 0x4b
ja case.0x4f98e9.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.0x4f98e9.60
mov ecx, 0x200
mov rax, rsi
or dword [rax], ecx
jmp 0x4f98a5
mov ecx, 0x40
mov rax, rsi
or dword [rax], ecx
jmp 0x4f98a5
mov ecx, 2
mov rax, rsi
or dword [rax], ecx
jmp 0x4f98a5
mov ecx, 4
mov rax, rsi
or dword [rax], ecx
jmp 0x4f98a5
mov ecx, 8
mov rax, rsi
or dword [rax], ecx
jmp 0x4f98a5
mov r8d, 1
mov rcx, rbx
lea rdx, [0x0059dc84]
call fcn.00559910
test eax, eax
jne case.0x4f902d.2
mov esi, 4
mov eax, 4
jmp 0x4fa7cd
mov r8d, 4
mov rcx, rbx
lea rdx, str.MARK
call fcn.00559910
test eax, eax
je 0x4fa7c3
mov r8d, 4
mov rcx, rbx
lea rdx, str.FAIL
call fcn.00559910
test eax, eax
je 0x4faca0
mov r8d, 4
mov rcx, rbx
lea rdx, str.SKIP
call fcn.00559910
test eax, eax
je 0x4faed0
mov r8d, 4
mov rcx, rbx
lea rdx, str.THEN
call fcn.00559910
test eax, eax
mov r13, qword [rbp + 0x198]
mov r12, qword [rbp + 0x2e0]
jne case.0x4f902d.2
mov esi, 8
mov eax, 8
jmp 0x4fa7cd
mov r8d, 5
mov rcx, rbx
lea rdx, str.PRUNE
call fcn.00559910
test eax, eax
jne case.0x4f902d.2
mov esi, 6
mov eax, 6
jmp 0x4fa7cd
mov r8d, 6
mov rcx, rbx
lea rdx, str.ACCEPT
call fcn.00559910
test eax, eax
je 0x4fa8da
mov r8d, 6
mov rcx, rbx
lea rdx, str.COMMIT
call fcn.00559910
test eax, eax
jne case.0x4f902d.2
mov esi, 3
mov eax, 3
jmp 0x4fa7cd
mov r10d, 6
mov r9, qword [rbp + 0x1e0]
test r10d, r10d
mov r11d, dword [rbp + 0x1f8]
je 0x4fa741
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 0x4f5190
cmp r10d, 4
mov ebx, dword [rbp + 0x1fc]
mov rax, qword [rbp + 0x1d0]
je 0x4f7257
jmp 0x4fb99e
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 0x4fa79a
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 0x4f7257
mov rbx, rsi
mov dword [rbp + 0xa0], 0
test ecx, ecx
js 0x4f9b7e
mov eax, dword [rbp + 0xd0]
test eax, eax
jns 0x4f9b7e
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 0x4f7257
lea rax, [rbx + r9*2]
lea rdx, [rdx + r9*2]
jmp 0x4f9dd1
sub rbx, r13
mov rdi, rbx
sar rdi, 1
mov rcx, r14
mov rdx, r15
mov r8, qword [rbp + 0x58]
call sub.msvcrt.dll_memcpy
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 0x4f9d4a
lea esi, [rax + rax]
cmp esi, 0x32001
mov ecx, 0x32000
cmovge esi, ecx
cmp eax, 0x31fff
mov ecx, 0x48
jg 0x4fb775
mov edx, esi
sub edx, eax
cmp edx, 0x64
jl 0x4fb775
lea eax, [rsi + rsi]
movsxd rcx, eax
call qword [0x0059d858]
mov r13, rax
test r13, r13
je 0x4fb88f
mov rdx, qword [r12 + 0x20]
movsxd r8, dword [r12 + 0x6c]
add r8, r8
mov rcx, r13
call sub.msvcrt.dll_memcpy
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 0x4f9d03
call qword [fcn.004ef890]
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 0x4f9c7d
mov rsi, qword [rbp + 0x1c8]
mov r8, qword [rbp + 0x1a8]
cmp r8, rdi
mov rax, r8
jge 0x4f9f86
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 0x4f9dce
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 0x4f9e84
lea rax, [rbx + rax*2 + 2]
cmp rdx, rax
jae 0x4f9e84
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 0x4f9e10
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 0x4f9df9
jmp 0x4f9e17
mov rsi, qword [rbp + 0x148]
cmp r9, 0xe
mov rdi, rsi
jb 0x4f9f6e
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 0x4f9e24
jmp 0x4f9f6e
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 0x4f9eae
xor edi, edi
test rsi, rsi
jne 0x4f9f23
jmp 0x4f9f65
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 0x4f9ec3
test rsi, rsi
je 0x4f9f65
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 0x4f9f39
cmp r10, r9
jne 0x4f9c1f
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 0x4f9c2c
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 0x4f83e2
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 0x4fa041
mov word [r14], bx
add r14, 2
jmp 0x4fa06f
and ebx, 7
lea r8d, [rbx + rbx]
mov rcx, r14
lea rdx, [rbp + 0x1c]
call sub.msvcrt.dll_memcpy
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 0x4fa093
mov word [r14], cx
mov ecx, dword [rbp + 0x1a8]
mov word [r14 + 2], cx
add r14, 4
test edi, edi
je 0x4fa26b
mov rdi, rax
mov rbx, qword [rbp + 0xb8]
movzx eax, word [rbx]
lea ecx, [rax - 0x1d]
movzx ecx, cx
cmp ecx, 0x53
ja case.0x4fa0c1.4
lea rdx, [0x004fc100]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
test r11d, r11d
lea rcx, [0x0059fc80]
movzx eax, byte [rax + rcx]
lea rbx, [rbx + rax*2]
mov qword [rbp + 0xb8], rbx
je case.0x4fa0c1.4
movzx eax, word [rbx - 2]
and eax, 0xfc00
cmp eax, 0xd800
jne case.0x4fa0c1.4
add rbx, 2
jmp 0x4fa121
add rbx, 0x22
jmp 0x4fa121
movzx eax, byte [0x0059fcdd]
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 0x4fa11d
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 0x4fa155
movzx eax, word [rbx]
cmp rax, 0x75
ja 0x4fa16a
lea rcx, [0x0059dbf0]
movzx eax, byte [rax + rcx]
test ax, ax
je 0x4fa16a
mov word [rbx], ax
mov r13, qword [rbp + 0x198]
mov ebx, dword [rbp + 0x1fc]
mov rax, rdi
jmp 0x4fa26b
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.004fc330
movsxd rax, r13d
and rax, 0xfffffffffffffffe
je 0x4fa1c0
cmp rax, 4
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
jae 0x4fa1d7
lea rcx, [rbx + rax + 4]
add rbx, rax
mov rdx, rbx
xor r8d, r8d
jmp 0x4fa21a
mov r13, qword [rbp + 0x198]
mov r11d, dword [rbp + 0x1f8]
mov r9, qword [rbp + 0x1e0]
jmp 0x4fa241
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 0x4fa1fc
test r13, r13
mov rdi, r10
mov rsi, qword [rbp + 0x1c8]
je 0x4fa233
dec rdx
dec rcx
sub rax, r8
movzx ebx, byte [rdx]
mov byte [rcx], bl
dec rdx
dec rcx
dec rax
jne 0x4fa223
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 0x4f7257
mov eax, dword [r12 + 0x60]
cmp r15d, eax
jge 0x4fb9bf
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 0x4fa3cd
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 0x4fa308
mov rbx, rcx
jmp 0x4fa9a8
mov word [r14], 0
test r10d, r10d
mov rbx, rcx
je 0x4fa347
mov edx, dword [rbp + 0x12c]
mov rdi, rcx
mov r15, r8
mov r8d, r10d
mov rbx, r10
call fcn.004f10b0
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 0x4fa490
cmp dword [rbp + 0x2d8], 0
jg 0x4fa9a8
movzx eax, word [rbx + 2]
test ax, ax
jne 0x4fa9a8
mov r15, rcx
mov qword [rbp + 0x178], r8
mov qword [rbp + 0x1c8], rsi
cmp qword [rbp + 0x2d0], 0
je 0x4fb93d
mov rsi, qword [rbp + 0x2d0]
mov rcx, qword [rsi + 8]
cmp rcx, rbx
jb 0x4fb93d
mov qword [rsp + 0x20], 0
mov rdx, r14
mov r8d, dword [rbp + 0x12c]
mov r9, r12
call fcn.004f4270
test eax, eax
je 0x4fa982
mov rsi, qword [rsi]
test rsi, rsi
jne 0x4fa390
jmp 0x4fb93d
mov dword [rbp + 0xdc], 0
cmp qword [rbp + 0x2e8], 0
je 0x4fa4c4
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 0x4fa457
mov dword [r12 + 0x7c], r10d
sar qword [rbp + 0x158], 1
lea rax, [r14 + 4]
mov rcx, qword [r12 + 0x48]
test rcx, rcx
je 0x4fa485
movzx edx, word [rcx + 8]
cmp r10d, edx
je 0x4fa47f
mov rcx, qword [rcx]
test rcx, rcx
jne 0x4fa46c
jmp 0x4fa485
mov word [rcx + 0xa], 1
mov r15, r14
mov r14, rax
jmp 0x4f7250
cmp r10d, dword [r12 + 0x74]
jg 0x4fb9bf
movsxd rax, dword [r12 + 0x6c]
lea rdx, [r8 + rax*2 - 0xc8]
cmp rdx, qword [rbp + 0x158]
jbe 0x4fa549
mov r15, rcx
mov rax, qword [rbp + 0x158]
jmp 0x4fa63f
cmp dword [r12 + 0xa8], 0
je 0x4fa78e
mov rdi, r10
mov qword [rbp + 0x1c8], rsi
mov r12, qword [rbp + 0x1d0]
lea ecx, [r15 + 1]
cmp ecx, eax
jge 0x4fae93
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.00559820
test eax, eax
jne 0x4fad69
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 0x4fa50f
jmp 0x4fad6b
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 0x4fb775
mov edx, esi
sub edx, eax
cmp edx, 0x64
jl 0x4fb775
lea eax, [rsi + rsi]
movsxd rcx, eax
call qword [0x0059d858]
mov rbx, rax
test rbx, rbx
je 0x4fb88f
mov r12, qword [rbp + 0x2e0]
mov rdx, qword [r12 + 0x20]
movsxd r8, dword [r12 + 0x6c]
add r8, r8
mov rcx, rbx
call sub.msvcrt.dll_memcpy
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 0x4fa5f2
call qword [fcn.004ef890]
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 0x4fa9a5
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 0x4fa09b
jmp 0x4fa26b
lea ecx, [r10 - 0x1d]
cmp ecx, 5
ja 0x4fa703
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 0x4f7257
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 0x4f7250
mov eax, dword [rbp + 0x1b8]
mov dword [rbp + 0xdc], eax
mov rsi, qword [rbp + 0x1c8]
jmp 0x4fa2e0
mov r12, qword [rbp + 0x2e0]
jmp 0x4fa3e5
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 0x4f787b
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 0x4fa823
add rax, 0xfffffffffffffffe
cmp rax, 3
jbe 0x4fba61
mov rax, qword [rbp + 0x2e8]
test rax, rax
lea rdx, [0x0059dca0]
mov esi, dword [rdx + rcx*4 + 8]
mov word [r14], si
je 0x4fa83e
add dword [rax], r15d
mov word [r14 + 2], 0
add r14, 4
jmp 0x4fa86c
cmp esi, 1
jbe 0x4fbac8
lea rax, [0x0059dca0]
movzx eax, word [rax + rcx*4 + 4]
mov word [r14], ax
jmp 0x4fa875
lea rcx, [r14 + 4]
mov word [r14 + 2], r15w
lea eax, [r15 + r15]
movsxd r8, eax
mov rdx, rdi
call sub.msvcrt.dll_memcpy
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 0x4fa8a9
mov dword [r12 + 0xa0], 1
xor r15d, r15d
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
jmp 0x4f7257
add eax, 0xffffff66
movzx eax, ax
cmp eax, 1
mov rax, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x1c8]
ja 0x4fa8d2
mov rcx, rax
mov rax, qword [rbp + 0x50]
or byte [rax + 1], 0x10
mov rax, rcx
xor r15d, r15d
jmp 0x4f7257
test r15d, r15d
jne 0x4fba61
mov rax, qword [rbp + 0x2e0]
mov dword [rax + 0x9c], 1
mov rax, qword [rax + 0x48]
test rax, rax
je 0x4fa929
mov rdx, qword [rbp + 0x2e8]
test rdx, rdx
je 0x4fa90e
add dword [rdx], 3
jmp 0x4fa921
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 0x4fa904
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 0x4fa879
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 0x4f5485
xor eax, eax
test r10d, r10d
setne al
mov r10d, eax
jmp 0x4f824d
mov qword [rbp + 0x1c8], rsi
movzx ecx, word [rax + 6]
cmp ecx, 0x3f
jne 0x4faa6b
movzx ecx, word [rax + 8]
cmp ecx, 0x43
jne 0x4faa6b
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 0x4faa33
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 0x4fbb34
movzx ecx, word [rbx + 2]
cmp ecx, 0x3f
jne 0x4facaf
movzx ecx, word [rbx + 4]
cmp ecx, 0x21
je 0x4faaa7
movzx ecx, cx
cmp ecx, 0x3d
je 0x4faaa7
cmp ecx, 0x3c
jne 0x4facaf
movzx ecx, word [rbx + 6]
cmp ecx, 0x3d
je 0x4faaa7
movzx ecx, cx
cmp ecx, 0x21
jne 0x4facaf
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 0x4f787b
movzx ecx, word [rax + 6]
cmp rcx, 0x21
je 0x4faf1c
movzx edx, cx
cmp edx, 0x3d
jne 0x4faf49
mov r12, qword [rbp + 0x2e0]
inc dword [r12 + 0x8c]
add rax, 8
mov qword [rbp + 0x1f0], rax
mov ebx, 0x7f
jmp 0x4faf3b
inc dword [r12 + 0x8c]
add rax, 6
mov qword [rbp + 0x1f0], rax
mov ebx, 0x7d
jmp 0x4faf3b
add rax, 6
mov qword [rbp + 0x1f0], rax
mov ebx, 0x81
jmp 0x4faf3b
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 0x4fabb3
add rax, 8
xor ebx, ebx
lea ebx, [rbx + rbx*4]
movzx edx, si
lea edi, [rdx + rbx*2]
cmp edi, 0x130
jge 0x4fb136
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 0x4fab78
add rax, 0xfffffffffffffffe
mov qword [rbp + 0x1f0], rax
mov rdi, rax
movzx eax, si
cmp eax, 0x29
jne 0x4faef4
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 0x4fb150
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 0x4faf06
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.0x4f757f.5
lea rcx, [rax + 6]
mov qword [rbp + 0x1f0], rcx
movzx eax, word [rax + 6]
xor r10d, r10d
cmp eax, 0x29
je 0x4fa2e0
jmp 0x4fba07
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 0x4f787b
mov esi, 5
mov eax, 5
jmp 0x4faeda
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.0x4face4.1
lea rbx, [0x004fbf04]
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 0x4fb253
add r15, 2
xor eax, eax
cmp eax, 0xccccccc
jge 0x4fbada
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 0x4fad20
add r15, 0xfffffffffffffffe
xor edx, edx
mov qword [rbp + 0x1b8], rdx
mov rdx, r15
xor r15d, r15d
jmp 0x4fb39a
mov eax, esi
cmp eax, 2
jl 0x4fae93
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 0x4fb10d
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 0x4fae20
mov rdx, qword [rbp + 0x2e0]
mov dword [rdx + 0x7c], ecx
mov r10d, ecx
test r11, r11
je 0x4fae3e
mov rdx, r11
cmp word [rdx + 8], cx
je 0x4fae38
mov rdx, qword [rdx]
test rdx, rdx
jne 0x4fae28
jmp 0x4fae3e
mov word [rdx + 0xa], 1
or esi, edi
lea rax, [rax + r9*2]
cmp rax, rbx
jb 0x4fadf9
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 0x4f7257
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 0x4fa3f1
mov esi, 7
mov eax, 7
mov r13, qword [rbp + 0x198]
mov r9, qword [rbp + 0x1e0]
mov r12, qword [rbp + 0x2e0]
jmp 0x4fa7d4
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x27
jmp 0x4fb14a
mov r10d, 0x3e
movzx eax, ax
cmp eax, 0x3c
mov rsi, rdi
je case.0x4f757f.6
jmp 0x4fbb10
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 0x4f7878
cmp ecx, 0xff
mov rdx, qword [rbp + 0x2e0]
ja 0x4fbb5f
mov rdx, qword [rdx + 0x18]
mov r10d, 0x3e
test byte [rdx + rcx], 0x10
je 0x4fbb5f
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 0x4fb98c
movzx ecx, ax
cmp ecx, 0xff
ja 0x4fafe9
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 0x4fafd3
mov qword [rbp + 0x1f0], rbx
movzx eax, word [rbx]
add rbx, 2
cmp eax, 0x100
jb 0x4fafb5
add rbx, 0xfffffffffffffffe
mov rcx, rbx
cmp qword [rbp + 0x2e8], 0
jne 0x4faffa
jmp 0x4fb232
mov rcx, r12
cmp qword [rbp + 0x2e8], 0
je 0x4fb232
movzx eax, ax
cmp r10d, eax
jne 0x4fb9d1
mov rax, qword [rbp + 0x2e0]
mov eax, dword [rax + 0x60]
cmp eax, 0x2710
jge 0x4fbb22
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 0x4fb05b
mov rdx, qword [rbp + 0x2e0]
mov dword [rdx + 0x64], ecx
cmp dword [rbp + 0x150], 0x21
jge 0x4fb9f5
inc r13d
test eax, eax
jle 0x4fb0e0
mov rdi, qword [rbp + 0x2e0]
mov r15, qword [rdi + 0x50]
add r15, 0xc
xor esi, esi
mov rbx, qword [rbp + 0x150]
jmp 0x4fb0af
cmp dword [r15], r13d
je 0x4fb4a3
test dword [rbp + 0x1fc], 0x80000
je 0x4fbafe
mov rdi, qword [rbp + 0x2e0]
mov dword [rdi + 0xa8], 1
mov rbx, qword [rbp + 0x150]
jmp 0x4fb0d1
cmp dword [r15 - 4], ebx
jne 0x4fb0c8
mov rdx, qword [r15 - 0xc]
mov rcx, r12
mov r8d, ebx
call fcn.005598d0
test eax, eax
je 0x4fb07c
cmp dword [r15], r13d
je 0x4fbab6
inc esi
mov eax, dword [rdi + 0x60]
add r15, 0x10
cmp esi, eax
jl 0x4fb0af
jmp 0x4fb0e2
xor esi, esi
cmp esi, eax
jl 0x4fb232
mov rcx, qword [rbp + 0x2e0]
movsxd rsi, dword [rcx + 0x68]
cmp eax, esi
jge 0x4fb1a8
mov rcx, qword [rbp + 0x2e0]
mov rbx, qword [rcx + 0x50]
jmp 0x4fb209
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 0x4f9b3e
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 0x4f9ac4
jmp 0x4f5190
mov rcx, rsi
shl rcx, 5
call qword [0x0059d858]
mov rbx, rax
test rbx, rbx
je 0x4fbb7c
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 sub.msvcrt.dll_memcpy
cmp dword [rdi + 0x68], 0x15
jl 0x4fb1f8
mov rax, qword [rbp + 0x2e0]
mov rcx, qword [rax + 0x50]
call qword [fcn.004ef890]
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 0x4f7676
xor eax, eax
mov rdx, r15
xor r15d, r15d
xor edi, edi
mov qword [rbp + 0x1b8], rdi
jmp 0x4fb39a
add rax, 8
mov qword [rbp + 0x1f0], rax
mov ecx, 0x27
jmp 0x4fb2d1
lea eax, [rcx - 0x30]
movzx eax, ax
xor r8d, r8d
cmp eax, 9
mov eax, 0
mov qword [rbp + 0x1b8], rax
jbe 0x4facf9
jmp 0x4fb2df
add rax, 8
mov qword [rbp + 0x1f0], rax
mov ecx, 0x3e
jmp 0x4fb2d1
movzx ecx, word [rax + 8]
cmp ecx, 0x26
jne 0x4fb491
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 0x4fb98c
movzx eax, cx
cmp eax, 0xff
ja 0x4fbb34
mov rax, qword [rbp + 0x2e0]
mov rax, qword [rax + 0x18]
movzx ecx, cx
test byte [rax + rcx], 0x10
je 0x4fbb34
lea rdx, [r15 + 2]
mov qword [rbp + 0x1f0], rdx
movzx ecx, word [r15 + 2]
cmp ecx, 0xff
ja 0x4fb353
lea rdx, [r15 + 4]
movzx ebx, cx
test byte [rax + rbx], 0x10
je 0x4fb34f
mov qword [rbp + 0x1f0], rdx
movzx ecx, word [rdx]
add rdx, 2
cmp ecx, 0xff
jbe 0x4fb330
add rdx, 0xfffffffffffffffe
mov r12, rdx
sub r12, r15
shr r12, 1
mov r8d, 0xffffffff
cmp dword [rbp + 0x1b8], 0
jle 0x4fb38d
lea rbx, [rdx + 2]
mov qword [rbp + 0x1f0], rbx
cmp cx, word [rbp + 0x1b8]
jne 0x4fbb46
mov cx, word [rbx]
xor eax, eax
mov rdx, rbx
jmp 0x4fb38f
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 0x4fbb46
cmp qword [rbp + 0x2e8], 0
je 0x4fb3e0
mov ecx, dword [rbp + 0x1fc]
mov r12, qword [rbp + 0x2e0]
mov rsi, qword [rbp + 0x1c8]
mov ebx, 0x87
mov r9d, dword [rbp + 0x150]
jmp 0x4f7878
test bl, bl
je 0x4fb41f
test eax, eax
jle 0x4fbb8e
test r8d, r8d
je 0x4fb546
cmp r8d, 0x2d
jne 0x4fb534
mov ecx, 1
sub ecx, eax
mov rax, qword [rbp + 0x2e0]
add ecx, dword [rax + 0x70]
mov eax, ecx
test eax, eax
jg 0x4fb546
jmp 0x4fb9bf
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 0x4fb4ba
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.005598d0
test eax, eax
jne 0x4fb46a
cmp word [rdi + rsi*2], 0
je 0x4fb5be
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 0x4fb445
jmp 0x4fb5c8
xor eax, eax
mov qword [rbp + 0x1b8], rax
mov cx, 0x52
jmp 0x4fb2fc
mov rax, qword [rbp + 0x2e0]
mov eax, dword [rax + 0x60]
cmp esi, eax
jge 0x4fb0ea
jmp 0x4fb232
xor ebx, ebx
cmp ebx, eax
jl 0x4fb5d0
cmp dword [rbp + 0x1b8], 0
jne 0x4fb9bf
movzx eax, word [r15]
cmp eax, 0x52
jne 0x4fb582
cmp r12d, 1
jle 0x4fb668
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 0x4fb9bf
cmp eax, 0xccccccc
jge 0x4fb919
lea eax, [rax + rax*4]
lea eax, [rbx + rax*2 - 0x30]
inc rdx
cmp rdx, rcx
jl 0x4fb4f2
test eax, eax
mov word [r14 + 4], 0x8f
jne 0x4fb673
jmp 0x4fb66f
mov rcx, qword [rbp + 0x2e0]
add eax, dword [rcx + 0x70]
test eax, eax
jle 0x4fb9bf
mov rcx, qword [rbp + 0x2e0]
cmp eax, dword [rcx + 0x74]
jg 0x4fb9bf
mov word [r14 + 6], ax
mov rcx, qword [rbp + 0x2e0]
cmp eax, dword [rcx + 0x7c]
jle 0x4fb3bb
mov r12, qword [rbp + 0x2e0]
mov dword [r12 + 0x7c], eax
mov ecx, dword [rbp + 0x1fc]
jmp 0x4fb3c8
cmp r12d, 6
jne 0x4fb9bf
mov r8d, 6
mov rcx, r15
lea rdx, str.DEFINE
call fcn.00559910
test eax, eax
jne 0x4fb9bf
mov word [r14 + 4], 0x91
xor r10d, r10d
mov r9d, 1
jmp 0x4fb743
mov rax, qword [rbp + 0x2e0]
mov eax, dword [rax + 0x60]
cmp ebx, eax
jge 0x4fb4c4
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 0x4fb5fa
mov rdx, qword [rbp + 0x2e0]
mov dword [rdx + 0x7c], ecx
lea ecx, [rbx + 1]
cmp ecx, eax
jge 0x4fb685
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.005598d0
test eax, eax
jne 0x4fb67a
cmp word [r13 + rdi*2], 0
jne 0x4fb71c
lea eax, [rsi + 1]
lea ecx, [rbx + rsi + 1]
mov rdx, qword [rbp + 0x2e0]
cmp ecx, dword [rdx + 0x60]
mov esi, eax
jl 0x4fb60d
jmp 0x4fb71e
mov word [r14 + 4], 0x8f
mov ax, 0xffff
mov word [r14 + 6], ax
jmp 0x4fb691
mov eax, esi
cmp eax, 2
jge 0x4fb727
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 0x4f787b
add ecx, 0xffffffd0
movzx ecx, cx
cmp ecx, 9
ja 0x4fb6e2
movzx ecx, word [rax]
lea edx, [rcx - 0x30]
movzx edx, dx
add rax, 2
cmp edx, 0xa
jb 0x4fb6c4
movzx eax, cx
cmp eax, 0x7d
je 0x4f7607
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 0x4f7257
mov eax, esi
cmp eax, 2
jl 0x4fb685
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 0x4f787b
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 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x34
jmp 0x4fb819
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 0x4fb879
movsxd rax, dword [rdx]
mov ecx, 0x7fffffeb
sub rcx, rax
sub r14, rsi
sar r14, 1
cmp r14, rcx
jle 0x4fb873
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 0x4fb775
add r14d, eax
mov dword [rdx], r14d
mov eax, 1
jmp 0x4fb829
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x47
jmp 0x4fb819
mov ecx, 0x15
jmp 0x4fb775
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3c
jmp 0x4fb819
mov ecx, 5
mov rdx, qword [rbp + 0x1d8]
mov dword [rdx], ecx
mov qword [rbp + 0x1f0], rax
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 9
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 6
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x12
jmp 0x4fb819
add rbx, 0xfffffffffffffffe
movzx eax, word [rbx + 2]
add rbx, 2
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 0xa
jb 0x4fb8ff
mov qword [rbp + 0x1f0], rbx
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3d
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x40
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x28
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x52
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xe
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xc
mov qword [rbp + 0x1f0], rdx
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x54
jmp 0x4fb819
cmp r10d, 6
je 0x4fb819
jmp 0x4fb829
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x45
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xf
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x2a
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3e
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x30
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1d
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x36
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1b
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0xb
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3f
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3b
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x3a
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 7
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x4b
jmp 0x4fb819
mov ecx, 4
mov rax, r8
jmp 0x4fb8b0
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x41
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x42
jmp 0x4fb819
add r15, 0xfffffffffffffffe
movzx eax, word [r15 + 2]
add r15, 2
add eax, 0xffffffd0
movzx eax, ax
cmp eax, 0xa
jb 0x4fbade
mov qword [rbp + 0x1f0], r15
jmp 0x4fb919
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x2b
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x29
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x31
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1c
jmp 0x4fb819
mov qword [rbp + 0x1f0], rdx
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x1a
jmp 0x4fb819
add rax, 6
mov qword [rbp + 0x1f0], rax
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x18
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x15
jmp 0x4fb819
mov rax, qword [rbp + 0x1d8]
mov dword [rax], 0x23
jmp 0x4fb819