Function at 0x4f2020
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x218
movaps xmmword [rsp + 0x200], xmm6
mov r15d, r9d
mov rax, rcx
mov r12, qword [rsp + 0x288]
mov rbp, qword [rsp + 0x280]
mov ecx, 0xffffffff
mov qword [rsp + 0x58], rax
mov rax, qword [rax]
mov qword [rsp + 0xc0], rax
mov rax, qword [rbp + 0x60]
mov qword [rsp + 0x88], rax
mov rdi, qword [r8 + 8]
movzx r9d, byte [rbp + 0x40]
imul r11, r9, 0x68
mov eax, dword [rdi + r11 + 0x4c]
mov ebx, 1
cmp dword [r8 + 0x270], eax
mov qword [rsp + 0x50], rdx
je 0x4f20f6
mov ebp, dword [r8 + 0x26c]
cmp ebp, 2
jl 0x4f20d9
mov r10, rdi
add rbp, 0xffffffffffffffff
mov esi, 1
xor ebx, ebx
xor edi, edi
nop dword [rax + rax]
cmp dword [r8 + rdi*4 + 0x274], eax
je 0x4f20dd
add rsi, 1
add rdi, 1
cmp rbp, rdi
jne 0x4f20c0
jmp 0x4f20ee
xor ebx, ebx
jmp 0x4f20f6
add edi, 1
xor ecx, edi
not ecx
and ecx, edi
mov ebx, 1
shl rbx, cl
mov rdx, qword [rsp + 0x50]
mov rdi, r10
mov qword [rsp + 0x90], r11
mov dword [rsp + 0x4c], eax
mov rcx, rbx
not rcx
movabs rbp, 0x19892f4d3167b7d4
and rcx, rbp
not rbp
and rbx, rbp
or rbx, rcx
xor rbx, rbp
not rbx
mov rax, r12
not rax
mov qword [rsp + 0x110], rax
or rbx, rax
not rbx
mov rbp, qword [rsp + 0x280]
mov qword [rbp + 0x68], rbx
mov r13, qword [r8 + 0x78]
mov ecx, r15d
shr r13, cl
mov rcx, qword [rsp + 0x58]
mov ebx, dword [rcx + 0x44]
lea r14d, [rbx - 1]
mov dword [rbp + 0x10], r14d
mov dword [rbp + 0xc], r14d
add ebx, 0xfffffffe
mov dword [rcx + 0x44], ebx
mov qword [rsp + 0x108], rbx
mov dword [rbp + 0x18], ebx
test r9b, r9b
mov qword [rsp + 0x40], r8
je 0x4f21e7
mov rax, qword [rsp + 0x90]
mov al, byte [rdi + rax + 0x44]
not al
or al, 0xf7
cmp al, 0xff
je 0x4f21e7
mov rax, qword [rsp + 0x58]
mov r9d, dword [rax + 0x38]
add r9d, 1
mov dword [rax + 0x38], r9d
mov dword [rbp], r9d
movsxd rax, dword [rdx + 0x90]
cmp dword [rdx + 0x94], eax
jle 0x4f222a
lea ecx, [rax + 1]
mov dword [rdx + 0x90], ecx
mov rcx, qword [rdx + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x47
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
mov esi, r15d
test r15d, r15d
jle 0x4f224f
mov esi, r15d
nop word cs:[rax + rax]
nop dword [rax]
mov eax, esi
imul rax, rax, 0x70
cmp dword [r8 + rax + 0x370], 0
jne 0x4f224f
cmp qword [r8 + rax + 0x3a8], 0
jne 0x4f224f
lea eax, [rsi - 1]
cmp esi, 1
mov esi, eax
jg 0x4f2200
xor esi, esi
jmp 0x4f224f
mov dword [rsp + 0x20], 0
mov rcx, rdx
mov edx, 0x47
xor r8d, r8d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov esi, r15d
test r15d, r15d
jg 0x4f21ef
lea rax, [r8 + 0x80]
mov qword [rsp + 0x120], rax
mov rdx, qword [rsp + 0x90]
mov ecx, dword [rdi + rdx + 0x48]
mov eax, ecx
not eax
or eax, 0xffffffdf
cmp eax, 0xffffffff
je 0x4f2306
mov eax, dword [rdi + rdx + 0x38]
mov rbx, rdi
mov edi, dword [rdi + rdx + 0x3c]
mov rsi, qword [rsp + 0x50]
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
mov r13, rdx
jle 0x4f2363
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0xa
mov dword [rdx + rcx*8 + 4], edi
mov dword [rdx + rcx*8 + 8], 0
mov dword [rdx + rcx*8 + 0xc], eax
mov qword [rdx + rcx*8 + 0x10], 0
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jg 0x4f238c
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0xb
mov r8d, edi
mov r9d, r14d
call fcn.0047df60
jmp 0x4f23c4
mov qword [rsp + 0x78], rdi
mov eax, r13d
and eax, 1
mov qword [rsp + 0xa8], rax
mov rbx, qword [rsp + 0x88]
mov edi, dword [rbx + 0x38]
mov ebp, edi
not ebp
mov edx, ebp
or edx, 0xfffffbff
cmp edx, 0xffffffff
je 0x4f23da
movzx ebp, word [rbx + 0x3c]
lea eax, [rbp + 2]
mov rdx, qword [rsp + 0x58]
mov ecx, dword [rdx + 0x28]
sub ecx, eax
mov r15, rbx
jge 0x4f2500
mov ecx, dword [rdx + 0x38]
lea ebx, [rcx + 1]
add ecx, eax
mov dword [rdx + 0x38], ecx
jmp 0x4f250b
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov edx, 0xa
mov r8d, edi
xor r9d, r9d
call fcn.0047df60
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f22e6
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0xb
mov dword [rdx + rcx*8 + 4], edi
mov dword [rdx + rcx*8 + 8], r14d
mov dword [rdx + rcx*8 + 0xc], 0
mov qword [rdx + rcx*8 + 0x10], 0
mov r8, qword [rsp + 0x40]
mov dword [rbp + 0x48], eax
mov byte [rbp + 0x41], 8
xor esi, esi
mov rdi, rbx
jmp 0x4f69be
movsxd rdx, esi
imul rdx, rdx, 0x70
mov r9d, dword [r8 + rdx + 0x37c]
mov edx, ebp
or edx, 0xfffffeff
cmp edx, 0xffffffff
not edx
sete r10b
mov eax, ebp
or eax, 0xfffffffa
cmp eax, 0xffffffff
not eax
sete bl
xor bl, r10b
or eax, edx
sete al
test bl, bl
jne 0x4f2c20
test al, al
jne 0x4f2c20
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x48]
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x58]
mov esi, dword [rcx + 0x38]
add esi, 1
mov dword [rcx + 0x38], esi
mov dword [rsp + 0x28], esi
mov rax, qword [rsp + 0xa8]
mov dword [rsp + 0x20], eax
mov rbx, qword [rsp + 0x280]
mov r8, rbx
xor r9d, r9d
call fcn.005045f0
mov edi, eax
cmp eax, esi
sete al
test esi, esi
sete cl
test cl, al
jne 0x4f2494
xor cl, al
jne 0x4f2494
mov rax, qword [rsp + 0x58]
movzx eax, byte [rax + 0x1f]
cmp rax, 7
ja 0x4f2494
lea ecx, [rax + 1]
mov rdx, qword [rsp + 0x58]
mov byte [rdx + 0x1f], cl
mov dword [rdx + rax*4 + 0xd8], esi
mov ebp, dword [rbx + 0x10]
mov r8d, dword [rbx + 0x34]
test r8d, r8d
mov rsi, qword [rsp + 0x50]
mov ebx, dword [rsp + 0x4c]
mov r13, qword [rsp + 0x90]
je 0x4f2d27
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f2cd6
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x3f
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], ebp
mov dword [rdx + rcx*8 + 0xc], edi
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4f2cea
mov ebx, dword [rdx + 0x2c]
add eax, ebx
mov dword [rdx + 0x2c], eax
mov dword [rdx + 0x28], ecx
mov rsi, qword [rsp + 0x50]
mov rax, qword [rsp + 0x280]
mov eax, dword [rax + 0xc]
mov dword [rsp + 0x70], eax
test bp, bp
mov qword [rsp + 0x98], rbx
je 0x4f271c
lea r12d, [rbx + 2]
xor r14d, r14d
xor r13d, r13d
jmp 0x4f258d
mov dword [rsp + 0x28], ebx
mov rax, qword [rsp + 0xa8]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x58]
mov rdx, rdi
mov rsi, qword [rsp + 0x280]
mov r8, rsi
mov r9d, r13d
call fcn.005045f0
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x70], eax
mov rsi, qword [rsp + 0x50]
nop word cs:[rax + rax]
nop dword [rax]
add r13, 1
cmp rbp, r13
je 0x4f271c
mov rax, qword [r15 + 0x48]
mov rdi, qword [rax + r13*8]
test rdi, rdi
je 0x4f2580
lea rbx, [r12 + r13]
mov eax, dword [rdi + 0x14]
mov ecx, eax
xor ecx, 0xfffe
test cx, ax
je 0x4f2650
mov eax, 1
mov ecx, r13d
shl eax, cl
cmp r13, 0x20
cmovae eax, r14d
mov ecx, dword [r15 + 0x30]
xor eax, ecx
not eax
test eax, ecx
je 0x4f253c
mov rcx, qword [rsp + 0x58]
mov r15d, dword [rcx + 0x34]
mov esi, dword [rcx + 0x38]
lea eax, [r15 + 1]
mov dword [rcx + 0x34], eax
add esi, 1
mov dword [rcx + 0x38], esi
mov rdx, qword [rdi]
mov r8d, r15d
call fcn.004d1ee0
mov rdi, qword [rsp + 0x50]
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4f26d8
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0xae
mov dword [rcx + rax*8 + 4], r15d
mov dword [rcx + rax*8 + 8], ebx
mov dword [rcx + rax*8 + 0xc], esi
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f26ef
mov rax, qword [rdi]
mov rdx, qword [rax + 0x18]
mov rcx, qword [rsp + 0x58]
mov r8d, ebx
mov r9d, 1
call fcn.005054c0
cmp byte [rdi + 0x17], 0x4a
jne 0x4f2580
mov eax, dword [r15 + 0x1c]
mov ecx, eax
xor ecx, 0xfffffffd
test ecx, eax
mov rax, qword [rsp + 0x40]
je 0x4f2580
mov rax, qword [rax + 0x28]
mov r9d, dword [rax + 0xc]
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f26ff
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x47
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f2580
mov dword [rsp + 0x20], esi
mov rcx, rdi
mov edx, 0xae
mov r8d, r15d
mov r9d, ebx
call fcn.0047df60
mov rsi, rdi
mov r15, qword [rsp + 0x88]
jmp 0x4f2580
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x47
xor r8d, r8d
call fcn.0047df60
jmp 0x4f2580
mov r8d, dword [r15 + 0x18]
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f276e
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x47
mov dword [rcx + rax*8 + 4], r8d
mov rdi, qword [rsp + 0x98]
mov dword [rcx + rax*8 + 8], edi
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f278e
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x47
mov rdi, qword [rsp + 0x98]
mov r9d, edi
call fcn.0047df60
mov r14d, dword [rsp + 0x4c]
mov r13, qword [rsp + 0x90]
lea r9d, [rdi + 1]
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f27e5
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x47
mov dword [rcx + rax*8 + 4], ebp
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f27fd
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x47
mov r8d, ebp
call fcn.0047df60
mov rax, qword [r15 + 0x28]
mov ecx, dword [r15 + 0x1c]
mov edx, ecx
xor edx, 0xfffffffe
xor ebx, ebx
test edx, ecx
sete bl
lea ecx, [rbx + rbx*4 - 6]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
mov dword [rsp + 0x30], ecx
mov rcx, rsi
mov edx, 6
mov r8d, r14d
mov r9d, dword [rsp + 0x70]
call fcn.004c62a0
mov eax, dword [r15 + 0x1c]
mov ecx, eax
xor ecx, 1
and ecx, eax
mov dword [r15 + 0x1c], ecx
mov rax, qword [rsp + 0xc0]
cmp byte [rax + 0x67], 0
je 0x4f285c
mov qword [r15 + 0x28], 0
mov rdx, qword [rsp + 0x280]
mov dword [rdx + 0x44], r14d
mov r8, qword [rsp + 0x40]
cmp byte [r8 + 0x4a], 0
mov eax, 0x3e
mov ecx, 0xb8
cmove ecx, eax
xor r12d, r12d
mov byte [rdx + 0x41], cl
mov eax, dword [rsi + 0x90]
mov dword [rdx + 0x48], eax
test bp, bp
je 0x4f2c0c
add edi, 2
mov qword [rsp + 0x98], rdi
mov r14d, ebp
xorps xmm6, xmm6
xor ebp, ebp
mov rsi, qword [rsp + 0xc0]
jmp 0x4f28f9
mov eax, 0xfffffffe
mov ecx, ebp
rol eax, cl
movzx ecx, word [r15 + 0x22]
not ecx
or ecx, eax
cmp ecx, 0xffffffff
je 0x4f2907
mov rcx, qword [rsp + 0x280]
mov rdx, rdi
call fcn.005057b0
mov r8, qword [rsp + 0x40]
add rbp, 1
cmp rbp, r14
je 0x4f2c0c
mov rax, qword [r15 + 0x48]
mov rdi, qword [rax + rbp*8]
cmp rbp, 0xf
jbe 0x4f28c0
mov eax, dword [rdi + 0x14]
mov ecx, eax
xor ecx, 0xfffe
test cx, ax
je 0x4f28ec
mov eax, 1
mov ecx, ebp
shl eax, cl
cmp rbp, 0x20
cmovae eax, r12d
mov ecx, dword [r15 + 0x30]
xor eax, ecx
not eax
test eax, ecx
jne 0x4f28ec
cmp byte [rsi + 0x67], 0
jne 0x4f28ec
mov rax, qword [rsp + 0x280]
mov eax, dword [rax + 0x50]
test eax, eax
jle 0x4f2aaa
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rdx]
mov rbx, qword [rsp + 0x98]
lea r10d, [rbx + rbp]
cmp byte [rcx + 0x67], 0
je 0x4f29a1
mov al, byte [0x0213b3e8]
mov r9d, dword [0x0213b3f0]
mov ecx, dword [0x0213b3f4]
cmp al, 0x87
je 0x4f2a2b
cmp al, 0x5e
jne 0x4f2aaa
mov al, 0x5e
lea r11, [0x0213b3e8]
cmp ecx, r10d
je 0x4f2a48
jmp 0x4f2aaa
mov rcx, qword [rsp + 0x280]
mov r8, qword [rcx + 0x58]
mov rcx, qword [rdx + 0x88]
shl rax, 2
lea r9, [rax + rax*4]
xor esi, esi
xor eax, eax
jmp 0x4f29e8
cmp dword [rcx + rbx*8 + 0xc], r10d
je 0x4f2a41
add rax, 1
add rsi, 0x14
cmp r9, rsi
je 0x4f2aaa
mov edx, dword [r8 + rsi + 4]
test edx, edx
jns 0x4f29ff
mov rdx, qword [rsp + 0x50]
mov edx, dword [rdx + 0x90]
add edx, 0xffffffff
movsxd rdx, edx
lea rbx, [rdx + rdx*2]
lea r11, [rcx + rbx*8]
movzx edx, byte [rcx + rbx*8]
cmp dl, 0x5e
je 0x4f29d0
cmp dl, 0x87
jne 0x4f29d7
cmp dword [rcx + rbx*8 + 8], r10d
jne 0x4f29d7
mov r9d, r10d
mov r10d, dword [rcx + rbx*8 + 0xc]
mov al, 0x87
jmp 0x4f2a48
mov al, 0x87
lea r11, [0x0213b3e8]
cmp r9d, r10d
mov r9d, r10d
mov r10d, ecx
je 0x4f2a48
jmp 0x4f2aaa
mov r9d, dword [rcx + rbx*8 + 8]
mov al, 0x5e
mov r8d, dword [r11 + 4]
mov rcx, qword [rsp + 0x50]
movsxd rbx, dword [rcx + 0x90]
cmp dword [rcx + 0x94], ebx
jle 0x4f2a9d
lea edx, [rbx + 1]
mov dword [rcx + 0x90], edx
mov rdx, qword [rcx + 0x88]
lea rcx, [rbx + rbx*2]
mov byte [rdx + rcx*8], al
mov word [rdx + rcx*8 + 2], 0
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], r9d
mov dword [rdx + rcx*8 + 0xc], r10d
mov qword [rdx + rcx*8 + 0x10], 0
mov byte [rdx + rcx*8 + 1], 0
jmp 0x4f2aaa
movzx edx, al
mov dword [rsp + 0x20], r10d
call fcn.0047df60
mov rsi, qword [rsp + 0x58]
mov rcx, qword [rsi]
mov edx, 0x48
call fcn.00429840
mov rbx, rax
test rax, rax
je 0x4f2b22
movups xmmword [rbx], xmm6
movups xmmword [rbx + 0x30], xmm6
movups xmmword [rbx + 0x20], xmm6
movups xmmword [rbx + 0x10], xmm6
mov qword [rbx + 0x40], 0
mov byte [rbx], 0x35
mov word [rbx + 0x32], 0xffff
mov dword [rbx + 0x28], 1
mov rax, qword [rsi]
mov r8d, dword [rax + 0x94]
test r8d, r8d
jg 0x4f2b0b
mov rcx, qword [rsp + 0x58]
lea rdx, [0x00603afc]
call fcn.00419aa0
mov rsi, qword [rsp + 0xc0]
cmp byte [rsi + 0x67], 0
mov r15, rbx
jne 0x4f2bef
jmp 0x4f2b3c
mov rsi, qword [rsp + 0xc0]
cmp byte [rsi + 0x67], 0
mov r8, qword [rsp + 0x40]
jne 0x4f28ec
xor r15d, r15d
mov eax, dword [rdi + 0x24]
mov rcx, qword [rdi]
mov rcx, qword [rcx + 0x10]
test eax, eax
jle 0x4f2b60
mov rcx, qword [rcx + 0x20]
add eax, 0xffffffff
shl rax, 5
mov rax, qword [rcx + rax + 8]
mov qword [rbx + 0x10], rax
jmp 0x4f2b64
mov qword [rbx + 0x10], rcx
mov edx, 0x49
mov rcx, rsi
call fcn.00429840
test rax, rax
je 0x4f2bdf
movups xmmword [rax], xmm6
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x20], xmm6
movups xmmword [rax + 0x10], xmm6
mov qword [rax + 0x40], 0
mov byte [rax], 0xb0
mov word [rax + 0x32], 0xffff
mov rcx, rax
add rcx, 0x48
mov qword [rax + 8], rcx
mov byte [rax + 0x48], 0
mov dword [rax + 0x28], 1
mov qword [rbx + 0x18], rax
mov rcx, qword [rsp + 0x98]
lea ecx, [rcx + rbp]
mov dword [rax + 0x2c], ecx
mov rax, qword [rsp + 0x280]
mov r8d, dword [rax + 0x18]
mov rcx, qword [rsp + 0x58]
mov rdx, r15
mov r9d, 0x10
call fcn.004cdaa0
jmp 0x4f2be7
mov qword [rbx + 0x18], 0
mov qword [rbx + 0x10], 0
mov rcx, rsi
mov rdx, r15
call fcn.00468370
mov r8, qword [rsp + 0x40]
mov r15, qword [rsp + 0x88]
jmp 0x4f28ec
mov rbp, qword [rsp + 0x280]
mov rdi, qword [rsp + 0x78]
xor esi, esi
jmp 0x4f69be
mov eax, ebp
or eax, 0xfffffefd
cmp eax, 0xfffffefd
jne 0x4f2c5f
mov eax, ebp
or eax, 0xffffffdf
cmp eax, 0xffffffff
mov rsi, qword [rsp + 0x50]
je 0x4f2d9c
mov rbx, qword [rsp + 0x88]
mov rax, qword [rbx + 0x48]
mov rdx, qword [rax]
mov ecx, 1
mov r12, qword [rsp + 0x58]
jmp 0x4f2dad
or ebp, 0xfffffdff
cmp ebp, 0xffffffff
mov r14, qword [rsp + 0x50]
je 0x4f2dce
mov rdx, qword [rsp + 0x88]
movzx ebp, word [rdx + 0x18]
movzx esi, word [rdx + 0x1a]
movzx eax, word [rdx + 0x1c]
mov dword [rsp + 0xf0], eax
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x280]
mov eax, dword [rax + 8]
mov dword [rsp + 0xe0], eax
mov eax, edi
xor eax, 0xffffffdf
test eax, edi
mov rax, rbp
mov qword [rsp + 0xb0], rbp
je 0x4f2f50
movzx ecx, si
mov rax, qword [rdx + 0x48]
lea edx, [rbp + 1]
mov ebp, ebp
mov rbx, qword [rax + rbp*8]
jmp 0x4f2f56
mov dword [rsp + 0x20], edi
mov rcx, rsi
mov edx, 0x3f
mov r9d, ebp
call fcn.0047df60
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
jne 0x4f2d12
mov rcx, qword [rsi + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], 1
mov qword [rsp + 0x20], r12
mov rcx, qword [rsp + 0x58]
mov r8d, r15d
mov r9d, ebp
call fcn.005059c0
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f2d68
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x1d
mov dword [rcx + rax*8 + 4], ebx
mov dword [rcx + rax*8 + 8], ebp
mov dword [rcx + rax*8 + 0xc], edi
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f2d7f
mov dword [rsp + 0x20], edi
mov rcx, rsi
mov edx, 0x1d
mov r8d, ebx
mov r9d, ebp
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x280]
mov byte [rbp + 0x41], 0xb8
xor esi, esi
mov rdi, qword [rsp + 0x78]
jmp 0x4f69be
xor edx, edx
xor ecx, ecx
mov r12, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
mov r15, qword [rsp + 0xa8]
or ebp, 0xffffffef
cmp ebp, 0xffffffff
je 0x4f2ea2
mov rax, qword [rbx + 0x48]
mov rbx, qword [rax + rcx*8]
jmp 0x4f2ea4
mov eax, edi
xor eax, 0xffffdfff
test eax, edi
mov rbp, qword [rsp + 0x280]
je 0x4f30ca
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx + 0x34]
mov edx, dword [rcx + 0x38]
mov qword [rsp + 0x98], rax
add eax, 1
mov dword [rcx + 0x34], eax
add edx, 1
mov dword [rcx + 0x38], edx
mov eax, dword [rcx + 0x44]
mov qword [rsp + 0xf0], rax
add eax, 0xffffffff
mov dword [rsp + 0xa0], eax
mov dword [rcx + 0x44], eax
mov rdi, qword [rsp + 0x78]
mov rax, qword [rsp + 0x90]
mov rax, qword [rdi + rax + 0x28]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x48]
mov rax, qword [rax]
mov qword [rsp + 0xd8], rax
mov rbx, qword [rax + 0x20]
mov byte [rbp + 0x41], 0x43
mov dword [rsp + 0xc8], edx
mov dword [rbp + 0x44], edx
movzx esi, byte [r8 + 0x48]
cmp esi, 2
mov r13d, dword [rsp + 0x4c]
mov qword [rsp + 0x70], rbx
jb 0x4f337a
sub esi, r15d
lea eax, [rsi - 1]
cdqe
imul rdx, rax, 0x68
add rdx, 0x70
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x4f3ddd
call fcn.00429840
jmp 0x4f3de5
xor ebx, ebx
mov rbp, qword [rsp + 0x280]
test r15d, r15d
mov rdi, rdx
cmove rdi, rbx
cmove rbx, rdx
test rbx, rbx
je 0x4f2ee8
mov rsi, qword [rbx]
mov rdx, qword [rsi + 0x18]
mov al, byte [rdx]
cmp al, 0xb0
jne 0x4f2ecf
mov al, byte [rdx + 2]
cmp al, 0x8a
je 0x4f3052
cmp al, 0xb1
jne 0x4f3062
lea rax, [rdx + 0x20]
jmp 0x4f305a
xor eax, eax
test r15d, r15d
sete al
lea edx, [rax*4 + 0x1f]
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f30b0
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], dl
mov word [rcx + rax*8 + 2], 0
mov edx, dword [rsp + 0x4c]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
mov byte [rcx + rax*8 + 1], 0
jmp 0x4f3897
xor ecx, ecx
xor ebx, ebx
mov edx, ebp
mov dword [rsp + 0x98], esi
mov eax, edi
xor eax, 0xffffffef
xor ebp, ebp
mov qword [rsp + 0xa0], rbp
test eax, edi
mov qword [rsp + 0xd8], rbx
je 0x4f3035
movzx r10d, word [rsp + 0xf0]
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 0x48]
mov edx, edx
cmp ecx, r10d
cmova r10d, ecx
mov rcx, qword [rax + rdx*8]
mov rax, rcx
mov qword [rsp + 0xd0], rcx
movzx eax, word [rcx + 0x12]
mov ecx, eax
xor ecx, 0xfeff
test cx, ax
mov rbp, qword [rsp + 0xb0]
je 0x4f31f7
mov rax, qword [rsp + 0x58]
mov r9d, dword [rax + 0x38]
add r9d, 1
mov dword [rax + 0x38], r9d
mov rax, qword [rsp + 0x280]
mov dword [rax + 0x2c], r9d
movsxd rax, dword [r14 + 0x90]
cmp dword [r14 + 0x94], eax
jle 0x4f3168
lea ecx, [rax + 1]
mov dword [r14 + 0x90], ecx
mov rcx, qword [r14 + 0x88]
lea rax, [rax + rax*2]
movabs rdx, 0x100000047
mov qword [rcx + rax*8], rdx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f3189
xor r14d, r14d
mov r10d, ecx
xor eax, eax
mov qword [rsp + 0xd0], rax
mov rbp, qword [rsp + 0xb0]
jmp 0x4f3203
mov rax, qword [rdx + 0x20]
add rax, 0x20
mov rax, qword [rax]
cmp dword [rax], 2
jge 0x4f308c
lea r8, [rsp + 0x130]
mov rcx, r12
call fcn.004caf80
mov r13d, eax
mov rcx, rbp
mov rdx, rbx
call fcn.005057b0
movzx eax, byte [rsi]
add rax, 0xffffffffffffffca
jmp 0x4f37fa
mov al, byte [r12 + 0x1f]
test al, al
je 0x4f37bc
add al, 0xff
mov byte [r12 + 0x1f], al
movzx eax, al
mov r13d, dword [r12 + rax*4 + 0xd8]
jmp 0x4f37ca
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov r8d, dword [rsp + 0x4c]
call fcn.0047df60
jmp 0x4f3897
mov eax, ecx
xor eax, 0xffffffbf
test eax, ecx
mov edi, dword [rsp + 0x4c]
mov r13, qword [rsp + 0x90]
jne 0x4f2d8c
lea rax, [0x0060463c]
mov rcx, qword [rsp + 0xa8]
mov al, byte [rcx + rax]
mov byte [rbp + 0x41], al
mov dword [rbp + 0x44], edi
lea rax, [0x0060463e]
mov bl, byte [rcx + rax]
mov rcx, qword [rsp + 0x50]
movsxd rdx, dword [rcx + 0x90]
cmp dword [rcx + 0x94], edx
jle 0x4f520b
lea eax, [rdx + 1]
mov dword [rcx + 0x90], eax
mov rbp, qword [rcx + 0x88]
lea rdx, [rdx + rdx*2]
mov byte [rbp + rdx*8], bl
mov word [rbp + rdx*8 + 2], 0
mov dword [rbp + rdx*8 + 4], edi
mov dword [rbp + rdx*8 + 8], r9d
mov dword [rbp + rdx*8 + 0xc], 0
mov qword [rbp + rdx*8 + 0x10], 0
mov byte [rbp + rdx*8 + 1], 0
mov rbp, qword [rsp + 0x280]
jmp 0x4f5226
mov dword [rsp + 0x20], 0
mov rcx, r14
mov edx, 0x47
mov r8d, 1
mov esi, r10d
call fcn.0047df60
mov r10d, esi
mov eax, dword [r14 + 0x90]
mov rbx, qword [rsp + 0x280]
mov dword [rbx + 0x30], eax
mov eax, dword [rbx + 0x2c]
add eax, eax
mov dword [rbx + 0x2c], eax
mov rcx, qword [rsp + 0x70]
mov rcx, qword [rcx + 0x38]
xor edx, edx
cmp byte [rcx + rbp], 1
sete dl
mov rdi, qword [rsp + 0xa8]
mov ecx, edi
not ecx
and ecx, edx
not edx
and edx, edi
mov rbp, qword [rsp + 0xb0]
or edx, ecx
not edx
mov ecx, eax
not ecx
and edx, 0xfd1f58ed
and ecx, 0xfd1f58ed
and eax, 0x2e0a712
or eax, ecx
xor eax, edx
mov dword [rbx + 0x2c], eax
mov rbx, qword [rsp + 0xd8]
test rbx, rbx
je 0x4f3341
xor r14d, r14d
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 0x38]
mov ecx, eax
xor ecx, 0xfff7ffcf
and ecx, eax
cmp ecx, 0x80000
jne 0x4f32a4
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax + 0x38]
add ecx, 1
mov dword [rax + 0x38], ecx
mov rsi, qword [rsp + 0x280]
mov qword [rsp + 0xa0], rcx
mov dword [rsi + 0x24], ecx
cmp dword [rsi], 0
je 0x4f33b5
mov rcx, qword [rsp + 0x50]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4f3398
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x47
mov rdx, qword [rsp + 0xa0]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f33b5
xor ebx, ebx
mov rax, qword [rsp + 0x70]
cmp bp, word [rax + 0x60]
jae 0x4f33e0
mov rax, qword [rax + 0x38]
cmp byte [rax + rbp], 0
setne al
mov rcx, r13
xor rcx, 0xfffffffffffffffe
test rcx, r13
setne cl
xor cl, al
mov esi, dword [rsp + 0x98]
movzx eax, sil
movzx r14d, r14b
mov ecx, 0
cmovne ecx, r14d
cmovne r14d, ebx
mov rbx, qword [rsp + 0xd0]
mov rdx, rbx
mov rdi, qword [rsp + 0xd8]
cmovne rdx, rdi
cmovne rdi, rbx
mov qword [rsp + 0xd8], rdi
mov ebx, dword [rsp + 0xf0]
cmove eax, ebx
cmovne esi, ebx
mov dword [rsp + 0x98], esi
mov ebx, ecx
mov qword [rsp + 0xd0], rdx
mov dword [rsp + 0xf0], eax
test r15d, r15d
jg 0x4f33e5
jmp 0x4f3463
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + 8]
movzx eax, word [rax + rbp*2]
test ax, ax
js 0x4f3dcb
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 8]
lea rax, [rax + rax*2]
mov eax, dword [rcx + rax*8 + 8]
not eax
or eax, 0xfffffff0
cmp eax, 0xffffffff
jne 0x4f3200
jmp 0x4f3dd5
mov rax, qword [r8 + 8]
mov qword [rsp + 0xb8], rax
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0xd8]
jmp 0x4f3fe8
mov dword [rsp + 0x20], 0
mov edx, 0x47
xor r8d, r8d
mov r9, qword [rsp + 0xa0]
call fcn.0047df60
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx + 0x44]
add eax, 0xffffffff
mov dword [rcx + 0x44], eax
mov dword [rsi + 0x28], eax
mov r10d, 1
mov r14b, 1
xor ebx, ebx
mov rax, qword [rsp + 0x70]
cmp bp, word [rax + 0x60]
jb 0x4f32b5
test r15d, r15d
jle 0x4f3463
mov rax, qword [rsp + 0x88]
mov eax, dword [rax + 0x38]
not eax
or eax, 0xffefffff
cmp eax, 0xffffffff
je 0x4f3463
mov rcx, qword [rsp + 0x50]
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4f3440
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x88
mov edx, dword [rsp + 0xe0]
mov dword [rcx + rax*8 + 4], edx
xorps xmm0, xmm0
movups xmmword [rcx + rax*8 + 8], xmm0
jmp 0x4f3463
mov dword [rsp + 0x20], 0
mov edx, 0x88
mov r8d, dword [rsp + 0xe0]
xor r9d, r9d
mov edi, r10d
call fcn.0047df60
mov r10d, edi
mov rdi, rbp
mov dword [rsp + 0x11c], ebx
lea rax, [rsp + 0x128]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x280]
mov r8, qword [rsp + 0xa8]
mov r9d, r10d
call fcn.00505da0
mov qword [rsp + 0x80], rax
mov rbx, qword [rsp + 0x128]
test rbx, rbx
sete dl
setne r8b
cmp word [rsp + 0xf0], 0
sete al
setne cl
xor ebp, ebp
mov qword [rsp + 0xb8], rbp
cmp al, dl
jne 0x4f3506
or cl, r8b
xor cl, 1
mov r10, rdi
jne 0x4f3542
mov rdi, r10
lea rdi, [rbx + r10]
mov rcx, rdi
call fcn.005f4bd8
mov rbp, rax
add rbp, 1
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x4f350b
mov rdx, rbp
call fcn.00429840
jmp 0x4f3513
mov r10, rdi
jmp 0x4f3542
mov rcx, rbp
call fcn.00404550
test rax, rax
je 0x4f3530
mov rcx, rax
mov qword [rsp + 0xb8], rax
mov rdx, rdi
mov r8, rbp
call fcn.005f4c20
jmp 0x4f353a
xor eax, eax
mov qword [rsp + 0xb8], rax
mov r10, qword [rsp + 0xb0]
cmp dword [rsp + 0xa0], 0
mov eax, 0x10
mov ecx, 0x28
cmove rcx, rax
mov rbp, qword [rsp + 0x280]
mov eax, dword [rbp + rcx]
mov dword [rsp + 0x64], eax
mov r8b, 1
mov al, 1
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x4f358b
mov eax, dword [rcx + 0x14]
mov ecx, eax
xor ecx, 0xffd7
test cx, ax
setne al
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x4f35ab
mov ecx, dword [rcx + 0x14]
not ecx
or ecx, 0xffd7
cmp cx, 0xffff
setne r8b
movzx eax, al
mov qword [rsp + 0xf8], rax
mov rdi, qword [rsp + 0xd8]
test rdi, rdi
setne al
test r10w, r10w
setne cl
mov edx, ecx
and dl, al
xor cl, al
or cl, dl
movzx eax, cl
test rdi, rdi
mov byte [rsp + 0xe8], r8b
je 0x4f3651
mov qword [rsp + 0x100], rax
mov rax, qword [rdi]
mov rsi, qword [rax + 0x18]
mov rax, qword [rsp + 0x80]
lea r13d, [rax + r10]
mov r14d, dword [rsp + 0x98]
movzx r9d, r14w
mov rcx, qword [rsp + 0x58]
mov rdx, rsi
mov r8d, r13d
mov qword [rsp + 0x68], r9
call fcn.005054c0
movzx eax, word [rdi + 0x12]
mov ecx, eax
not ecx
or ecx, 0xfeff
cmp cx, 0xffff
mov rcx, qword [rsp + 0x50]
je 0x4f36eb
mov rdx, qword [rcx]
cmp byte [rdx + 0x67], 0
je 0x4f36b7
lea rdi, [0x0213b3e8]
jmp 0x4f36d2
test r14b, r14b
je 0x4f374b
mov rax, qword [rsp + 0x80]
lea r9d, [rax + r10]
mov r13, qword [rsp + 0x50]
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f3a9d
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f3abb
mov edx, dword [rcx + 0x90]
add edx, 0xffffffff
movsxd rdx, edx
lea rdi, [rdx + rdx*2]
shl rdi, 3
add rdi, qword [rcx + 0x88]
mov rdx, qword [rsp + 0x280]
mov ebp, dword [rdx + 0x2c]
mov edx, ebp
shr edx, 1
mov dword [rdi + 0xc], edx
and ebp, 1
mov word [rdi + 2], bp
test al, al
js 0x4f3b56
mov bpl, byte [rsi]
lea edx, [rbp + 0x53]
mov rax, rsi
cmp dl, 1
ja 0x4f3713
mov rax, rsi
mov rax, qword [rax + 0x10]
movzx ebp, byte [rax]
lea edx, [rbp + 0x53]
cmp dl, 2
jb 0x4f3704
cmp bpl, 0xb0
jne 0x4f371d
mov bpl, byte [rax + 2]
cmp bpl, 0x99
jae 0x4f3732
cmp bpl, 0x75
jne 0x4f3af2
jmp 0x4f3b56
cmp bpl, 0xa7
jae 0x4f3adc
cmp bpl, 0x9c
jae 0x4f3af2
jmp 0x4f3b56
mov rdi, r10
xor r14d, r14d
cmp dword [rsp + 0xa0], 0
mov r13, qword [rsp + 0x50]
je 0x4f4078
mov rax, qword [rsp + 0x80]
lea r9d, [rax + rdi]
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f4089
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f40a1
mov r13d, dword [r12 + 0x38]
add r13d, 1
mov dword [r12 + 0x38], r13d
mov dword [rsp + 0x130], r13d
mov rcx, r12
mov r8d, r13d
mov r9d, 1
call fcn.005054c0
mov al, byte [rsi]
add al, 1
mov ecx, eax
xor cl, 0xfd
and cl, al
mov eax, ecx
and al, 1
xor cl, 1
or cl, al
movzx eax, cl
lea rcx, [0x00604614]
mov al, byte [rax + rcx]
mov rsi, qword [rsp + 0x50]
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jle 0x4f3858
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov byte [rdx + rcx*8], al
mov word [rdx + rcx*8 + 2], 0
mov eax, dword [rsp + 0x4c]
mov dword [rdx + rcx*8 + 4], eax
mov dword [rdx + rcx*8 + 8], r14d
mov dword [rdx + rcx*8 + 0xc], r13d
mov qword [rdx + rcx*8 + 0x10], 0
mov byte [rdx + rcx*8 + 1], 0
jmp 0x4f3870
movzx edx, al
mov dword [rsp + 0x20], r13d
mov rcx, rsi
mov r8d, dword [rsp + 0x4c]
mov r9d, r14d
call fcn.0047df60
mov eax, dword [rsp + 0x130]
test eax, eax
je 0x4f3897
movzx ecx, byte [r12 + 0x1f]
cmp rcx, 7
ja 0x4f3897
lea edx, [rcx + 1]
mov byte [r12 + 0x1f], dl
mov dword [r12 + rcx*4 + 0xd8], eax
test rdi, rdi
je 0x4f38e5
mov rbx, rdi
mov rsi, qword [rdi]
mov r13d, dword [r12 + 0x38]
add r13d, 1
mov dword [r12 + 0x38], r13d
mov rdx, qword [rsi + 0x18]
mov rcx, r12
mov r8d, r13d
mov r9d, 1
call fcn.005054c0
mov rax, qword [rsi + 0x18]
mov cl, byte [rax]
mov edx, ecx
cmp cl, 0xb0
jne 0x4f38d5
mov dl, byte [rax + 2]
cmp dl, 0x8a
je 0x4f38f0
cmp dl, 0xb1
jne 0x4f3900
lea rdx, [rax + 0x20]
jmp 0x4f38f8
mov r15d, 0xb8
xor r13d, r13d
jmp 0x4f3959
mov rdx, qword [rax + 0x20]
add rdx, 0x20
mov rdx, qword [rdx]
cmp dword [rdx], 1
jg 0x4f391e
mov dl, byte [rsi]
cmp dl, 0x38
je 0x4f390c
cmp dl, 0x36
jne 0x4f391e
xor edx, edx
test r15d, r15d
sete dl
lea r15d, [rdx + rdx]
add r15d, 0x37
jmp 0x4f3925
add r15d, r15d
add r15d, 0x36
cmp cl, 0xb0
mov rsi, qword [rsp + 0x50]
jne 0x4f3932
mov cl, byte [rax + 2]
cmp cl, 0x8a
je 0x4f393e
cmp cl, 0xb1
je 0x4f3942
jmp 0x4f394e
mov rax, qword [rax + 0x20]
add rax, 0x20
mov rax, qword [rax]
cmp dword [rax], 1
jg 0x4f3959
mov rcx, rbp
mov rdx, rbx
call fcn.005057b0
movsxd rax, dword [rsi + 0x90]
cmp dword [rsp + 0xa8], 1
mov cl, 0x25
adc cl, 0
mov byte [rbp + 0x41], cl
mov edi, dword [rsp + 0x4c]
mov dword [rbp + 0x44], edi
mov dword [rbp + 0x48], eax
cmp r15d, 0xb8
mov r8, qword [rsp + 0x40]
jne 0x4f399c
xor esi, esi
mov rdi, qword [rsp + 0x78]
mov r13, qword [rsp + 0x90]
jmp 0x4f69be
mov ebx, dword [r12 + 0x38]
add ebx, 1
mov dword [r12 + 0x38], ebx
cmp dword [rsi + 0x94], eax
jle 0x4f39e7
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x87
mov dword [rcx + rax*8 + 4], edi
mov dword [rcx + rax*8 + 8], ebx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f3a02
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x87
mov r8d, edi
mov r9d, ebx
call fcn.0047df60
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
mov rdi, qword [rsp + 0x78]
jle 0x4f3a53
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], r15b
mov word [rcx + rax*8 + 2], 0
mov dword [rcx + rax*8 + 4], r13d
mov dword [rcx + rax*8 + 8], r14d
mov dword [rcx + rax*8 + 0xc], ebx
mov qword [rcx + rax*8 + 0x10], 0
mov byte [rcx + rax*8 + 1], 0
jmp 0x4f3a68
mov dword [rsp + 0x20], ebx
mov rcx, rsi
mov edx, r15d
mov r8d, r13d
mov r9d, r14d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov eax, dword [rsi + 0x90]
test eax, eax
mov r13, qword [rsp + 0x90]
jle 0x4f69bc
mov rcx, qword [rsi + 0x88]
add eax, 0xffffffff
lea rax, [rax + rax*2]
mov word [rcx + rax*8 + 2], 0x53
jmp 0x4f69bc
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x4b
xor r8d, r8d
mov rsi, r10
call fcn.0047df60
mov r10, rsi
mov rdi, r10
lea eax, [r10 + 1]
mov qword [rsp + 0x68], rax
xor eax, eax
mov qword [rsp + 0xf8], rax
mov r14d, 1
jmp 0x4f40a9
jne 0x4f3af2
mov edx, dword [rax + 4]
not edx
or edx, 0xffdfffff
cmp edx, 0xffffffff
je 0x4f5789
movsxd rax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4f3b3c
lea edx, [rax + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x32
mov dword [rcx + rax*8 + 4], r13d
mov edx, dword [rsp + 0x64]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f3b56
mov dword [rsp + 0x20], 0
mov edx, 0x32
mov r8d, r13d
mov r9d, dword [rsp + 0x64]
call fcn.0047df60
test rbx, rbx
je 0x4f3d51
test r14w, r14w
je 0x4f3d51
mov rax, qword [rsp + 0xb0]
add rax, rbx
mov qword [rsp + 0x98], rax
lea rax, [rsi + 0x20]
mov qword [rsp + 0xc8], rax
xor edi, edi
mov r13d, 1
jmp 0x4f3bad
mov rax, qword [rsp + 0x98]
mov byte [rax + rdi], 0x41
add rdi, 1
cmp rdi, qword [rsp + 0x68]
je 0x4f3d51
mov al, byte [rsi]
mov ecx, eax
cmp al, 0xb0
jne 0x4f3bb8
mov cl, byte [rsi + 2]
mov rdx, qword [rsp + 0xc8]
cmp cl, 0xb1
je 0x4f3bd5
mov rbp, rsi
cmp cl, 0x8a
jne 0x4f3c0b
mov rdx, qword [rsi + 0x20]
add rdx, 0x20
mov rcx, qword [rdx]
cmp dword [rcx], 2
mov rbp, rsi
jl 0x4f3c0b
cmp al, 0x8a
je 0x4f3bea
cmp byte [rsi + 2], 0x8a
jne 0x4f3bf4
mov rax, qword [rsi + 0x20]
mov rax, qword [rax + 0x20]
jmp 0x4f3bff
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov rcx, rdi
shl rcx, 5
mov rbp, qword [rax + rcx + 8]
mov rax, qword [rsp + 0x98]
mov r14b, byte [rax + rdi]
mov rcx, rbp
call fcn.004ce540
cmp r14b, 0x41
jl 0x4f3c4f
cmp al, 0x41
jl 0x4f3c4f
mov cl, 1
test cl, cl
je 0x4f3c4f
cmp al, 0x42
setg cl
cmp r14b, 0x42
setg al
or al, cl
xor al, 1
cmp r14b, 0x41
sete cl
test cl, al
je 0x4f3c73
jmp 0x4f3b92
cmp al, 0x41
movzx ecx, r14b
movzx eax, al
cmovl eax, ecx
not al
or al, 0x40
cmp al, 0xfe
sete al
cmp r14b, 0x41
sete cl
test cl, al
jne 0x4f3b92
xor cl, al
jne 0x4f3b92
mov al, byte [rbp]
lea edx, [rax + 0x53]
xor ecx, ecx
cmp dl, 1
ja 0x4f3ca6
xor ecx, ecx
nop
cmp al, 0xad
cmove ecx, r13d
mov rbp, qword [rbp + 0x10]
movzx eax, byte [rbp]
lea edx, [rax + 0x53]
cmp dl, 2
jb 0x4f3c90
cmp al, 0xb0
jne 0x4f3cad
mov al, byte [rbp + 2]
cmp al, 0x9a
jae 0x4f3ccc
cmp al, 0x75
je 0x4f3d02
cmp al, 0x99
jne 0x4f3b9e
cmp r14b, 0x42
jg 0x4f3b92
jmp 0x4f3b9e
jne 0x4f3cdb
test ecx, ecx
jne 0x4f3b9e
jmp 0x4f3b92
cmp al, 0xa7
jae 0x4f3d25
cmp al, 0x9b
setne al
cmp r14b, 0x42
setg cl
cmp cl, al
je 0x4f3b9e
cmp r14b, 0x43
jge 0x4f3b92
jmp 0x4f3b9e
test ecx, ecx
setne al
cmp r14b, 0x42
sete cl
cmp cl, al
je 0x4f3b9e
cmp r14b, 0x42
je 0x4f3b92
jmp 0x4f3b9e
setne al
cmp r14b, 0x42
setg cl
cmp cl, al
je 0x4f3b9e
cmp r14b, 0x42
jle 0x4f3b9e
cmp word [rbp + 0x30], 0
jns 0x4f3b9e
jmp 0x4f3b92
mov al, byte [rsi]
cmp al, 0xb0
jne 0x4f3d5a
mov al, byte [rsi + 2]
mov rdi, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x68]
add ecx, edi
mov qword [rsp + 0x68], rcx
cmp al, 0x8a
mov rbp, qword [rsp + 0x280]
je 0x4f3d89
cmp al, 0xb1
mov r13, qword [rsp + 0x50]
jne 0x4f3d9e
add rsi, 0x20
jmp 0x4f3d96
mov rsi, qword [rsi + 0x20]
add rsi, 0x20
mov r13, qword [rsp + 0x50]
mov rax, qword [rsi]
cmp dword [rax], 1
jg 0x4f3db6
mov rcx, rbp
mov rdx, qword [rsp + 0xd8]
call fcn.005057b0
xor r14d, r14d
jmp 0x4f40b6
mov eax, 1
mov qword [rsp + 0xf8], rax
xor r14d, r14d
jmp 0x4f40b6
cmp ax, 0xfffe
jne 0x4f3200
mov r14b, 1
jmp 0x4f3203
mov rcx, rdx
call fcn.00404550
mov rdx, rax
mov r15, qword [rsp + 0xd8]
test rax, rax
mov r8, qword [rsp + 0x40]
je 0x4f762a
mov rax, qword [rsp + 0x90]
add rax, rdi
add rax, 8
mov ecx, esi
xor ecx, 0xffffff00
and ecx, esi
mov dword [rdx + 4], ecx
mov dword [rdx], ecx
mov rcx, qword [rax + 0x60]
mov qword [rdx + 0x68], rcx
movups xmm0, xmmword [rax + 0x50]
movups xmmword [rdx + 0x58], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rdx + 0x48], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movups xmmword [rdx + 0x38], xmm3
movups xmmword [rdx + 0x28], xmm2
movups xmmword [rdx + 0x18], xmm1
mov qword [rsp + 0xb8], rdx
movups xmmword [rdx + 8], xmm0
cmp esi, 2
mov r14, qword [rsp + 0x58]
jl 0x4f3fe8
mov rax, qword [r8 + 8]
mov ecx, esi
add rcx, 0xffffffffffffffff
mov r10d, ecx
and r10d, 1
mov edx, 1
cmp esi, 2
je 0x4f3f6f
mov rbp, rcx
xor rbp, 1
and rbp, rcx
mov rcx, qword [rsp + 0xb8]
lea rbx, [rcx + 0xd8]
mov rcx, qword [rsp + 0x280]
lea rdi, [rcx + 0x120]
mov r9, rbp
neg r9
mov edx, 1
movzx ecx, byte [rdi - 0x70]
imul rcx, rcx, 0x68
mov rsi, qword [rax + rcx + 0x68]
mov qword [rbx - 8], rsi
movups xmm0, xmmword [rax + rcx + 0x58]
movups xmmword [rbx - 0x18], xmm0
movups xmm0, xmmword [rax + rcx + 0x48]
movups xmmword [rbx - 0x28], xmm0
movups xmm0, xmmword [rax + rcx + 8]
movups xmm1, xmmword [rax + rcx + 0x18]
movups xmm2, xmmword [rax + rcx + 0x28]
movups xmm3, xmmword [rax + rcx + 0x38]
movups xmmword [rbx - 0x38], xmm3
movups xmmword [rbx - 0x48], xmm2
movups xmmword [rbx - 0x58], xmm1
movups xmmword [rbx - 0x68], xmm0
movzx ecx, byte [rdi]
imul rcx, rcx, 0x68
movups xmm0, xmmword [rax + rcx + 0x58]
movups xmmword [rbx + 0x50], xmm0
movups xmm0, xmmword [rax + rcx + 0x48]
movups xmmword [rbx + 0x40], xmm0
movups xmm0, xmmword [rax + rcx + 8]
movups xmm1, xmmword [rax + rcx + 0x18]
movups xmm2, xmmword [rax + rcx + 0x28]
movups xmm3, xmmword [rax + rcx + 0x38]
movups xmmword [rbx + 0x30], xmm3
movups xmmword [rbx + 0x20], xmm2
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
mov rcx, qword [rax + rcx + 0x68]
mov qword [rbx + 0x60], rcx
add rbp, 0xfffffffffffffffe
add rbx, 0xd0
add rdi, 0xe0
lea rcx, [r9 + rdx]
add rcx, 2
add rdx, 2
cmp rcx, 1
jne 0x4f3ebb
test r10, r10
je 0x4f3fde
mov rcx, qword [rsp + 0xb8]
add rcx, 8
imul rbp, rdx, 0x68
imul rdx, rdx, 0x70
mov rbx, qword [rsp + 0x280]
movzx edx, byte [rbx + rdx + 0x40]
imul rdx, rdx, 0x68
mov rbx, qword [rax + rdx + 0x68]
mov qword [rcx + rbp + 0x60], rbx
movups xmm0, xmmword [rax + rdx + 0x58]
movups xmmword [rcx + rbp + 0x50], xmm0
movups xmm0, xmmword [rax + rdx + 0x48]
movups xmmword [rcx + rbp + 0x40], xmm0
movups xmm0, xmmword [rax + rdx + 8]
movups xmm1, xmmword [rax + rdx + 0x18]
movups xmm2, xmmword [rax + rdx + 0x28]
movups xmm3, xmmword [rax + rdx + 0x38]
movups xmmword [rcx + rbp + 0x30], xmm3
movups xmmword [rcx + rbp + 0x20], xmm2
movups xmmword [rcx + rbp + 0x10], xmm1
movups xmmword [rcx + rbp], xmm0
mov rdi, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
mov eax, dword [r8 + 0x44]
mov ecx, eax
xor ecx, 0xffef
xor r12d, r12d
mov dword [rsp + 0x80], 0
test cx, ax
mov rsi, qword [rsp + 0x50]
jne 0x4f5c14
mov rax, qword [rsp + 0xb0]
cmp byte [rax + 0x30], 0
js 0x4f5188
mov r12d, dword [r14 + 0x38]
add r12d, 1
mov dword [r14 + 0x38], r12d
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f5536
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], r12d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f5c02
mov qword [rsp + 0x100], rax
mov eax, edi
mov qword [rsp + 0x68], rax
jmp 0x4f40b6
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x4b
xor r8d, r8d
call fcn.0047df60
lea eax, [rdi + 1]
mov qword [rsp + 0x68], rax
mov eax, 1
mov qword [rsp + 0x100], rax
test rbx, rbx
je 0x4f4189
mov rax, qword [rsp + 0x68]
sub eax, r14d
mov rcx, qword [rsp + 0x58]
mov rcx, qword [rcx + 0x10]
test eax, eax
jle 0x4f40fa
mov rdx, qword [rsp + 0x80]
mov r8d, edx
cmp byte [rbx], 0x41
jg 0x4f4105
lea edx, [rax - 1]
add r8d, 1
add rbx, 1
cmp eax, 1
mov eax, edx
jg 0x4f40df
xor eax, eax
jmp 0x4f4105
mov rdx, qword [rsp + 0x80]
mov r8d, edx
movabs rbp, 0x901e1d1c9a34107c
mov r9d, eax
movabs rax, 0xffffffff00000000
sub rax, r9
mov edx, ebp
not edx
or edx, ebp
nop word cs:[rax + rax]
nop
cmp r9d, 2
jl 0x4f415f
mov ebp, 0xffffffff
not ebp
or ebp, eax
not ebp
and ebp, edx
add r9, 0xffffffffffffffff
add rax, 1
cmp byte [rbx + rbp], 0x42
jl 0x4f4130
add r9d, 1
mov rbp, qword [rsp + 0x280]
jmp 0x4f416d
cmp r9d, 1
mov rbp, qword [rsp + 0x280]
jne 0x4f4189
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], 0
mov edx, 0x60
call fcn.004c62a0
movzx ecx, byte [rsp + 0xe8]
mov rax, qword [rsp + 0x88]
movzx eax, word [rax + 0x3e]
test eax, eax
mov qword [rsp + 0xd8], rcx
je 0x4f41ed
cmp dword [rsp + 0x68], eax
jne 0x4f41ed
mov al, 1
test al, al
je 0x4f41ed
mov rbx, qword [rsp + 0xd0]
test rbx, rbx
je 0x4f424d
mov qword [rsp + 0xe8], r14
mov rax, qword [rbx]
mov r14, qword [rax + 0x18]
mov dword [rsp + 0xc8], 0
mov r15, qword [rsp + 0x88]
jmp 0x4f4738
cmp dword [rsp + 0xa0], 0
je 0x4f428c
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f4269
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
movabs rdx, 0x100000047
mov qword [rcx + rax*8], rdx
mov rdx, qword [rsp + 0xa0]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f428c
xor ebx, ebx
mov rdi, qword [rsp + 0x58]
mov r15, qword [rsp + 0x88]
mov r12d, dword [rsp + 0xe0]
jmp 0x4f4683
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x47
mov r8d, 1
mov r9, qword [rsp + 0xa0]
call fcn.0047df60
mov r8d, dword [rbp + 0x34]
test r8d, r8d
je 0x4f4346
mov eax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f42ec
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [r13 + 0x90], edx
mov rdx, qword [r13 + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x3f
mov dword [rdx + rcx*8 + 4], r8d
mov ebx, dword [rsp + 0x64]
mov dword [rdx + rcx*8 + 8], ebx
mov rbx, qword [rsp + 0x80]
mov dword [rdx + rcx*8 + 0xc], ebx
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4f430a
mov rax, qword [rsp + 0x80]
mov dword [rsp + 0x20], eax
mov rcx, r13
mov edx, 0x3f
mov r9d, dword [rsp + 0x64]
call fcn.0047df60
mov rdx, qword [rsp + 0x40]
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
jne 0x4f432f
mov rcx, qword [r13 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], edi
mov qword [rsp + 0x20], r12
mov rcx, qword [rsp + 0x58]
mov r8d, r15d
mov r9d, dword [rsp + 0x64]
call fcn.005059c0
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x100]
lea eax, [rax + rcx*4]
mov rcx, qword [rsp + 0xf8]
lea edi, [rax + rcx*2]
lea rsi, [0x00604618]
xor eax, eax
cmp edi, 6
jne 0x4f441c
mov ecx, 0x100000
mov r15, qword [rsp + 0x88]
and ecx, dword [r15 + 0x38]
mov r12d, dword [rsp + 0xe0]
je 0x4f442c
mov cl, 1
test cl, cl
je 0x4f442c
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x10]
movsx eax, word [rax]
add eax, 9
cdqe
imul r8, rax, 0x66666667
mov rax, r8
shr rax, 0x3f
sar r8, 0x22
add r8d, eax
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx + 0x90]
cmp dword [rcx + 0x94], eax
jle 0x4f4405
movsxd rbx, eax
lea edx, [rbx + 1]
mov dword [rcx + 0x90], edx
mov rcx, qword [rcx + 0x88]
lea rdx, [rbx + rbx*2]
mov dword [rcx + rdx*8], 0x7c
mov dword [rcx + rdx*8 + 4], r8d
xorps xmm0, xmm0
movups xmmword [rcx + rdx*8 + 8], xmm0
jmp 0x4f442c
mov dword [rsp + 0x20], 0
mov edx, 0x7c
xor r9d, r9d
call fcn.0047df60
jmp 0x4f442c
mov r15, qword [rsp + 0x88]
mov r12d, dword [rsp + 0xe0]
mov dword [rsp + 0xc8], eax
mov cl, byte [rdi + rsi]
mov rbx, qword [rsp + 0x50]
mov eax, dword [rbx + 0x90]
cmp dword [rbx + 0x94], eax
jle 0x4f449c
movsxd rdx, eax
lea ebp, [rdx + 1]
mov dword [rbx + 0x90], ebp
mov rbp, qword [rbx + 0x88]
lea rdx, [rdx + rdx*2]
mov byte [rbp + rdx*8], cl
mov word [rbp + rdx*8 + 2], 0
mov dword [rbp + rdx*8 + 4], r12d
mov ecx, dword [rsp + 0x64]
mov dword [rbp + rdx*8 + 8], ecx
mov rcx, qword [rsp + 0x80]
mov dword [rbp + rdx*8 + 0xc], ecx
mov qword [rbp + rdx*8 + 0x10], 0
mov byte [rbp + rdx*8 + 1], 0
mov rbp, qword [rsp + 0x280]
jmp 0x4f44bb
movzx edx, cl
mov rax, qword [rsp + 0x80]
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov r8d, r12d
mov r9d, dword [rsp + 0x64]
call fcn.0047df60
mov rdi, qword [rsp + 0x58]
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x4f44e9
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov rdx, qword [rsp + 0x68]
mov dword [rcx + rax*8 + 0x10], edx
mov qword [rsp + 0xe8], r14
cmp dword [rsp + 0xa0], 0
je 0x4f4639
mov rbx, qword [rsp + 0x50]
movsxd rax, dword [rbx + 0x90]
lea r9d, [rax + 2]
cmp dword [rbx + 0x94], eax
jle 0x4f454b
lea ecx, [rax + 1]
mov dword [rbx + 0x90], ecx
mov rcx, qword [rbx + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 8
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f4563
mov dword [rsp + 0x20], 0
mov rcx, rbx
mov edx, 8
xor r8d, r8d
call fcn.0047df60
xor eax, eax
cmp dword [rsp + 0x68], 2
setl al
lea eax, [rax*4 + 0x92542b3]
mov rcx, qword [rsp + 0xa8]
not ecx
and ecx, 0x92542b5
xor ecx, eax
mov cl, byte [rcx + rsi]
mov eax, dword [rbx + 0x90]
cmp dword [rbx + 0x94], eax
jle 0x4f45ea
movsxd rdx, eax
lea ebp, [rdx + 1]
mov dword [rbx + 0x90], ebp
mov rbp, qword [rbx + 0x88]
lea rdx, [rdx + rdx*2]
mov byte [rbp + rdx*8], cl
mov word [rbp + rdx*8 + 2], 0
mov dword [rbp + rdx*8 + 4], r12d
mov ecx, dword [rsp + 0x64]
mov dword [rbp + rdx*8 + 8], ecx
mov rcx, qword [rsp + 0x80]
mov dword [rbp + rdx*8 + 0xc], ecx
mov qword [rbp + rdx*8 + 0x10], 0
mov byte [rbp + rdx*8 + 1], 0
mov rbp, qword [rsp + 0x280]
jmp 0x4f4609
movzx edx, cl
mov rax, qword [rsp + 0x80]
mov dword [rsp + 0x20], eax
mov rcx, rbx
mov r8d, r12d
mov r9d, dword [rsp + 0x64]
call fcn.0047df60
mov rcx, qword [rbx]
cmp byte [rcx + 0x67], 0
jne 0x4f4639
mov rdx, qword [rsp + 0x68]
sub edx, dword [rsp + 0xf8]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], edx
mov rax, qword [rsp + 0xd0]
test rax, rax
je 0x4f466f
mov rax, qword [rax]
mov r14, qword [rax + 0x18]
cmp dword [rsp + 0xc8], 0
je 0x4f4718
mov r13, qword [rsp + 0x50]
mov eax, dword [r13 + 0x90]
mov dword [rbp + 0x48], eax
jmp 0x4f4728
mov r13, qword [rsp + 0x50]
mov r14, qword [rsp + 0xe8]
mov ebx, dword [rsp + 0xc8]
cmp byte [rsp + 0x11c], 0
mov dword [rsp + 0xc8], ebx
je 0x4f470b
cmp dword [rsp + 0xa0], 0
jne 0x4f4c0b
mov rax, qword [rsp + 0x80]
mov r9d, eax
add r9d, dword [rsp + 0xb0]
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f4be9
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4b
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
xor eax, eax
mov qword [rsp + 0xd8], rax
jmp 0x4f4c0b
mov rax, qword [rsp + 0xb0]
jmp 0x4f4c16
mov dword [rsp + 0xc8], 0
mov r13, qword [rsp + 0x50]
mov rdi, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xd0]
mov r12, qword [rsp + 0x80]
add r12d, edi
mov edi, dword [rsp + 0xf0]
movzx r9d, di
mov rcx, qword [rsp + 0x58]
mov rdx, r14
mov r8d, r12d
mov qword [rsp + 0x68], r9
call fcn.005054c0
movzx eax, word [rbx + 0x12]
mov ecx, eax
not ecx
or ecx, 0xfeff
cmp cx, 0xffff
mov rbx, qword [rsp + 0xb8]
je 0x4f47d1
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
je 0x4f4792
lea rcx, [0x0213b3e8]
jmp 0x4f47ae
mov ecx, dword [r13 + 0x90]
add ecx, 0xffffffff
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r13 + 0x88]
mov rdx, qword [rsp + 0x280]
mov ebp, dword [rdx + 0x2c]
mov edx, ebp
xor edx, 0xfffffffe
and edx, ebp
shr ebp, 1
mov dword [rcx + 0xc], ebp
mov rbp, qword [rsp + 0x280]
mov word [rcx + 2], dx
test al, al
js 0x4f48a5
mov cl, byte [r14]
lea edx, [rcx + 0x53]
mov rax, r14
cmp dl, 1
ja 0x4f47f9
mov rax, r14
mov rax, qword [rax + 0x10]
movzx ecx, byte [rax]
lea edx, [rcx + 0x53]
cmp dl, 2
jb 0x4f47ea
cmp cl, 0xb0
jne 0x4f4801
mov cl, byte [rax + 2]
cmp cl, 0x99
jae 0x4f4810
cmp cl, 0x75
jne 0x4f4834
jmp 0x4f48a5
cmp cl, 0xa7
jae 0x4f481f
cmp cl, 0x9c
jae 0x4f4834
jmp 0x4f48a5
jne 0x4f4834
mov ecx, dword [rax + 4]
mov edx, ecx
xor edx, 0xffdfffff
test edx, ecx
je 0x4f57cb
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f4880
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x32
mov dword [rcx + rax*8 + 4], r12d
mov edx, dword [rsp + 0x64]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f48a5
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x32
mov r8d, r12d
mov r9d, dword [rsp + 0x64]
call fcn.0047df60
mov rbx, qword [rsp + 0xb8]
test rbx, rbx
je 0x4f4b75
test di, di
je 0x4f4ae9
lea r15, [r14 + 0x20]
movzx eax, di
mov qword [rsp + 0x98], rax
xor esi, esi
mov edi, 1
jmp 0x4f48e5
mov byte [rbx + rsi], 0x41
add rsi, 1
cmp rsi, qword [rsp + 0x98]
je 0x4f4a9e
mov al, byte [r14]
mov ecx, eax
cmp al, 0xb0
jne 0x4f48f2
mov cl, byte [r14 + 2]
mov rdx, r15
cmp cl, 0xb1
je 0x4f490a
mov rbp, r14
cmp cl, 0x8a
jne 0x4f4939
mov rdx, qword [r14 + 0x20]
add rdx, 0x20
mov rcx, qword [rdx]
cmp dword [rcx], 2
mov rbp, r14
jl 0x4f4939
cmp al, 0x8a
je 0x4f4920
cmp byte [r14 + 2], 0x8a
jne 0x4f492a
mov rax, qword [r14 + 0x20]
mov rax, qword [rax + 0x20]
jmp 0x4f492d
mov rax, qword [r15]
mov rcx, rsi
shl rcx, 5
mov rbp, qword [rax + rcx + 8]
mov r13b, byte [rbx + rsi]
mov rcx, rbp
call fcn.004ce540
cmp al, 0x41
setl cl
cmp r13b, 0x40
setg dl
cmp dl, cl
je 0x4f4994
cmp r13b, 0x41
jl 0x4f4994
cmp al, 0x42
setg cl
cmp r13b, 0x42
setg al
or al, cl
mov edx, eax
xor dl, 1
cmp r13b, 0x41
sete bl
setne cl
cmp bl, dl
mov rbx, qword [rsp + 0xb8]
jne 0x4f48cf
or cl, al
xor cl, 1
je 0x4f49cc
jmp 0x4f48cf
cmp al, 0x41
movzx ecx, r13b
movzx eax, al
cmovl eax, ecx
mov ecx, eax
xor cl, 0x40
and cl, al
cmp cl, 1
sete al
cmp r13b, 0x41
sete cl
test cl, al
mov rbx, qword [rsp + 0xb8]
jne 0x4f48cf
xor cl, al
jne 0x4f48cf
mov al, byte [rbp]
lea edx, [rax + 0x53]
xor ecx, ecx
cmp dl, 1
ja 0x4f49f5
xor ecx, ecx
nop
cmp al, 0xad
cmove ecx, edi
mov rbp, qword [rbp + 0x10]
movzx eax, byte [rbp]
lea edx, [rax + 0x53]
cmp dl, 2
jb 0x4f49e0
cmp al, 0xb0
jne 0x4f49fc
mov al, byte [rbp + 2]
cmp al, 0x9a
jae 0x4f4a1b
cmp al, 0x75
je 0x4f4a4f
cmp al, 0x99
jne 0x4f48d3
cmp r13b, 0x42
jg 0x4f48cf
jmp 0x4f48d3
jne 0x4f4a2a
test ecx, ecx
jne 0x4f48d3
jmp 0x4f48cf
cmp al, 0xa7
jae 0x4f4a72
cmp r13b, 0x43
jl 0x4f48d3
cmp al, 0x9b
jne 0x4f48d3
mov al, 1
test al, al
jne 0x4f48cf
jmp 0x4f48d3
test ecx, ecx
setne al
cmp r13b, 0x42
sete cl
cmp cl, al
je 0x4f48d3
cmp r13b, 0x42
je 0x4f48cf
jmp 0x4f48d3
cmp r13b, 0x43
jl 0x4f48d3
cmp al, 0xa7
jne 0x4f48d3
mov al, 1
test al, al
je 0x4f48d3
cmp word [rbp + 0x30], 0
jns 0x4f48d3
jmp 0x4f48cf
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10]
mov rdx, qword [rsp + 0x68]
lea eax, [rdx - 1]
lea rdi, [rax + rbx]
add rdi, 1
lea r8d, [r12 + rdx]
mov esi, 1
mov rax, rbx
mov r15, qword [rsp + 0x88]
cmp byte [rax], 0x41
jg 0x4f4af9
sub edx, esi
add r12d, 1
add rax, 1
lea ebx, [rdx + 1]
cmp ebx, 1
jg 0x4f4acb
xor edx, edx
mov r12d, r8d
jmp 0x4f4afc
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10]
xor edx, edx
mov rdi, rbx
jmp 0x4f4b09
mov rdi, rax
mov rbp, qword [rsp + 0x280]
mov r13, qword [rsp + 0x50]
movabs rax, 0xcbf930d49327d9b2
mov r9d, edx
movabs rbx, 0xffffffff00000000
sub rbx, r9
mov edx, eax
not edx
or edx, eax
cmp r9d, 2
jl 0x4f4b50
mov eax, 0xffffffff
not eax
or eax, ebx
not eax
and eax, edx
add r9, 0xffffffffffffffff
add rbx, 1
cmp byte [rdi + rax], 0x42
jl 0x4f4b29
add r9d, 1
jmp 0x4f4b56
cmp r9d, 1
jne 0x4f4b75
mov dword [rsp + 0x30], r9d
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0
mov edx, 0x60
mov r8d, r12d
call fcn.004c62a0
mov al, byte [r14]
cmp al, 0xb0
jne 0x4f4b80
mov al, byte [r14 + 2]
mov rcx, qword [rsp + 0x68]
add ecx, dword [rsp + 0xb0]
mov qword [rsp + 0x68], rcx
cmp al, 0x8a
mov rdi, qword [rsp + 0x58]
mov r12d, dword [rsp + 0xe0]
je 0x4f4ba8
cmp al, 0xb1
je 0x4f4bac
jmp 0x4f4bb8
mov r14, qword [r14 + 0x20]
add r14, 0x20
mov rax, qword [r14]
cmp dword [rax], 1
jg 0x4f4bd2
mov rcx, rbp
mov rdx, qword [rsp + 0xd0]
call fcn.005057b0
mov r14, qword [rsp + 0xe8]
jmp 0x4f4c1b
mov eax, 1
mov qword [rsp + 0xd8], rax
mov r14, qword [rsp + 0xe8]
jmp 0x4f4c1b
mov dword [rsp + 0x20], 0
xor eax, eax
mov qword [rsp + 0xd8], rax
mov rcx, r13
mov edx, 0x4b
xor r8d, r8d
call fcn.0047df60
mov rax, qword [rsp + 0xb0]
add eax, 1
mov qword [rsp + 0x68], rax
mov rdx, qword [rsp + 0x128]
mov rbx, qword [rsp + 0xc0]
mov rcx, rbx
call fcn.00408130
mov rcx, rbx
mov rdx, qword [rsp + 0xb8]
call fcn.00408130
cmp dword [rbp + 0x48], 0
jne 0x4f4c53
mov eax, dword [r13 + 0x90]
mov dword [rbp + 0x48], eax
cmp dword [rsp + 0x68], 0
mov r8, qword [rsp + 0x40]
mov ebx, dword [rsp + 0xc8]
je 0x4f4def
cmp dword [rsp + 0xa0], 0
je 0x4f4cea
movsxd rax, dword [r13 + 0x90]
lea r9d, [rax + 3]
cmp dword [r13 + 0x94], eax
jle 0x4f4cc8
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x10
mov rdx, qword [rsp + 0xa0]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f4cea
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0x10
mov r8, qword [rsp + 0xa0]
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xd8]
lea eax, [rcx + rax*2]
lea rcx, [0x00604620]
mov cl, byte [rax + rcx]
mov eax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f4d6b
movsxd rdx, eax
lea ebp, [rdx + 1]
mov dword [r13 + 0x90], ebp
mov rbp, qword [r13 + 0x88]
lea rdx, [rdx + rdx*2]
mov byte [rbp + rdx*8], cl
mov word [rbp + rdx*8 + 2], 0
mov dword [rbp + rdx*8 + 4], r12d
mov ecx, dword [rsp + 0x64]
mov dword [rbp + rdx*8 + 8], ecx
mov rcx, qword [rsp + 0x80]
mov dword [rbp + rdx*8 + 0xc], ecx
mov qword [rbp + rdx*8 + 0x10], 0
mov byte [rbp + rdx*8 + 1], 0
mov rbp, qword [rsp + 0x280]
jmp 0x4f4d8f
movzx edx, cl
mov rax, qword [rsp + 0x80]
mov dword [rsp + 0x20], eax
mov rcx, r13
mov r8d, r12d
mov r9d, dword [rsp + 0x64]
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
jne 0x4f4db4
mov rcx, qword [r13 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov rdx, qword [rsp + 0x68]
mov dword [rcx + rax*8 + 0x10], edx
test ebx, ebx
je 0x4f4def
mov eax, dword [r13 + 0x90]
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
je 0x4f4dd2
lea rcx, [0x0213b3e8]
jmp 0x4f4dec
lea ecx, [rax - 1]
test ebx, ebx
cmovns ecx, ebx
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [r13 + 0x88]
mov dword [rcx + 8], eax
cmp dword [rsp + 0xa0], 0
je 0x4f4f34
movsxd rax, dword [r13 + 0x90]
lea r9d, [rax + 2]
cmp dword [r13 + 0x94], eax
jle 0x4f4e51
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0xf
mov rdx, qword [rsp + 0xa0]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f4e6e
mov dword [rsp + 0x20], 0
mov rcx, r13
mov edx, 0xf
mov r8, qword [rsp + 0xa0]
call fcn.0047df60
mov rax, qword [rsp + 0xa8]
lea eax, [r14 + rax*2]
lea rcx, [0x00604620]
mov cl, byte [rax + rcx]
mov eax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f4ee8
movsxd rdx, eax
lea ebp, [rdx + 1]
mov dword [r13 + 0x90], ebp
mov rbp, qword [r13 + 0x88]
lea rdx, [rdx + rdx*2]
mov byte [rbp + rdx*8], cl
mov word [rbp + rdx*8 + 2], 0
mov dword [rbp + rdx*8 + 4], r12d
mov ecx, dword [rsp + 0x64]
mov dword [rbp + rdx*8 + 8], ecx
mov rcx, qword [rsp + 0x80]
mov dword [rbp + rdx*8 + 0xc], ecx
mov qword [rbp + rdx*8 + 0x10], 0
mov byte [rbp + rdx*8 + 1], 0
mov rbp, qword [rsp + 0x280]
jmp 0x4f4f07
movzx edx, cl
mov rax, qword [rsp + 0x80]
mov dword [rsp + 0x20], eax
mov rcx, r13
mov r8d, r12d
mov r9d, dword [rsp + 0x64]
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov rcx, qword [r13]
cmp byte [rcx + 0x67], 0
jne 0x4f4f34
mov rdx, qword [rsp + 0x68]
add edx, r14d
mov rcx, qword [r13 + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], edx
mov eax, dword [r15 + 0x38]
mov ecx, eax
xor ecx, 0xfffbffff
test ecx, eax
je 0x4f4fb2
movsxd rax, dword [r13 + 0x90]
cmp dword [r13 + 0x94], eax
jle 0x4f4f90
lea ecx, [rax + 1]
mov dword [r13 + 0x90], ecx
mov rcx, qword [r13 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x7d
mov dword [rcx + rax*8 + 4], r12d
mov rdx, qword [rsp + 0xb0]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f4fb2
mov r9, qword [rsp + 0xb0]
mov dword [rsp + 0x20], r9d
mov rcx, r13
mov edx, 0x7d
mov r8d, r12d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov eax, dword [r15 + 0x38]
not eax
or eax, 0xffffffbf
cmp eax, 0xffffffff
je 0x4f4fd5
mov eax, dword [r8 + 0x44]
not eax
or eax, 0xefdf
cmp ax, 0xffff
je 0x4f50cb
mov rsi, qword [rsp + 0x70]
mov rax, qword [rsi + 0x18]
cmp byte [rax + 0x30], 0
mov r13d, dword [rsp + 0x4c]
js 0x4f504b
mov rsi, qword [r8]
mov r14, qword [rsi + 0x10]
mov eax, dword [r8 + 0x4c]
mov ecx, eax
and ecx, 1
xor eax, 1
or eax, ecx
mov dword [r8 + 0x4c], eax
movsxd rax, dword [r14 + 0x90]
cmp dword [r14 + 0x94], eax
jle 0x4f506a
lea ecx, [rax + 1]
mov dword [r14 + 0x90], ecx
mov rcx, qword [r14 + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x8d
mov dword [rcx + rax*8 + 4], r12d
mov dword [rcx + rax*8 + 8], 0
mov dword [rcx + rax*8 + 0xc], r13d
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f5087
cmp r13d, r12d
jne 0x4f50eb
xor ebx, ebx
mov rdi, qword [rsp + 0x78]
cmp dword [rbp], 0
jne 0x4f5b6d
jmp 0x4f5841
mov dword [rsp + 0x20], r13d
mov rcx, r14
mov edx, 0x8d
mov r8d, r12d
xor r9d, r9d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x78]
mov eax, dword [r8 + 0x44]
not eax
or eax, 0xefdf
cmp ax, 0xffff
je 0x4f50b5
mov rax, qword [rsi + 0xa0]
test rax, rax
cmove rax, rsi
cmp dword [rax + 0x70], 0
je 0x4f5135
xor ebx, ebx
mov rsi, qword [rsp + 0x70]
cmp dword [rbp], 0
jne 0x4f5b6d
jmp 0x4f5841
mov bl, 1
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov r13d, dword [rsp + 0x4c]
cmp dword [rbp], 0
jne 0x4f5b6d
jmp 0x4f5841
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x4f510a
mov eax, dword [rsi + 0x64]
not eax
or eax, 0xfffffffc
cmp eax, 0xfffffffd
je 0x4f510c
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x4f50f4
xor esi, esi
movzx eax, word [rsi + 0x5e]
cmp eax, 1
jne 0x4f516c
mov al, byte [rdi + 0x1f]
test al, al
je 0x4f555b
add al, 0xff
mov byte [rdi + 0x1f], al
movzx eax, al
mov r14d, dword [rdi + rax*4 + 0xd8]
jmp 0x4f5567
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsi]
mov qword [rsp + 0x98], rax
movsx rax, word [rax + 0x36]
lea rbx, [rax*4 + 4]
test rcx, rcx
je 0x4f5232
mov rdx, rbx
call fcn.00429840
jmp 0x4f523a
mov ecx, dword [rdi + 0x28]
sub ecx, eax
jge 0x4f5517
mov ecx, dword [rdi + 0x38]
lea r14d, [rcx + 1]
add ecx, eax
mov dword [rdi + 0x38], ecx
jmp 0x4f5525
mov rdi, qword [rax + 0x10]
test rdi, rdi
je 0x4f51a9
mov eax, dword [rdi + 0x64]
mov ecx, eax
xor ecx, 0xfffffffc
and ecx, eax
cmp ecx, 2
je 0x4f51ab
mov rdi, qword [rdi + 0x28]
test rdi, rdi
jne 0x4f5191
xor edi, edi
mov r12d, dword [r14 + 0x34]
lea eax, [r12 + 1]
mov dword [r14 + 0x34], eax
movzx r9d, word [rdi + 0x5e]
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f5735
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x76
mov dword [rcx + rax*8 + 4], r12d
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f574d
movzx edx, bl
mov dword [rsp + 0x20], 0
mov r8d, edi
call fcn.0047df60
mov r8, qword [rsp + 0x40]
add eax, 1
mov dword [rbp + 0x48], eax
mov byte [rbp + 0x43], 1
jmp 0x4f2d90
mov rcx, rbx
call fcn.00404550
test rax, rax
mov rsi, qword [rsp + 0x70]
je 0x4f5830
mov rcx, rax
xor edx, edx
mov qword [rsp + 0xc8], rax
mov r8, rbx
call fcn.005f4c10
mov r8, qword [rsp + 0xc8]
mov r10, qword [rsp + 0x98]
movsx eax, word [r10 + 0x36]
mov dword [r8], eax
movzx eax, word [rsi + 0x60]
cmp eax, 2
jb 0x4f54e4
movabs r11, 0x436e9f7460d234a0
cmp eax, 2
mov ebx, 2
cmova ebx, eax
mov rax, qword [rsi + 8]
mov qword [rsp + 0xc0], rax
add ebx, 0xffffffff
xor ecx, ecx
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0xb8], rbx
jmp 0x4f52c7
add rcx, 1
cmp rcx, rbx
je 0x4f54e4
mov rax, qword [rsp + 0xc0]
movzx r15d, word [rax + rcx*2]
mov eax, dword [r10 + 0x30]
mov edx, eax
xor edx, 0xffffffdf
mov r9d, r15d
test edx, eax
je 0x4f54c9
test r15w, r15w
js 0x4f52ba
mov rbx, qword [r10 + 8]
movzx r10d, word [rbx + 0x12]
and r10d, 0x20
test r15w, r15w
je 0x4f5340
movsx edx, r15w
test edx, edx
mov eax, 1
cmovle edx, eax
movabs rax, 0x4a92f96e1e85d382
mov r12d, eax
not r12d
or r12d, eax
and r12d, edx
and r12d, 1
cmp r15w, 2
mov qword [rsp + 0x68], rdx
jge 0x4f534a
xor r13d, r13d
xor r9d, r9d
jmp 0x4f542a
xor eax, eax
xor r9d, r9d
jmp 0x4f549e
movabs rax, 0x65d76820c5c8b0fa
mov r8d, eax
not r8d
or r8d, eax
and r8d, edx
and r8d, 0x7ffffffe
xor r13d, r13d
xor r14d, r14d
movzx edx, r10w
shr edx, 5
mov eax, edx
not eax
and eax, 0x2ba6
and edx, 0x459
or edx, eax
xor edx, 0x2ba7
add r14d, edx
mov rax, r13
not rax
mov rdx, r11
not rdx
mov rbp, rax
and rbp, r11
mov rsi, r13
and rsi, rdx
or rsi, rbp
mov rbp, r11
and rbp, 0xfffffffffffffffe
mov edi, edx
and edi, 1
or rdi, rbp
xor rdi, rsi
not eax
or edx, r11d
and edx, eax
and edx, 1
or rdx, rdi
lea rax, [rdx + rdx*2]
movzx eax, word [rbx + rax*8 + 0x12]
shr eax, 5
mov r9d, eax
xor r9d, 0x7fe
and r9d, eax
mov eax, r9d
not eax
and eax, 0x66c3
and r9d, 0x13c
or r9d, eax
xor r9d, 0x66c2
add r9d, r14d
add r13, 2
lea rax, [r13*2]
add rax, r13
movzx eax, word [rbx + rax*8 + 0x12]
mov r10d, eax
xor r10d, 0xffffffdf
and r10d, eax
mov r14d, r9d
add r8, 0xfffffffffffffffe
jne 0x4f536d
test r12, r12
je 0x4f546a
lea rax, [r13*2]
add rax, r13
movzx eax, word [rbx + rax*8 + 0x2a]
movzx edx, r10w
mov r10d, eax
xor r10d, 0xffffffdf
and r10d, eax
shr edx, 5
mov eax, edx
not eax
and eax, 0xffff9e28
and edx, 0x1d7
or edx, eax
xor edx, 0xffff9e29
add r9d, edx
mov rbp, qword [rsp + 0x280]
mov r13d, dword [rsp + 0x4c]
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x70]
mov r12d, dword [rsp + 0xe0]
mov r14, qword [rsp + 0xa0]
mov r8, qword [rsp + 0xc8]
mov rax, qword [rsp + 0x68]
test r10w, r10w
je 0x4f54b9
sub eax, r9d
mov r10, qword [rsp + 0x98]
add ax, word [r10 + 0x38]
mov r9d, eax
jmp 0x4f54c1
mov r10, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xb8]
test r15w, r15w
js 0x4f52ba
movsx rax, r9w
lea edx, [rcx + 1]
mov dword [r8 + rax*4 + 4], edx
jmp 0x4f52ba
mov rcx, qword [r14]
cmp byte [rcx + 0x67], 0
je 0x4f56f3
mov rdx, r8
call fcn.00408130
xor ebx, ebx
mov r8, qword [rsp + 0x40]
mov r15, qword [rsp + 0x88]
cmp dword [rbp], 0
jne 0x4f5b6d
jmp 0x4f5841
mov r14d, dword [rdi + 0x2c]
lea edx, [r14 + rax]
mov dword [rdi + 0x2c], edx
mov dword [rdi + 0x28], ecx
test ax, ax
mov rdi, qword [rsp + 0x78]
jne 0x4f556c
xor ebp, ebp
jmp 0x4f563f
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x4b
xor r8d, r8d
mov r9d, r12d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
jmp 0x4f5c02
mov r14d, dword [rdi + 0x38]
add r14d, 1
mov dword [rdi + 0x38], r14d
mov rdi, qword [rsp + 0x78]
xor ebx, ebx
jmp 0x4f55ba
lea edx, [rbp + 1]
mov dword [rcx + 0x90], edx
mov rdx, qword [rcx + 0x88]
lea rcx, [rbp*2]
add rcx, rbp
mov dword [rdx + rcx*8], 0x5e
mov dword [rdx + rcx*8 + 4], r12d
mov dword [rdx + rcx*8 + 8], r9d
mov dword [rdx + rcx*8 + 0xc], eax
mov qword [rdx + rcx*8 + 0x10], 0
add rbx, 1
movzx ebp, word [rsi + 0x5e]
cmp rbx, rbp
jae 0x4f563f
mov rbp, qword [rsp + 0x70]
movzx ecx, word [rbp + 0x60]
mov eax, 0xffffffff
test rcx, rcx
je 0x4f55f8
mov rdx, qword [rsi + 8]
movzx edx, word [rdx + rbx*2]
mov rdi, qword [rbp + 8]
xor ebp, ebp
nop
cmp word [rdi + rbp*2], dx
je 0x4f55f1
add rbp, 1
cmp rcx, rbp
jne 0x4f55e0
jmp 0x4f55f3
mov eax, ebp
mov rdi, qword [rsp + 0x78]
movsx r9d, ax
lea eax, [r14 + rbx]
mov rcx, qword [rsp + 0x50]
movsxd rbp, dword [rcx + 0x90]
cmp dword [rcx + 0x94], ebp
jg 0x4f5570
mov dword [rsp + 0x20], eax
mov edx, 0x5e
mov r8d, r12d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
add rbx, 1
movzx ebp, word [rsi + 0x5e]
cmp rbx, rbp
jb 0x4f55ba
mov rsi, qword [rsp + 0x50]
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f5691
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x1b
mov dword [rdx + rcx*8 + 4], r13d
mov rbx, qword [rsp + 0x108]
mov dword [rdx + rcx*8 + 8], ebx
mov dword [rdx + rcx*8 + 0xc], r14d
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4f56b3
mov dword [rsp + 0x20], r14d
mov rcx, rsi
mov edx, 0x1b
mov r8d, r13d
mov r9, qword [rsp + 0x108]
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
jne 0x4f56d5
movzx ecx, bp
mov rdx, qword [rsi + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rdx + rax*8 + 1], 0xfd
mov dword [rdx + rax*8 + 0x10], ecx
xor ebx, ebx
mov rbp, qword [rsp + 0x280]
mov rsi, qword [rsp + 0x70]
cmp dword [rbp], 0
jne 0x4f5b6d
jmp 0x4f5841
mov ecx, dword [r14 + 0x90]
add ecx, 0xffffffff
mov rax, qword [r14 + 0x88]
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
cmp byte [rax + rcx*8 + 1], 0
mov r15, qword [rsp + 0x88]
je 0x4f5820
lea rdx, [rax + rcx*8]
mov rcx, r14
mov r9d, 0xfffffff2
call fcn.0047e190
jmp 0x4f5830
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x76
mov r8d, r12d
call fcn.0047df60
mov rsi, qword [r14 + 0x10]
mov rcx, r14
mov rdx, rdi
call fcn.004c65a0
test rax, rax
je 0x4f580c
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
mov rdi, qword [rsp + 0x78]
je 0x4f5bd7
mov edx, 0xfffffff8
mov r8, rax
call fcn.00444fc0
jmp 0x4f5bf8
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x4f3af2
movzx eax, word [rax + 0x30]
test ax, ax
js 0x4f3b56
mov rdx, qword [rdx + 8]
test rdx, rdx
je 0x4f3b56
lea rax, [rax + rax*2]
mov eax, dword [rdx + rax*8 + 8]
not eax
or eax, 0xfffffff0
cmp eax, 0xffffffff
jne 0x4f3b56
jmp 0x4f3af2
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x4f4834
movzx eax, word [rax + 0x30]
test ax, ax
js 0x4f48a5
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x4f48a5
lea rax, [rax + rax*2]
mov eax, dword [rcx + rax*8 + 8]
mov ecx, eax
xor ecx, 0xfffffff0
test ecx, eax
jne 0x4f48a5
jmp 0x4f4834
mov r8, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x78]
jmp 0x4f5c02
lea rdx, [rax + rcx*8]
add rdx, 1
mov qword [rax + rcx*8 + 0x10], r8
mov byte [rdx], 0xf2
xor ebx, ebx
mov r8, qword [rsp + 0x40]
cmp dword [rbp], 0
jne 0x4f5b6d
mov eax, dword [r8 + 0x44]
mov ecx, eax
xor ecx, 0xefdf
test cx, ax
jne 0x4f5b4f
mov dword [rsp + 0x68], ebx
mov rax, qword [rsi + 0x50]
mov qword [rsp + 0xc0], rax
test rax, rax
jne 0x4f587e
mov eax, dword [rsi + 0x64]
mov ecx, eax
xor ecx, 0xfffffbff
test ecx, eax
je 0x4f5b36
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x98], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x1d0], xmm0
mov qword [rsp + 0x1f0], 0
lea rax, [rsp + 0x1a8]
mov qword [rsp + 0x1f8], rax
mov dword [rsp + 0x1b0], r13d
mov eax, dword [rsp + 0xe0]
mov dword [rsp + 0x1b4], eax
mov qword [rsp + 0x1c0], r8
mov rax, qword [r8]
mov rax, qword [rax]
mov qword [rsp + 0x1c8], rax
cmp word [rsi + 0x60], 0
je 0x4f5b36
xor edi, edi
lea r15, [rsp + 0x1d0]
lea r14, [0x005fc4bb]
lea r12, [0x005fade0]
jmp 0x4f5928
add rdi, 1
mov rsi, qword [rsp + 0x70]
movzx eax, word [rsi + 0x60]
cmp rdi, rax
mov rbp, qword [rsp + 0x280]
jae 0x4f5b36
mov rax, qword [rsi + 8]
movsx r9d, word [rax + rdi*2]
cmp r9d, 0xfffffffe
jne 0x4f59c0
mov rax, rdi
shl rax, 5
mov rcx, qword [rsp + 0xc0]
mov rdx, qword [rcx + rax + 8]
mov qword [rsp + 0x1a8], rdx
mov word [rsp + 0x154], 1
lea rax, [0x004ce7b0]
mov qword [rsp + 0x138], rax
lea rax, [0x004cea20]
mov qword [rsp + 0x140], rax
mov dword [rsp + 0x158], 0
test rdx, rdx
je 0x4f590a
lea rcx, [rsp + 0x130]
call fcn.004cea30
mov r8, qword [rsp + 0x40]
cmp word [rsp + 0x154], 0
lea rax, [0x00506760]
jne 0x4f590a
jmp 0x4f5a78
test r9w, r9w
js 0x4f590a
mov rax, qword [rsp + 0x98]
mov rdx, qword [rax + 8]
movzx ecx, r9w
lea rbp, [rcx + rcx*2]
movzx ebx, word [rdx + rbp*8 + 0x12]
mov esi, ebx
not esi
mov ecx, esi
or ecx, 0xffffffdf
cmp ecx, 0xffffffff
je 0x4f590a
mov ecx, ebx
xor ecx, 0xfdff
test ecx, ebx
je 0x4f5a69
test cx, bx
je 0x4f5a33
mov rdx, qword [rdx + rbp*8]
add rdx, 0xffffffffffffffff
cmp byte [rdx + 1], 0
lea rdx, [rdx + 1]
jne 0x4f5a0e
or esi, 0xfffb
cmp si, 0xffff
je 0x4f5a37
lea rcx, [rdx + 1]
cmp byte [rdx + 1], 0
mov rdx, rcx
jne 0x4f5a24
jmp 0x4f5a3a
xor ecx, ecx
jmp 0x4f5a3e
mov rcx, rdx
add rcx, 1
xor edx, edx
jmp 0x4f5a56
movzx eax, byte [rbp + r12]
cmp al, byte [rbx + r12]
jne 0x4f590a
add rdx, 1
movzx ebp, byte [rcx + rdx]
movzx ebx, byte [rdx + r14]
cmp bpl, bl
jne 0x4f5a42
test bpl, bpl
jne 0x4f5a52
mov dword [rsp + 0x1bc], r9d
lea rax, [0x00506860]
mov qword [rsp + 0x1d8], rax
mov dword [rsp + 0x1b8], edi
mov rdx, qword [r8 + 0x20]
test rdx, rdx
je 0x4f5a9d
mov rcx, r15
call fcn.004cea30
mov r8, qword [rsp + 0x40]
mov r13, qword [r8 + 0x10]
test r13, r13
je 0x4f5adb
mov esi, dword [r13]
test esi, esi
jle 0x4f5adb
add r13, 8
lea ebx, [rsi + 1]
jmp 0x4f5ac6
add esi, 0xffffffff
add r13, 0x20
add ebx, 0xffffffff
cmp ebx, 1
jle 0x4f5adb
mov rdx, qword [r13]
test rdx, rdx
je 0x4f5ab7
mov rcx, r15
call fcn.004cea30
test eax, eax
je 0x4f5ab7
mov r8, qword [rsp + 0x40]
mov rsi, qword [r8 + 0x18]
test rsi, rsi
mov r13d, dword [rsp + 0x4c]
je 0x4f590a
mov ebx, dword [rsi]
test ebx, ebx
jle 0x4f590a
add rsi, 8
lea ebp, [rbx + 1]
jmp 0x4f5b18
add ebx, 0xffffffff
add rsi, 0x20
add ebp, 0xffffffff
cmp ebp, 1
jle 0x4f590a
mov rdx, qword [rsi]
test rdx, rdx
je 0x4f5b05
mov rcx, r15
call fcn.004cea30
mov r8, qword [rsp + 0x40]
test eax, eax
je 0x4f5b05
jmp 0x4f590a
mov rdi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x88]
mov r12d, dword [rsp + 0xe0]
mov ebx, dword [rsp + 0x68]
mov rcx, qword [rsi + 0x48]
test rcx, rcx
je 0x4f5b6d
mov edx, r13d
mov r8, qword [rsp + 0x120]
call fcn.005065c0
mov r8, qword [rsp + 0x40]
mov eax, dword [r15 + 0x38]
mov ecx, eax
not ecx
or ecx, 0xffffefff
cmp ecx, 0xffffffff
je 0x4f5b8e
mov byte [rbp + 0x41], 0xb8
mov r13, qword [rsp + 0x90]
jmp 0x4f5baa
cmp dword [rsp + 0xa8], 0
mov r13, qword [rsp + 0x90]
je 0x4f5ba6
mov byte [rbp + 0x41], 0x25
jmp 0x4f5baa
mov byte [rbp + 0x41], 0x26
mov dword [rbp + 0x44], r12d
mov ecx, eax
shr ecx, 0x10
mov edx, ecx
xor dl, 0xfe
and dl, cl
mov byte [rbp + 0x42], dl
mov ecx, eax
xor ecx, 0xfffffff0
test ecx, eax
jne 0x4f5bca
mov byte [rbp + 0x43], 1
xor eax, eax
test bl, bl
cmovne rsi, rax
jmp 0x4f69be
mov rcx, qword [rsi + 0x88]
mov edx, dword [rsi + 0x90]
add edx, 0xffffffff
movsxd rdx, edx
lea rdx, [rdx + rdx*2]
mov byte [rcx + rdx*8 + 1], 0xf8
mov qword [rcx + rdx*8 + 0x10], rax
mov r8, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x50]
mov eax, dword [r14 + 0x38]
add eax, 1
mov dword [rsp + 0x80], eax
mov dword [r14 + 0x38], eax
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f5c65
mov dword [rsp + 0xf8], eax
cdqe
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x47
mov edx, dword [rsp + 0xc8]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f5c91
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x47
xor r8d, r8d
mov r9d, dword [rsp + 0xc8]
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0xf8], eax
xor eax, eax
mov qword [rsp + 0x88], rax
cmp dword [r8 + 0x94], 2
jl 0x4f5cb7
xor esi, esi
lea rbp, [0x00602f63]
xorps xmm6, xmm6
xor ebx, ebx
xor edi, edi
jmp 0x4f5ceb
xor eax, eax
mov qword [rsp + 0xa8], rax
jmp 0x4f5fc7
mov rdi, r13
mov r8, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x4c]
add rbx, 1
movsxd rax, dword [r8 + 0x94]
add rsi, 0x38
cmp rbx, rax
jge 0x4f5f14
mov rax, qword [r8 + 0xa0]
mov rcx, r15
sub rcx, rax
cmp rcx, rsi
je 0x4f5cd3
movzx ecx, word [rax + rsi + 0x12]
not ecx
or ecx, 0x7ff9
cmp cx, 0xffff
jne 0x4f5cd3
mov ecx, dword [rax + rsi + 0x14]
not ecx
or ecx, 0xc000
cmp cx, 0xffff
je 0x4f5cd3
mov rdx, qword [rax + rsi]
mov eax, dword [rdx + 4]
mov ecx, eax
xor ecx, 0xffbfffff
test ecx, eax
jne 0x4f5cd3
mov rcx, qword [rsp + 0xc0]
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
mov r13, rax
test rdi, rdi
je 0x4f5cc6
test r13, r13
mov r8, qword [rsp + 0x40]
je 0x4f5cce
mov rcx, qword [r14]
mov eax, dword [rdi + 4]
not eax
or eax, 0xdffffffe
cmp eax, 0xdfffffff
je 0x4f5d8c
mov eax, dword [r13 + 4]
mov edx, eax
xor edx, 0xdffffffe
and edx, eax
cmp edx, 0x20000000
jne 0x4f5d96
cmp byte [r14 + 0x124], 1
jbe 0x4f5db6
mov rcx, r14
mov edx, 0x2c
mov r8, rdi
mov r9, r13
call fcn.004997c0
mov r8, qword [rsp + 0x40]
mov rdi, rax
jmp 0x4f5cce
mov rax, qword [r14 + 0x58]
test rax, rax
mov qword [rsp + 0xa8], rcx
je 0x4f5df8
movsxd rbp, dword [rax]
cmp dword [rax + 4], ebp
jle 0x4f5e02
lea edx, [rbp + 1]
mov dword [rax], edx
shl rbp, 5
movups xmmword [rax + rbp + 0x10], xmm6
mov qword [rax + rbp + 0x20], 0
mov qword [rax + rbp + 8], rdi
mov qword [r14 + 0x58], rax
lea rbp, [0x00602f63]
jmp 0x4f5e1d
mov rdx, rdi
call fcn.0050cd80
jmp 0x4f5e14
mov rdx, rax
mov r8, rdi
call fcn.0050ce50
lea rbp, [0x00602f63]
mov qword [r14 + 0x58], rax
test rax, rax
je 0x4f5e53
movsxd rcx, dword [rax]
cmp dword [rax + 4], ecx
jle 0x4f5e43
lea edx, [rcx + 1]
mov dword [rax], edx
shl rcx, 5
movups xmmword [rax + rcx + 0x10], xmm6
mov qword [rax + rcx + 0x20], 0
mov qword [rax + rcx + 8], r13
jmp 0x4f5e5e
mov rcx, qword [r14]
mov rdx, rax
mov r8, r13
call fcn.0050ce50
jmp 0x4f5e5e
mov rcx, qword [r14]
mov rdx, r13
call fcn.0050cd80
mov qword [r14 + 0x58], rax
mov dword [rsp + 0x130], 0
mov rcx, rbp
lea rdx, [rsp + 0x130]
call fcn.0047a900
mov ebp, eax
xor eax, eax
test ebp, ebp
sete al
lea rdx, [rax + rax]
add rdx, 0x48
mov rcx, qword [rsp + 0xa8]
call fcn.00429840
mov rdi, rax
test rax, rax
mov r8, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x4c]
je 0x4f5f08
movups xmmword [rdi], xmm6
movups xmmword [rdi + 0x30], xmm6
movups xmmword [rdi + 0x20], xmm6
movups xmmword [rdi + 0x10], xmm6
mov qword [rdi + 0x40], 0
mov byte [rdi], 0x9b
mov word [rdi + 0x32], 0xffff
test ebp, ebp
je 0x4f5ef0
mov eax, dword [rsp + 0x130]
xor ecx, ecx
test eax, eax
sete cl
shl ecx, 0x1c
add ecx, 0x10800800
mov dword [rdi + 4], ecx
mov dword [rdi + 8], eax
jmp 0x4f5f01
mov rax, rdi
add rax, 0x48
mov qword [rdi + 8], rax
mov word [rdi + 0x48], 0x30
mov dword [rdi + 0x28], 1
lea rbp, [0x00602f63]
jmp 0x4f5cd3
test rdi, rdi
mov rbx, qword [rsp + 0x70]
je 0x4f5fa6
mov rcx, qword [r14]
mov edx, 0x48
call fcn.00429840
test rax, rax
mov qword [rsp + 0xa8], rax
je 0x4f5fb2
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
mov qword [rax + 0x40], 0
mov byte [rax], 0x2c
mov word [rax + 0x32], 0xffff
mov qword [rax + 0x18], rdi
mov rsi, rax
mov eax, 0x400208
and eax, dword [rdi + 4]
mov dword [rsi + 4], eax
mov eax, dword [rdi + 0x28]
xor ecx, ecx
test eax, eax
cmovns ecx, eax
lea eax, [rcx + 1]
mov dword [rsi + 0x28], eax
mov rax, qword [r14]
mov r8d, dword [rax + 0x94]
cmp r8d, ecx
mov rsi, qword [rsp + 0x50]
jg 0x4f5fc2
lea rdx, [0x00603afc]
mov rcx, r14
call fcn.00419aa0
jmp 0x4f5fc2
xor eax, eax
mov qword [rsp + 0xa8], rax
jmp 0x4f5fbd
mov rcx, qword [r14]
mov rdx, rdi
call fcn.00468370
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x78]
lea r8, [0x00604624]
mov rcx, r14
mov dl, 1
call fcn.004d0380
cmp dword [rbx + 0x14], 0
jle 0x4f67f1
mov qword [rsp + 0xd0], r12
xor r12d, r12d
xorps xmm6, xmm6
xor eax, eax
mov qword [rsp + 0x88], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov r14, qword [rsp + 0xb8]
jmp 0x4f6031
mov rcx, qword [rsp + 0xc0]
mov rdx, rbp
call fcn.00468370
mov r13d, dword [rsp + 0x4c]
add r12, 1
movsxd rax, dword [rbx + 0x14]
cmp r12, rax
jge 0x4f6800
mov rax, qword [rbx + 0x20]
imul rcx, r12, 0x38
cmp dword [rax + rcx + 0x1c], r13d
je 0x4f6052
mov edx, dword [rax + rcx + 0x14]
not edx
or edx, 0xfbff
cmp dx, 0xffff
je 0x4f6020
mov rdx, qword [rax + rcx]
test rdx, rdx
je 0x4f6086
mov rbx, qword [rsp + 0xc0]
mov rcx, rbx
xor r8d, r8d
xor r9d, r9d
call fcn.004d3ed0
mov rbp, rax
cmp byte [rbx + 0x67], 0
je 0x4f6098
test rbp, rbp
mov rbx, qword [rsp + 0x70]
jne 0x4f600b
jmp 0x4f601b
mov rax, qword [rsp + 0xc0]
cmp byte [rax + 0x67], 0
jne 0x4f6020
xor ebp, ebp
jmp 0x4f609d
mov rbx, qword [rsp + 0x70]
mov rax, qword [rsp + 0xa8]
mov rdi, rbp
test rax, rax
je 0x4f60b4
mov qword [rax + 0x10], rbp
mov rdi, rax
lea r9d, [r12 + 1]
mov rsi, qword [rsp + 0x58]
mov rcx, rsi
mov dl, 1
lea r8, [0x00604633]
call fcn.004d0380
mov rax, qword [rsp + 0x98]
mov dword [rsp + 0x38], eax
movups xmmword [rsp + 0x20], xmm6
mov word [rsp + 0x30], 0x20
mov rcx, rsi
mov rdx, r14
mov r8, rdi
xor r9d, r9d
call fcn.004e3b40
test rax, rax
je 0x4f6190
mov r13, rax
mov rdx, r14
mov r14, r15
lea r8, [rax + 0x370]
xor r15d, r15d
mov rcx, rsi
xor r9d, r9d
call fcn.004f1aa0
mov rbx, qword [rsp + 0x40]
mov eax, dword [rbx + 0x44]
mov ecx, eax
xor ecx, 0xffef
test cx, ax
mov rsi, qword [rsp + 0x50]
je 0x4f6271
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f619f
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 9
mov edx, dword [rsp + 0xc8]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0xa0]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f61c9
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x78]
jmp 0x4f63cd
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 9
mov r8d, dword [rsp + 0xc8]
mov r9d, dword [rsp + 0xa0]
call fcn.0047df60
mov rbx, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x78]
test r15d, r15d
je 0x4f6208
mov eax, dword [rsi + 0x90]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
lea rcx, [0x0213b3e8]
jne 0x4f6205
lea ecx, [rax - 1]
test r15d, r15d
cmovns ecx, r15d
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rsi + 0x88]
mov dword [rcx + 8], eax
mov eax, dword [r13 + 0x4c]
mov ecx, eax
not ecx
or ecx, 0xfffffffd
cmp ecx, 0xffffffff
mov rcx, qword [rsp + 0x88]
mov edx, 1
cmovne ecx, edx
mov qword [rsp + 0x88], rcx
mov rcx, qword [r13 + 0x3d0]
mov edx, dword [rcx + 0x38]
not edx
or edx, 0xfffffdff
cmp edx, 0xffffffff
je 0x4f62f3
mov rcx, qword [rcx + 0x20]
test r12, r12
mov r15, r14
je 0x4f6307
cmp rcx, qword [rsp + 0x68]
mov r14, qword [rsp + 0xb8]
jne 0x4f6334
jmp 0x4f6314
mov rax, qword [rsp + 0x70]
mov eax, dword [rax + 0x14]
add eax, 0xffffffff
cmp r12, rax
mov edi, r12d
mov eax, 0xffffffff
cmove edi, eax
mov rax, qword [rsp + 0xb0]
cmp byte [rax + 0x30], 0
js 0x4f63db
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f643b
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x87
mov edx, dword [rsp + 0x4c]
mov dword [rcx + rax*8 + 4], edx
mov edx, dword [rsp + 0x80]
mov dword [rcx + rax*8 + 8], edx
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f645d
xor ecx, ecx
mov qword [rsp + 0x68], rcx
mov r15, r14
mov r14, qword [rsp + 0xb8]
jmp 0x4f633b
mov qword [rsp + 0x68], rcx
mov r14, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
cmp byte [rcx + 0x30], 0
jns 0x4f633b
mov rcx, qword [rsp + 0x68]
mov ecx, dword [rcx + 0x64]
not ecx
or ecx, 0xfffffffc
cmp ecx, 0xfffffffd
jne 0x4f633b
xor ecx, ecx
mov qword [rsp + 0x68], rcx
mov ecx, eax
xor ecx, 0xfffffffe
test ecx, eax
je 0x4f6369
mov eax, dword [rbx + 0x4c]
mov ecx, eax
not ecx
and ecx, 0x531efa33
mov edx, eax
and edx, 0xace105cc
or edx, ecx
xor edx, 0x531efa32
and eax, 1
or eax, edx
mov dword [rbx + 0x4c], eax
mov rcx, r13
call fcn.004e7cc0
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax + 0x130]
test ecx, ecx
je 0x4f63bb
mov rax, qword [rax + 0x10]
mov rbx, qword [rsp + 0x70]
jns 0x4f6394
mov ecx, dword [rax + 0x90]
add ecx, 0xffffffff
mov rdx, qword [rax]
cmp byte [rdx + 0x67], 0
lea rdx, [0x0213b3e8]
jne 0x4f63b6
movsxd rcx, ecx
lea rdx, [rcx + rcx*2]
shl rdx, 3
add rdx, qword [rax + 0x88]
mov eax, dword [rdx + 8]
jmp 0x4f63c2
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov dword [rcx + 0x130], eax
test rbp, rbp
jne 0x4f600b
jmp 0x4f601b
mov rsi, qword [rax + 0x10]
test rsi, rsi
je 0x4f63fa
mov eax, dword [rsi + 0x64]
not eax
or eax, 0xfffffffc
cmp eax, 0xfffffffd
je 0x4f63fc
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x4f63e4
xor esi, esi
movzx r9d, word [rsi + 0x5e]
cmp r9d, 1
mov qword [rsp + 0xe0], r9
mov dword [rsp + 0x64], edi
jne 0x4f650b
mov rcx, qword [rsp + 0x58]
mov al, byte [rcx + 0x1f]
test al, al
je 0x4f653b
add al, 0xff
mov byte [rcx + 0x1f], al
movzx eax, al
mov edi, dword [rcx + rax*4 + 0xd8]
jmp 0x4f6544
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x87
mov r8d, dword [rsp + 0x4c]
mov r9d, dword [rsp + 0x80]
call fcn.0047df60
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f64b3
movsxd rdx, eax
lea ecx, [rdx + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rbx, [rdx + rdx*2]
mov dword [rcx + rbx*8], 0x2e
mov rdx, qword [rsp + 0xd0]
mov dword [rcx + rbx*8 + 4], edx
mov dword [rcx + rbx*8 + 8], 0
mov edx, dword [rsp + 0x80]
mov dword [rcx + rbx*8 + 0xc], edx
mov qword [rcx + rbx*8 + 0x10], 0
jmp 0x4f64d6
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov edx, 0x2e
mov r8, qword [rsp + 0xd0]
xor r9d, r9d
call fcn.0047df60
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
je 0x4f64ec
mov r15d, eax
jmp 0x4f613d
mov rdx, qword [rsi + 0x88]
mov r15d, eax
movsxd rcx, eax
lea rcx, [rcx + rcx*2]
mov byte [rdx + rcx*8 + 1], 0xfd
mov dword [rdx + rcx*8 + 0x10], edi
jmp 0x4f613d
mov rdx, qword [rsp + 0x58]
mov eax, dword [rdx + 0x28]
sub eax, r9d
jge 0x4f6526
mov eax, dword [rdx + 0x38]
lea edi, [rax + 1]
add eax, r9d
mov dword [rdx + 0x38], eax
jmp 0x4f6533
mov edi, dword [rdx + 0x2c]
lea ecx, [rdi + r9]
mov dword [rdx + 0x2c], ecx
mov dword [rdx + 0x28], eax
test r9w, r9w
jne 0x4f6544
jmp 0x4f65b9
mov edi, dword [rcx + 0x38]
add edi, 1
mov dword [rcx + 0x38], edi
mov qword [rsp + 0x100], r13
mov qword [rsp + 0xe8], rbp
mov edi, edi
mov r14d, r9d
xor ebx, ebx
mov rbp, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x4c]
mov r13, qword [rsp + 0xb0]
mov rax, qword [rsi + 8]
movsx r9d, word [rax + rbx*2]
lea eax, [rdi + rbx]
mov dword [rsp + 0x20], eax
mov rcx, rbp
mov rdx, r13
mov r8d, r15d
call fcn.004cdfb0
add rbx, 1
cmp r14, rbx
jne 0x4f656d
mov rbx, qword [rsp + 0x40]
mov r14, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0xe8]
mov r13, qword [rsp + 0x100]
mov r9, qword [rsp + 0xe0]
cmp dword [rsp + 0x64], 0
je 0x4f6616
mov rsi, qword [rsp + 0x50]
mov r15d, dword [rsi + 0x90]
cmp dword [rsi + 0x94], r15d
jle 0x4f6620
movsxd rax, r15d
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x1c
mov rdx, qword [rsp + 0xd0]
mov dword [rcx + rax*8 + 4], edx
mov dword [rcx + rax*8 + 8], 0
mov dword [rcx + rax*8 + 0xc], edi
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f664c
xor r15d, r15d
mov rsi, qword [rsp + 0x50]
jmp 0x4f6678
mov dword [rsp + 0x20], edi
mov rcx, rsi
mov edx, 0x1c
mov r8, qword [rsp + 0xd0]
xor r9d, r9d
call fcn.0047df60
mov r9, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x40]
mov r15d, eax
mov rax, qword [rsi]
cmp byte [rax + 0x67], 0
jne 0x4f666d
mov rax, qword [rsi + 0x88]
movsxd rcx, r15d
lea rcx, [rcx + rcx*2]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], r9d
cmp dword [rsp + 0x64], 0
js 0x4f67a2
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f66c1
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x61
mov dword [rcx + rax*8 + 4], edi
mov dword [rcx + rax*8 + 8], r9d
mov edx, dword [rsp + 0x80]
mov dword [rcx + rax*8 + 0xc], edx
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f66dc
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov edx, 0x61
mov r8d, edi
call fcn.0047df60
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f672e
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x8a
mov rbx, qword [rsp + 0xd0]
mov dword [rdx + rcx*8 + 4], ebx
mov ebx, dword [rsp + 0x80]
mov dword [rdx + rcx*8 + 8], ebx
mov dword [rdx + rcx*8 + 0xc], edi
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4f674f
mov dword [rsp + 0x20], edi
mov rcx, rsi
mov edx, 0x8a
mov r8, qword [rsp + 0xd0]
mov r9d, dword [rsp + 0x80]
call fcn.0047df60
mov rbx, qword [rsp + 0x40]
mov r9, qword [rsp + 0xe0]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
jne 0x4f677c
mov rcx, qword [rsi + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], r9d
cmp dword [rsp + 0x64], 0
je 0x4f67a2
mov eax, dword [rsi + 0x90]
test eax, eax
jle 0x4f67a2
mov rcx, qword [rsi + 0x88]
add eax, 0xffffffff
lea rax, [rax + rax*2]
mov word [rcx + rax*8 + 2], 0x10
cmp r9w, 1
jne 0x4f67d6
test edi, edi
je 0x4f613d
mov rdx, qword [rsp + 0x58]
movzx eax, byte [rdx + 0x1f]
cmp rax, 7
ja 0x4f613d
lea ecx, [rax + 1]
mov byte [rdx + 0x1f], cl
mov dword [rdx + rax*4 + 0xd8], edi
jmp 0x4f613d
mov rax, qword [rsp + 0x58]
cmp dword [rax + 0x28], r9d
jge 0x4f613d
mov dword [rax + 0x28], r9d
mov dword [rax + 0x2c], edi
jmp 0x4f613d
xor eax, eax
mov qword [rsp + 0x68], rax
mov r14, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0x58]
mov ecx, dword [rbp + 0x130]
test ecx, ecx
je 0x4f6848
mov rax, qword [rbp + 0x10]
mov r13, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xf0]
mov r12, qword [rsp + 0x88]
jns 0x4f6836
mov ecx, dword [rax + 0x90]
add ecx, 0xffffffff
mov rdx, qword [rax]
cmp byte [rdx + 0x67], 0
je 0x4f6864
lea rcx, [0x0213b3e8]
jmp 0x4f6876
xor eax, eax
mov r13, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xf0]
mov r12, qword [rsp + 0x88]
jmp 0x4f6879
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rax + 0x88]
mov eax, dword [rcx + 8]
mov dword [rbp + 0x130], eax
mov rbp, qword [rsp + 0x280]
mov rax, qword [rsp + 0x68]
mov qword [rbp + 0x50], rax
test rax, rax
je 0x4f68a0
mov rax, qword [rsp + 0x98]
mov dword [rbp + 8], eax
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x4f68c2
mov qword [rdx + 0x10], 0
mov rcx, qword [rsp + 0xc0]
call fcn.00468370
mov eax, dword [rsi + 0x90]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
je 0x4f68da
lea rcx, [0x0213b3e8]
jmp 0x4f68fb
lea ecx, [rax - 1]
mov edx, dword [rsp + 0xf8]
test edx, edx
cmovns ecx, edx
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rsi + 0x88]
mov dword [rcx + 4], eax
mov r9d, dword [rbp + 0xc]
cmp dword [rsi + 0x94], eax
jle 0x4f6941
movsxd rcx, eax
add eax, 1
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov qword [rax + rcx*8], 8
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], 0
mov qword [rax + rcx*8 + 0x10], 0
jmp 0x4f6959
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 8
xor r8d, r8d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsi + 0x18]
neg ebx
mov eax, dword [rcx + 0x44]
add eax, dword [rcx + 0x48]
js 0x4f697e
mov eax, dword [rsi + 0x90]
mov rcx, qword [rcx + 0x50]
movsxd rdx, ebx
mov dword [rcx + rdx*4], eax
jmp 0x4f698e
mov rdx, rsi
mov r8d, ebx
call fcn.004d3e00
mov r8, qword [rsp + 0x40]
mov eax, dword [rsi + 0x90]
mov dword [rbp + 0x48], eax
cmp byte [r8 + 0x48], 2
jb 0x4f69b3
mov rcx, qword [rsp + 0xc0]
mov rdx, r14
call fcn.00408130
mov r8, qword [rsp + 0x40]
test r12d, r12d
je 0x4f765c
xor esi, esi
movabs r12, 0x45e10b2958187b2a
mov qword [rsp + 0x70], rsi
cmp rsi, 1
mov r11d, 1
adc r11d, 0
lea r10, [rdi + r13]
add r10, 0x44
xorps xmm6, xmm6
mov qword [rsp + 0x90], r10
jmp 0x4f69fb
mov r11d, eax
test eax, eax
jle 0x4f6d6c
mov r15d, dword [r8 + 0x94]
test r15d, r15d
jle 0x4f6d6c
mov r14, qword [r8 + 0xa0]
xor eax, eax
nop word cs:[rax + rax]
nop
mov esi, eax
movzx eax, word [r14 + 0x12]
mov ecx, eax
not ecx
or ecx, 0xfff9
cmp cx, 0xffff
jne 0x4f6a6e
mov rcx, qword [r14 + 0x30]
mov rbx, qword [rbp + 0x68]
mov rdx, rbx
not rdx
not rcx
or rcx, rdx
mov rdx, r12
not rdx
or rdx, r12
not rcx
test rcx, rdx
je 0x4f6a86
mov eax, dword [r8 + 0x4c]
mov ecx, eax
and ecx, 2
xor eax, 2
or eax, ecx
mov dword [r8 + 0x4c], eax
mov eax, esi
lea ecx, [r15 - 1]
add r14, 0x38
cmp r15d, 1
mov r15d, ecx
jg 0x4f6a20
jmp 0x4f69f0
mov r13, qword [r14]
movzx ecx, byte [r10]
not ecx
mov edx, ecx
or edx, 0xffffffa7
cmp edx, 0xffffffff
je 0x4f6b5e
mov edi, dword [r13 + 4]
mov edx, edi
xor edx, 0xfffffffc
test edx, edi
je 0x4f6a6e
or ecx, 0xfffffff7
cmp ecx, 0xffffffff
setne r9b
mov ebp, edi
xor ebp, 0xfffffffe
test ebp, edi
setne dl
cmp r9b, dl
je 0x4f6ad5
not ecx
test ecx, ecx
je 0x4f6ad5
mov eax, esi
mov rbp, qword [rsp + 0x280]
jmp 0x4f6a70
mov ecx, dword [r13 + 0x34]
mov ebp, 1
cmp dword [r8 + 0x270], ecx
je 0x4f6b47
mov edx, dword [r8 + 0x26c]
cmp edx, 2
jl 0x4f6b17
add rdx, 0xffffffffffffffff
mov edi, 1
xor ebp, ebp
nop
cmp dword [r8 + rbp*4 + 0x274], ecx
je 0x4f6b1b
add rdi, 1
add rbp, 1
cmp rdx, rbp
jne 0x4f6b00
xor ebp, ebp
jmp 0x4f6b47
mov edx, 0xfffffffe
sub edx, ebp
mov ecx, 0xffffffff
not ecx
or ecx, edx
movabs rbp, 0x13e751b7213ace2b
mov edx, ebp
not edx
or edx, ebp
not ecx
and ecx, edx
mov ebp, 1
shl rbp, cl
xor rbx, rbp
not rbx
test rbx, rbp
mov rbp, qword [rsp + 0x280]
jne 0x4f6a6e
cmp r11d, 1
jne 0x4f6bf8
mov eax, dword [rbp + 4]
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x140], xmm6
mov qword [rsp + 0x150], 0
mov dword [rsp + 0x1d8], eax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x1d0], rax
lea rax, [0x00502cb0]
mov qword [rsp + 0x138], rax
lea rax, [rsp + 0x1d0]
mov qword [rsp + 0x158], rax
test r13, r13
je 0x4f6bfe
lea rcx, [rsp + 0x130]
mov rdx, r13
mov edi, r11d
call fcn.004cea30
mov r11d, edi
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x40]
cmp word [rsp + 0x154], 0
mov eax, 2
jne 0x4f6a70
jmp 0x4f6bfe
cmp r11d, 2
jg 0x4f6c22
movzx eax, word [r14 + 0x12]
mov ecx, eax
not ecx
or ecx, 0xefff
cmp cx, 0xffff
je 0x4f6c22
test esi, esi
mov eax, 3
cmove esi, eax
jmp 0x4f6a6e
not eax
or eax, 0xfdff
cmp ax, 0xffff
je 0x4f6c9a
mov r8d, dword [rbp + 0x2c]
test r8d, r8d
je 0x4f6c9a
mov ebp, r11d
mov eax, r8d
not eax
or eax, 0xfffffffe
xor ecx, ecx
cmp eax, 0xffffffff
sete cl
mov edx, 0x10
sub edx, ecx
shr r8d, 1
mov rcx, qword [rsp + 0x50]
mov ebx, dword [rcx + 0x90]
cmp dword [rcx + 0x94], ebx
jle 0x4f6ccd
movsxd rax, ebx
lea edi, [rax + 1]
mov dword [rcx + 0x90], edi
mov rcx, qword [rcx + 0x88]
lea rax, [rax + rax*2]
mov byte [rcx + rax*8], dl
mov word [rcx + rax*8 + 2], 0
mov dword [rcx + rax*8 + 4], r8d
mov byte [rcx + rax*8 + 1], 0
movups xmmword [rcx + rax*8 + 8], xmm6
jmp 0x4f6cdf
mov rcx, qword [rsp + 0x58]
mov rdx, r13
mov r8, qword [rsp + 0x108]
mov r9d, 0x10
mov edi, r11d
call fcn.004cdaa0
mov r11d, edi
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x40]
jmp 0x4f6d53
mov dword [rsp + 0x20], 0
xor r9d, r9d
call fcn.0047df60
mov ebx, eax
mov rcx, qword [rsp + 0x58]
mov rdx, r13
mov r8, qword [rsp + 0x108]
mov r9d, 0x10
call fcn.004cdaa0
test ebx, ebx
mov r8, qword [rsp + 0x40]
mov r10, qword [rsp + 0x90]
mov r11d, ebp
mov rbp, qword [rsp + 0x280]
je 0x4f6d53
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx + 0x90]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
lea rcx, [0x0213b3e8]
jne 0x4f6d50
lea ecx, [rax - 1]
test ebx, ebx
cmovns ecx, ebx
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
mov rdx, qword [rsp + 0x50]
add rcx, qword [rdx + 0x88]
mov dword [rcx + 8], eax
movzx eax, word [r14 + 0x12]
mov ecx, eax
and ecx, 4
xor eax, 4
or eax, ecx
mov word [r14 + 0x12], ax
jmp 0x4f6a6e
mov esi, dword [r8 + 0x9c]
test esi, esi
jle 0x4f6ff2
mov rbx, qword [r8 + 0xa0]
xorps xmm6, xmm6
movabs r15, 0x8300000000
lea r12, [rsp + 0x130]
movabs rdi, 0x5399a9cf6523c503
jmp 0x4f6e42
mov rax, qword [r14]
mov rcx, qword [rax + 0x40]
mov qword [rsp + 0x170], rcx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x160], xmm3
movaps xmmword [rsp + 0x150], xmm2
movaps xmmword [rsp + 0x140], xmm1
movaps xmmword [rsp + 0x130], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x140], rax
mov rcx, qword [rsp + 0x58]
mov rdx, r12
mov r8, qword [rsp + 0x108]
mov r9d, 0x10
call fcn.004cdaa0
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x40]
movzx eax, word [r14 + 0x12]
mov ecx, eax
and ecx, 4
xor eax, 4
or eax, ecx
mov word [r14 + 0x12], ax
nop dword [rax]
lea eax, [rsi - 1]
add rbx, 0x38
cmp esi, 1
mov esi, eax
jle 0x4f6ff2
movzx eax, word [rbx + 0x12]
mov ecx, eax
xor ecx, 0xfff9
test cx, ax
jne 0x4f6e30
movzx eax, word [rbx + 0x14]
not eax
mov ecx, eax
or ecx, 0xffffff7d
cmp ecx, 0xffffffff
not ecx
sete r9b
or eax, 0xfffff7ff
cmp eax, 0xffffffff
not eax
sete dl
or eax, ecx
sete al
cmp r9b, dl
jne 0x4f6e30
test al, al
jne 0x4f6e30
mov eax, dword [rsp + 0x4c]
cmp dword [rbx + 0x1c], eax
jne 0x4f6e30
mov al, byte [r10]
mov ecx, eax
xor cl, 0xa7
test cl, al
jne 0x4f6e30
mov r13, qword [rbx]
mov eax, dword [rbx + 0x20]
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x130], rcx
mov qword [rsp + 0x138], rcx
mov byte [rsp + 0x158], 0
lea rcx, [rsp + 0x140]
movups xmmword [rcx], xmm6
mov qword [rsp + 0x150], r15
mov ecx, dword [rsp + 0x4c]
mov dword [rsp + 0x15c], ecx
mov word [rsp + 0x159], 0x101
cmp eax, 0xfffffffe
je 0x4f6e30
mov word [rsp + 0x188], ax
mov rcx, r12
call fcn.004fcd00
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x40]
test rax, rax
je 0x4f6e30
xor r14d, r14d
jmp 0x4f6f42
mov rbp, qword [rsp + 0x280]
mov rcx, r12
call fcn.004fcd00
test rax, rax
mov r8, qword [rsp + 0x40]
mov r10, qword [rsp + 0x90]
je 0x4f6f8c
mov rcx, qword [rax + 0x28]
mov rdx, rcx
not rdx
mov rbp, rdi
not rbp
or rdx, qword [rsp + 0x110]
or rbp, rdi
not rdx
test rdx, rbp
jne 0x4f6f20
test rcx, rcx
mov rbp, qword [rsp + 0x280]
jne 0x4f6f83
mov ecx, dword [rax + 0x14]
not ecx
or ecx, 0xff7d
cmp cx, 0xffff
jne 0x4f6fed
test r14, r14
cmove r14, rax
jmp 0x4f6f28
test r14, r14
je 0x4f6e30
movzx eax, word [r14 + 0x12]
not eax
or eax, 0xfffb
cmp ax, 0xffff
jne 0x4f6e30
mov eax, dword [r14 + 0x14]
not eax
or eax, 0xfffe
cmp ax, 0xffff
je 0x4f6da6
mov rax, qword [r14]
mov ecx, dword [rax + 4]
not ecx
or ecx, 0xffffefff
cmp ecx, 0xffffffff
je 0x4f6da9
mov rcx, qword [rax + 0x20]
mov rcx, qword [rcx + 0x20]
cmp dword [rcx], 1
jle 0x4f6da9
jmp 0x4f6e30
mov r14, rax
jmp 0x4f6f95
mov rdi, qword [rbp + 0x38]
test rdi, rdi
mov r14, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
je 0x4f7451
movzx eax, byte [rbp + 0x40]
mov rcx, qword [r8 + 8]
imul rax, rax, 0x68
mov r15, qword [rcx + rax + 0x28]
cmp byte [r15 + 0x30], 0
js 0x4f703a
mov eax, dword [r14 + 0x28]
cmp eax, 2
jge 0x4f709a
lea rcx, [r14 + 0x38]
mov eax, dword [r14 + 0x38]
lea ebx, [rax + 1]
add eax, 2
jmp 0x4f70ac
mov rbx, qword [r15 + 0x10]
test rbx, rbx
je 0x4f7066
nop word [rax + rax]
mov eax, dword [rbx + 0x64]
not eax
or eax, 0xfffffffc
cmp eax, 0xfffffffd
je 0x4f7068
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x4f7050
xor ebx, ebx
movzx r13d, word [rbx + 0x5e]
test r13d, r13d
je 0x4f70d5
lea eax, [r13 + 1]
mov ecx, dword [r14 + 0x28]
cmp ecx, r13d
mov qword [rsp + 0x110], rdi
jle 0x4f70f7
mov ebp, dword [r14 + 0x2c]
lea edx, [rax + rbp]
mov dword [r14 + 0x2c], edx
sub ecx, eax
mov dword [r14 + 0x28], ecx
jmp 0x4f7104
mov ebx, dword [r14 + 0x2c]
lea rcx, [r14 + 0x28]
lea edx, [rbx + 2]
mov dword [r14 + 0x2c], edx
add eax, 0xfffffffe
mov dword [rcx], eax
mov r8d, dword [rbp + 4]
lea eax, [rbx + 1]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r15
mov r9d, 0xffffffff
call fcn.004cdfb0
mov r13d, 1
jmp 0x4f715b
mov al, byte [r14 + 0x1f]
test al, al
je 0x4f7649
add al, 0xff
mov byte [r14 + 0x1f], al
movzx eax, al
mov ebx, dword [r14 + rax*4 + 0xd8]
xor r13d, r13d
jmp 0x4f715b
mov ecx, dword [r14 + 0x38]
lea ebp, [rcx + 1]
add ecx, eax
mov dword [r14 + 0x38], ecx
mov r12d, r13d
mov qword [rsp + 0x70], rbp
lea edi, [rbp + 1]
xor eax, eax
mov rsi, qword [rsp + 0x50]
mov r14d, dword [rsp + 0x4c]
nop dword [rax + rax]
mov rcx, qword [rbx + 8]
movsx r9d, word [rcx + rax*2]
lea rbp, [rax + 1]
add eax, edi
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r15
mov r8d, r14d
call fcn.004cdfb0
mov rax, rbp
cmp r12, rbp
jne 0x4f7120
mov r14, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x110]
mov r8d, dword [rdi]
lea r15d, [rbx + 1]
mov ebp, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ebp
jle 0x4f728a
movsxd rax, ebp
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x1c
mov dword [rcx + rax*8 + 4], r8d
mov dword [rcx + rax*8 + 8], 0
mov dword [rcx + rax*8 + 0xc], r15d
mov qword [rcx + rax*8 + 0x10], 0
mov rax, qword [rsi]
cmp byte [rax + 0x67], 0
je 0x4f72ae
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f72d9
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
mov dword [rcx + rax*8], 0x61
mov dword [rcx + rax*8 + 4], r15d
mov dword [rcx + rax*8 + 8], r13d
mov dword [rcx + rax*8 + 0xc], ebx
mov qword [rcx + rax*8 + 0x10], 0
mov r8d, dword [rdi]
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jg 0x4f7305
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov edx, 0x8a
mov r9d, ebx
call fcn.0047df60
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
je 0x4f7347
mov r8d, dword [rdi + 4]
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f7374
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0xb4
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], 0
mov dword [rdx + rcx*8 + 0xc], r15d
mov qword [rdx + rcx*8 + 0x10], 0
jmp 0x4f7389
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov edx, 0x1c
xor r9d, r9d
call fcn.0047df60
mov ebp, eax
mov rax, qword [rsi]
cmp byte [rax + 0x67], 0
jne 0x4f71ba
mov rax, qword [rsi + 0x88]
movsxd rcx, ebp
lea rcx, [rcx + rcx*2]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], r13d
movsxd rax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jg 0x4f71cd
mov dword [rsp + 0x20], ebx
mov rcx, rsi
mov edx, 0x61
mov r8d, r15d
mov r9d, r13d
call fcn.0047df60
mov r8d, dword [rdi]
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jle 0x4f7214
movsxd rcx, eax
lea edx, [rcx + 1]
mov dword [rsi + 0x90], edx
mov rdx, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
mov dword [rdx + rcx*8], 0x8a
mov dword [rdx + rcx*8 + 4], r8d
mov dword [rdx + rcx*8 + 8], ebx
mov dword [rdx + rcx*8 + 0xc], r15d
mov qword [rdx + rcx*8 + 0x10], 0
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
jne 0x4f7236
mov rcx, qword [rsi + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], r13d
mov r8d, dword [rdi + 4]
mov eax, dword [rsi + 0x90]
cmp dword [rsi + 0x94], eax
jg 0x4f724c
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov edx, 0xb4
xor r9d, r9d
call fcn.0047df60
mov r8, qword [rsp + 0x40]
mov r10, qword [rsp + 0x90]
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
jne 0x4f73b6
mov rcx, qword [rsi + 0x88]
cdqe
lea rax, [rax + rax*2]
mov byte [rcx + rax*8 + 1], 0xfd
mov dword [rcx + rax*8 + 0x10], r13d
mov eax, dword [rsi + 0x90]
test eax, eax
jle 0x4f73d5
mov rcx, qword [rsi + 0x88]
lea edx, [rax - 1]
lea rdx, [rdx + rdx*2]
mov word [rcx + rdx*8 + 2], 0x10
mov rcx, qword [rsi]
cmp byte [rcx + 0x67], 0
je 0x4f7409
lea rcx, [0x0213b3e8]
mov rbp, qword [rsp + 0x280]
mov dword [rcx + 8], eax
test r13d, r13d
je 0x4f7433
cmp dword [r14 + 0x28], r13d
jg 0x4f7451
add r13d, 1
mov dword [r14 + 0x28], r13d
mov dword [r14 + 0x2c], ebx
jmp 0x4f7451
lea ecx, [rax - 1]
test ebp, ebp
cmovns ecx, ebp
movsxd rcx, ecx
lea rcx, [rcx + rcx*2]
shl rcx, 3
add rcx, qword [rsi + 0x88]
mov rbp, qword [rsp + 0x280]
mov dword [rcx + 8], eax
test r13d, r13d
jne 0x4f73f5
test ebx, ebx
je 0x4f7451
movzx eax, byte [r14 + 0x1f]
cmp rax, 7
ja 0x4f7451
lea ecx, [rax + 1]
mov byte [r14 + 0x1f], cl
mov dword [r14 + rax*4 + 0xd8], ebx
mov r9d, dword [rbp]
test r9d, r9d
je 0x4f74b2
movsxd rax, dword [rsi + 0x90]
mov dword [rbp + 0x1c], eax
cmp dword [rsi + 0x94], eax
jle 0x4f74c0
lea ecx, [rax + 1]
mov dword [rsi + 0x90], ecx
mov rcx, qword [rsi + 0x88]
lea rax, [rax + rax*2]
movabs rdx, 0x100000047
mov qword [rcx + rax*8], rdx
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
mov rsi, qword [rbp + 0x38]
test rsi, rsi
jne 0x4f74f1
jmp 0x4f7570
mov rsi, qword [rbp + 0x38]
test rsi, rsi
jne 0x4f74f1
jmp 0x4f7626
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov edx, 0x47
mov r8d, 1
call fcn.0047df60
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x40]
mov rsi, qword [rbp + 0x38]
test rsi, rsi
je 0x4f7570
mov r9d, dword [rsi + 8]
mov rdi, qword [rsp + 0x50]
movsxd rax, dword [rdi + 0x90]
cmp dword [rdi + 0x94], eax
jle 0x4f753d
lea ecx, [rax + 1]
mov dword [rdi + 0x90], ecx
mov rcx, qword [rdi + 0x88]
lea rax, [rax + rax*2]
mov qword [rcx + rax*8], 0x4a
mov dword [rcx + rax*8 + 8], r9d
mov dword [rcx + rax*8 + 0xc], 0
mov qword [rcx + rax*8 + 0x10], 0
jmp 0x4f7562
mov dword [rsp + 0x20], 0
mov rcx, rdi
mov edx, 0x4a
xor r8d, r8d
call fcn.0047df60
mov r10, qword [rsp + 0x90]
mov r8, qword [rsp + 0x40]
mov eax, dword [rdi + 0x90]
mov dword [rsi + 0xc], eax
add byte [r14 + 0x26], 1
mov eax, dword [r8 + 0x9c]
test eax, eax
jle 0x4f7626
movabs rcx, 0x2610164189483174
mov rsi, qword [r8 + 0xa0]
xor edi, edi
mov rbx, rcx
not rbx
or rbx, rcx
jmp 0x4f75ab
add edi, 1
add rsi, 0x38
cmp edi, eax
jge 0x4f7626
movzx ecx, word [rsi + 0x12]
mov edx, ecx
xor edx, 0xfff9
test dx, cx
jne 0x4f75a0
mov rcx, qword [rbp + 0x68]
mov rdx, qword [rsi + 0x30]
not rdx
not rcx
or rcx, rdx
not rcx
test rcx, rbx
jne 0x4f75a0
movzx ecx, byte [r10]
not cl
or cl, 0xbf
cmp cl, 0xff
jne 0x4f75a0
mov rdx, qword [rsi]
mov rcx, r14
mov r8, qword [rsp + 0x108]
mov r9d, 0x10
call fcn.004cdaa0
mov r10, qword [rsp + 0x90]
movzx eax, word [rsi + 0x12]
mov ecx, eax
and ecx, 4
xor eax, 4
or eax, ecx
mov word [rsi + 0x12], ax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0x9c]
jmp 0x4f75a0
mov r12, qword [rbp + 0x68]
mov rax, r12
movaps xmm6, xmmword [rsp + 0x200]
add rsp, 0x218
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, dword [r14 + 0x38]
add ebx, 1
mov dword [r14 + 0x38], ebx
xor r13d, r13d
jmp 0x4f715b
mov rcx, rbp
mov rdx, r15
call fcn.005057b0
mov r8, qword [rsp + 0x40]
xor esi, esi
jmp 0x4f69be