Function at 0x641e20
Capabilities:
Reference http user-agent string

Disassembly:
lea r12, [rsp - 0x218]
cmp r12, qword [r14 + 0x10]
jbe 0x643a68
sub rsp, 0x298
mov qword [rsp + 0x290], rbp
lea rbp, [rsp + 0x290]
mov qword [rsp + 0x2a8], rbx
mov qword [rsp + 0x2b0], rcx
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x100], rdi
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x208], rbx
mov rax, rbx
mov rbx, rcx
mov rcx, rdi
xor edi, edi
call fcn.00641000
test rax, rax
jne 0x64248b
test rcx, rcx
je 0x641fa7
mov rcx, qword [rsp + 0x100]
test rcx, rcx
je 0x641ebf
bt ecx, 9
jb 0x641ebf
mov rbx, qword [rsp + 0x208]
lea rax, [0x007f7248]
jmp 0x641ed4
mov rax, qword [rsp + 0x208]
mov rbx, qword [rsp + 0x210]
call fcn.00491600
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x58], rax
lea rax, [0x006fc500]
call fcn.0040daa0
mov qword [rax + 8], 6
lea rcx, [0x0071a1ac]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rax + 0x10], rcx
cmp dword [0x00a04ed0], 0
jne 0x641f1f
mov rdx, qword [rsp + 0x150]
mov qword [rax + 0x18], rdx
jmp 0x641f30
lea rdi, [rax + 0x18]
mov rdx, qword [rsp + 0x150]
call fcn.00465b40
mov rdx, qword [rsp + 0x2a0]
mov rsi, qword [rdx + 0x18]
mov qword [rax + 0x20], rsi
cmp qword [rdx + 0x70], 0
jne 0x641f8b
lea rbx, [0x007f1b80]
mov rcx, rax
mov rax, rdx
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
jne 0x641f74
mov qword [rdi + 0x78], rbx
jmp 0x641f88
lea rcx, [rdi + 0x78]
mov rax, rdi
mov rdi, rcx
nop
call fcn.00465b60
mov rdi, rax
mov rdx, rdi
mov rax, rdx
call fcn.00640980
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov qword [rsp + 0x100], r9
mov qword [rsp + 0x208], rsi
mov qword [rsp + 0x210], r8
nop
test r9, r9
je 0x641fd8
bt r9d, 9
jb 0x641fd8
mov rax, rsi
lea rcx, [0x007f7248]
jmp 0x642004
mov rax, rsi
mov rbx, r8
mov rcx, r9
call fcn.00491600
mov r8, qword [rsp + 0x210]
mov r9, qword [rsp + 0x100]
mov rcx, rax
mov rsi, rbx
mov rax, qword [rsp + 0x208]
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x148], rsi
nop
mov rdx, r9
and r9d, 0x1f
mov qword [rsp + 0xf8], r9
cmp r9, 0x14
je 0x64202b
xor ebx, ebx
jmp 0x64206b
mov rbx, r8
mov rcx, rdx
call fcn.0048fe00
test rax, rax
sete dl
mov rax, qword [rsp + 0x208]
mov rcx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x148]
mov r8, qword [rsp + 0x210]
mov r9, qword [rsp + 0xf8]
mov ebx, edx
mov rdx, qword [rsp + 0x100]
test bl, bl
jne 0x6423c1
cmp r9, 0x15
je 0x64216a
nop dword [rax]
cmp r9, 0x19
jne 0x6420a6
mov rax, rcx
mov rbx, rsi
call fcn.0064ed00
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x210]
jmp 0x642275
lea rax, [0x006fc500]
call fcn.0040daa0
mov qword [rax + 8], 6
lea rcx, [0x0071a1ac]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x10], rcx
cmp dword [0x00a04ed0], 0
jne 0x6420e4
mov rdx, qword [rsp + 0x148]
mov qword [rax + 0x18], rdx
jmp 0x6420f5
lea rdi, [rax + 0x18]
mov rdx, qword [rsp + 0x148]
call fcn.00465b40
mov rdx, qword [rsp + 0x2a0]
mov rsi, qword [rdx + 0x18]
mov qword [rax + 0x20], rsi
cmp qword [rdx + 0x70], 0
jne 0x64214e
lea rbx, [0x007f1b80]
mov rcx, rax
mov rax, rdx
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
jne 0x642139
mov qword [rdi + 0x78], rbx
jmp 0x64214b
lea rcx, [rdi + 0x78]
mov rax, rdi
mov rdi, rcx
call fcn.00465b60
mov rdi, rax
mov rdx, rdi
mov rax, rdx
call fcn.00640980
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov rdx, qword [rcx + 0x90]
mov rax, rsi
call rdx
mov rcx, qword [rax + 0x98]
mov rax, rbx
call rcx
lea rcx, [rax - 2]
cmp rcx, 0xa
jbe 0x6421e8
cmp rax, 0x18
je 0x6421e8
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rcx + 0x90]
mov rax, qword [rsp + 0x148]
call rdx
mov rcx, qword [0x007f7250]
lea rdx, [0x007f7248]
cmp rax, rdx
jne 0x643a58
mov rax, rbx
call fcn.00488b20
mov rbx, qword [0x009af2b0]
mov rcx, qword [0x009af2b8]
call fcn.00488d80
nop word [rax + rax]
test al, al
je 0x6422fc
mov rdx, qword [rsp + 0x100]
bt edx, 9
jae 0x642202
mov rsi, qword [rsp + 0x210]
nop
jmp 0x64226f
bt edx, 7
jae 0x642215
mov rsi, qword [rsp + 0x210]
mov r8, qword [rsi]
jmp 0x642220
mov rsi, qword [rsp + 0x210]
mov r8, rsi
test r8, r8
jne 0x64226f
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x148]
xor ecx, ecx
call fcn.00492080
mov rdi, rax
mov rsi, rbx
mov r8, rcx
mov rax, qword [rsp + 0x208]
mov rbx, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x100]
call fcn.00490160
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x210]
xor eax, eax
xor ebx, ebx
xor edi, edi
movups xmmword [rsp + 0x268], xmm15
movups xmmword [rsp + 0x270], xmm15
movups xmmword [rsp + 0x280], xmm15
mov rcx, qword [rsp + 0x2a0]
mov r8, qword [rcx + 0x68]
nop dword [rax]
test r8, r8
je 0x6422ca
mov r9, qword [r8]
mov qword [rsp + 0x268], r9
movups xmm0, xmmword [r8 + 8]
movups xmmword [rsp + 0x270], xmm0
movups xmm0, xmmword [r8 + 0x18]
movups xmmword [rsp + 0x280], xmm0
mov qword [rsp + 0x1a8], rax
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x1a0], rdi
lea r8, [rcx + 0x68]
mov qword [rsp + 0x200], r8
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
jmp 0x642547
lea rax, [0x006fc500]
call fcn.0040daa0
mov qword [rax + 8], 6
lea rcx, [0x0071a1ac]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x10], rcx
cmp dword [0x00a04ed0], 0
jne 0x64233a
mov rdx, qword [rsp + 0x148]
mov qword [rax + 0x18], rdx
jmp 0x64234b
lea rdi, [rax + 0x18]
mov rdx, qword [rsp + 0x148]
call fcn.00465b40
mov rdx, qword [rsp + 0x2a0]
mov rsi, qword [rdx + 0x18]
mov qword [rax + 0x20], rsi
cmp qword [rdx + 0x70], 0
jne 0x6423a4
lea rbx, [0x007f1b80]
mov rcx, rax
mov rax, rdx
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
jne 0x64238f
mov qword [rdi + 0x78], rbx
jmp 0x6423a1
lea rcx, [rdi + 0x78]
mov rax, rdi
mov rdi, rcx
call fcn.00465b60
mov rdi, rax
mov rdx, rdi
mov rax, rdx
call fcn.00640980
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
nop
ret
mov rax, qword [rsp + 0x2a0]
call fcn.00646240
nop
cmp byte [0x009b00e0], 0
je 0x642407
lea rdx, [0x006cc900]
mov qword [0x009b00e8], rdx
cmp dword [0x00a04ed0], 0
jne 0x6423f8
mov qword [0x009b00f0], rax
jmp 0x64240e
lea rdi, [0x009b00f0]
nop
call fcn.00465a20
jmp 0x64240e
lea rdx, [0x006cc900]
mov qword [rsp + 0x248], rdx
mov qword [rsp + 0x250], rax
mov rdx, qword [rsp + 0x248]
test rdx, rdx
je 0x64244a
movzx r9d, byte [rdx + 0x17]
mov r10d, r9d
and r9d, 0x1f
mov r11, r9
bts r9, 7
test r10b, 0x20
cmove r11, r9
nop
jmp 0x642451
xor r11d, r11d
xor edx, edx
xor eax, eax
mov rbx, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x100]
mov rdi, rdx
mov rsi, rax
mov r8, r11
mov rax, qword [rsp + 0x208]
call fcn.00490160
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x158], rbx
nop
mov rax, qword [rsp + 0x2a0]
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0xf0], rcx
call fcn.00640980
mov rcx, qword [rsp + 0x2a0]
mov rdx, qword [rcx + 0x10]
mov rbx, qword [rcx]
mov rcx, qword [rcx + 0x18]
cmp rdx, rcx
jb 0x642527
mov rax, qword [rsp + 0xf0]
lea rsi, [rax - 1]
cmp rcx, rsi
jb 0x64251f
mov r8, qword [rsp + 0x60]
mov r8, qword [r8 + 0x18]
sub rdx, rax
lea rdi, [rdx + 1]
mov rdx, rdi
neg rdi
sar rdi, 0x3f
and rsi, rdi
sub rcx, rax
add rbx, rsi
inc rcx
mov rax, qword [rsp + 0x158]
mov rdi, rdx
call r8
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov rax, rsi
call fcn.00465f80
call fcn.00465f40
mov rcx, rdx
mov r9, qword [rsp + 0x90]
mov r10, qword [rsp + 0x180]
mov r11, qword [rsp + 0x188]
mov qword [rsp + 0x188], r11
mov qword [rsp + 0x180], r10
mov qword [rsp + 0x90], r9
mov rax, rcx
mov ebx, 9
call fcn.00640b00
mov rax, qword [rsp + 0x2a0]
mov rcx, qword [rax + 0x20]
nop dword [rax + rax]
cmp rcx, 5
je 0x643378
cmp rcx, 1
jne 0x643a45
nop
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0xf0], rcx
call fcn.00640c00
mov rcx, qword [rsp + 0x2a0]
mov rdx, qword [rcx + 0x10]
mov rbx, qword [rcx]
mov rsi, qword [rcx + 0x18]
lea rdi, [rsi - 1]
nop dword [rax]
cmp rdx, rdi
jb 0x643a3a
mov rax, qword [rsp + 0xf0]
lea r8, [rax - 1]
cmp rdi, r8
jb 0x643a2f
sub rsi, rax
mov qword [rsp + 0xa8], rsi
sub rdx, rax
lea rcx, [rdx + 1]
mov qword [rsp + 0xb0], rcx
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and r8, rcx
lea rdi, [rbx + r8]
mov qword [rsp + 0x198], rdi
mov rbx, rsi
mov rcx, rdx
mov rax, rdi
call fcn.00646740
nop
test dil, dil
je 0x643a1c
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x190], rax
mov qword [rsp + 0xa0], rcx
mov rdx, qword [rsp + 0xf8]
cmp rdx, 0x15
jne 0x6426ce
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rcx + 0x48]
mov rax, qword [rsp + 0x148]
call rdx
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x6426b4
call fcn.00492160
mov rdi, rax
mov rsi, rbx
mov r8, rcx
mov rax, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x188]
mov rcx, qword [rsp + 0x90]
call fcn.00490160
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x188]
jmp 0x6426be
call fcn.00492260
call fcn.0048ec40
xor edx, edx
mov rsi, rcx
mov rdi, rax
mov r8, rbx
jmp 0x642899
mov rcx, rax
mov rdi, rbx
lea rax, [0x006cc8a0]
mov rbx, qword [rsp + 0x1a0]
call fcn.00412f00
mov rax, qword [rax]
test bl, bl
je 0x64271e
mov rcx, qword [rsp + 0xc8]
nop word [rax + rax]
cmp rcx, rax
jbe 0x643a17
lea rdx, [rax + rax*8]
shl rdx, 4
mov r8, qword [rsp + 0x1a8]
add rdx, r8
jmp 0x642740
xor eax, eax
jmp 0x643397
mov r9, qword [rsp + 0x1a8]
xor r10d, r10d
mov rcx, qword [rsp + 0xc8]
mov r8, r9
mov rdx, r10
nop
test rdx, rdx
je 0x64279b
mov qword [rsp + 0x1b0], rdx
movzx r10d, byte [rdx + 0x81]
mov byte [rsp + 0x4f], r10b
mov r11, qword [rdx + 0x58]
mov qword [rsp + 0x1f8], r11
mov r12, qword [rdx + 0x60]
mov qword [rsp + 0xe8], r12
mov rsi, qword [rsp + 0x208]
mov r13, qword [rsp + 0x210]
mov r9, qword [rsp + 0x100]
mov rax, r9
mov rbx, r13
mov rdi, rsi
xor r15d, r15d
jmp 0x6435aa
mov rax, qword [rsp + 0x2a0]
cmp byte [rax + 0x81], 0
je 0x642870
movups xmmword [rsp + 0x258], xmm15
mov rax, qword [rsp + 0x190]
mov rbx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
call fcn.0040b1a0
lea rdx, [0x006b86a0]
mov qword [rsp + 0x258], rdx
mov qword [rsp + 0x260], rax
lea rax, [0x007216c5]
mov ebx, 0x16
lea rcx, [rsp + 0x258]
mov edi, 1
mov rsi, rdi
call fcn.004c2160
mov rdx, qword [rsp + 0x2a0]
cmp qword [rdx + 0x70], 0
jne 0x64285d
mov rcx, rbx
mov rbx, rax
mov rax, rdx
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
nop
jne 0x642848
mov qword [rdi + 0x78], rbx
jmp 0x64285a
lea rcx, [rdi + 0x78]
mov rax, rdi
mov rdi, rcx
call fcn.00465b60
mov rdi, rax
mov rdx, rdi
mov rax, rdx
mov rcx, qword [rsp + 0xc8]
mov r8, qword [rsp + 0x1a8]
xor edx, edx
xor ebx, ebx
xor esi, esi
xor edi, edi
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x180]
mov r8, rdi
mov rdi, rsi
mov rsi, rbx
mov rbx, qword [rsp + 0x188]
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x188], rbx
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x68], rsi
mov byte [rsp + 0x4f], dl
mov qword [rsp + 0x168], r8
mov qword [rsp + 0x160], rdi
mov r9, qword [rsp + 0x2a0]
cmp qword [r9 + 0x20], 9
jne 0x642920
mov rax, r9
mov ebx, 9
call fcn.00640b00
mov rax, qword [rsp + 0x180]
mov rcx, qword [rsp + 0x90]
movzx edx, byte [rsp + 0x4f]
mov rbx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x160]
mov r8, qword [rsp + 0x168]
mov r9, qword [rsp + 0x2a0]
cmp qword [r9 + 0x20], 3
jne 0x64351d
mov rax, r9
mov ebx, 9
call fcn.00640b00
movzx ecx, byte [rsp + 0x4f]
nop dword [rax]
test cl, cl
je 0x642b3f
mov rax, qword [rsp + 0x2a0]
call fcn.00640f40
test rax, rax
je 0x642ae5
cmp dword [rax + 0x10], 0x778cdb8
jne 0x6429d8
lea rdx, [0x006bb4c0]
cmp rax, rdx
jne 0x6429df
mov rcx, qword [rbx + 8]
mov rbx, qword [rbx]
xor eax, eax
nop dword [rax]
call fcn.0044ee00
mov rdi, rcx
mov rsi, qword [rsp + 0x160]
mov r8, qword [rsp + 0x168]
mov r9, qword [rsp + 0x68]
mov r10d, 1
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0x2a0]
call fcn.00643c40
test rax, rax
jne 0x64341e
mov rsi, qword [rsp + 0xf8]
cmp rsi, 0x15
mov rdx, qword [rsp + 0x2a0]
jmp 0x642b82
lea rdx, [0x006bb4c0]
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x642a02
bt ecx, 9
jb 0x642a02
lea rax, [0x007f7248]
mov rbx, qword [rsp + 0x160]
nop
jmp 0x642a23
mov rax, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
call fcn.00491600
mov rcx, qword [rsp + 0x68]
lea rdx, [0x006bb4c0]
movups xmmword [rsp + 0x258], xmm15
test rax, rax
je 0x642a35
mov rax, qword [rax + 8]
mov qword [rsp + 0x258], rax
mov qword [rsp + 0x260], rbx
lea rax, [0x00731a23]
mov ebx, 0x53
lea rcx, [rsp + 0x258]
mov edi, 1
mov rsi, rdi
call fcn.004c2160
mov rdx, qword [rsp + 0x2a0]
cmp qword [rdx + 0x70], 0
je 0x642a86
mov rsi, qword [rsp + 0xf8]
cmp rsi, 0x15
jmp 0x642b82
mov rcx, rbx
mov rbx, rax
mov rax, rdx
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
jne 0x642abb
mov qword [rdi + 0x78], rbx
mov rsi, qword [rsp + 0xf8]
cmp rsi, 0x15
jmp 0x642ad9
lea rsi, [rdi + 0x78]
mov rax, rdi
mov rdi, rsi
call fcn.00465b60
mov rsi, qword [rsp + 0xf8]
cmp rsi, 0x15
mov rdi, rax
mov rdx, rdi
nop dword [rax]
jmp 0x642b82
mov rbx, qword [0x009a3f50]
mov rcx, qword [0x009a3f58]
mov rdi, qword [0x009a3f60]
mov rax, qword [rsp + 0x2a0]
mov rsi, qword [rsp + 0x160]
mov r8, qword [rsp + 0x168]
mov r9, qword [rsp + 0x68]
xor r10d, r10d
call fcn.00643c40
nop
test rax, rax
jne 0x64342e
mov rsi, qword [rsp + 0xf8]
cmp rsi, 0x15
mov rdx, qword [rsp + 0x2a0]
jmp 0x642b82
mov rax, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x160]
mov rcx, qword [rsp + 0x168]
mov rdi, qword [rsp + 0x68]
nop dword [rax]
call fcn.00640da0
test rax, rax
jne 0x64344e
mov rsi, qword [rsp + 0xf8]
cmp rsi, 0x15
mov rdx, qword [rsp + 0x2a0]
jne 0x6432ea
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rcx + 0x90]
mov rax, qword [rsp + 0x148]
call rdx
mov rcx, qword [0x007f7250]
lea rdx, [0x007f7248]
cmp rax, rdx
jne 0x64350e
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x1e8], rbx
mov rax, rbx
call fcn.00488b20
mov rbx, qword [0x009af2b0]
mov rcx, qword [0x009af2b8]
nop dword [rax + rax]
call fcn.00488d80
test al, al
jne 0x643205
mov rcx, qword [rsp + 0x1f0]
mov rdx, qword [rcx + 0x98]
mov rax, qword [rsp + 0x1e8]
call rdx
cmp rax, 0x18
jne 0x642ce5
mov rax, qword [rsp + 0x190]
mov rbx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
call fcn.0040b1a0
nop
cmp byte [0x009b00e0], 0
je 0x642c67
lea rdx, [0x006b86a0]
mov qword [0x009b00e8], rdx
cmp dword [0x00a04ed0], 0
jne 0x642c57
mov qword [0x009b00f0], rax
jmp 0x642c6e
lea rdi, [0x009b00f0]
nop
call fcn.00465a20
jmp 0x642c6e
lea rdx, [0x006b86a0]
mov qword [rsp + 0x238], rdx
mov qword [rsp + 0x240], rax
mov r8, qword [rsp + 0x238]
test r8, r8
je 0x642caa
movzx r9d, byte [r8 + 0x17]
mov r10d, r9d
and r9d, 0x1f
mov r11, r9
bts r9, 7
test r10b, 0x20
cmove r11, r9
nop
jmp 0x642cb2
xor r11d, r11d
xor r8d, r8d
xor eax, eax
mov rbx, rax
mov rcx, r11
mov rdi, qword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x1e8]
mov rax, r8
call fcn.00492640
mov rdx, rax
mov rax, qword [rsp + 0x2a0]
nop dword [rax + rax]
jmp 0x643297
mov rcx, qword [rsp + 0x1f0]
mov rdx, qword [rcx + 0x98]
mov rax, qword [rsp + 0x1e8]
call rdx
lea rcx, [rax - 2]
cmp rcx, 4
jbe 0x642f85
lea rdx, [rax - 7]
cmp rdx, 5
ja 0x6434fb
lea rax, [rsp + 0x108]
mov rbx, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x98]
call fcn.0044ec00
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x70], rbx
mov ecx, 0xa
mov edi, 0x40
call fcn.00473fc0
test rbx, rbx
je 0x642d5f
mov edx, 1
jmp 0x642dc6
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x1f0]
mov rbx, qword [rsp + 0x1e8]
call fcn.00492160
nop
and ecx, 0x1f
lea rdx, [rcx - 7]
cmp rdx, 5
ja 0x6434ba
mov rcx, qword [rax]
shl rcx, 3
lea rdx, [rcx - 0x40]
neg rdx
cmp rdx, 0x40
sbb rdx, rdx
neg rcx
mov rax, qword [rsp + 0x80]
mov rbx, rax
shl rax, cl
and rax, rdx
shr rax, cl
and rax, rdx
cmp rbx, rax
setne dl
mov rax, rbx
test dl, dl
je 0x642ec5
lea rax, [0x006fc500]
call fcn.0040daa0
mov qword [rsp + 0x1e0], rax
lea rbx, [0x0071a5e2]
mov ecx, 7
mov rdi, qword [rsp + 0x170]
mov rsi, qword [rsp + 0x70]
xor eax, eax
nop dword [rax]
call fcn.0044e860
mov rcx, qword [rsp + 0x1e0]
mov qword [rcx + 8], rbx
cmp dword [0x00a04ed0], 0
jne 0x642e1f
mov qword [rcx], rax
jmp 0x642e27
mov rdi, rcx
call fcn.00465a20
mov r12, qword [rsp + 0x1f0]
mov qword [rcx + 0x10], r12
cmp dword [0x00a04ed0], 0
jne 0x642e4a
mov r12, qword [rsp + 0x1e8]
mov qword [rcx + 0x18], r12
jmp 0x642e5b
lea rdi, [rcx + 0x18]
mov rax, qword [rsp + 0x1e8]
call fcn.00465a20
mov r12, qword [rsp + 0xf0]
mov qword [rcx + 0x20], r12
mov rax, qword [rsp + 0x2a0]
cmp qword [rax + 0x70], 0
jne 0x642eb7
lea rbx, [0x007f1b80]
nop dword [rax]
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
jne 0x642ea2
mov qword [rdi + 0x78], rbx
nop
jmp 0x642eb4
lea r12, [rdi + 0x78]
mov rax, rdi
mov rdi, r12
call fcn.00465b60
mov rdi, rax
mov rax, rdi
xor ecx, ecx
xor edx, edx
xor ebx, ebx
nop dword [rax]
jmp 0x643297
call fcn.0040b080
nop
cmp byte [0x009b00e0], 0
je 0x642f07
lea rdx, [0x006bb640]
mov qword [0x009b00e8], rdx
cmp dword [0x00a04ed0], 0
jne 0x642ef4
mov qword [0x009b00f0], rax
jmp 0x642f0e
lea rdi, [0x009b00f0]
nop dword [rax + rax]
call fcn.00465a20
jmp 0x642f0e
lea rdx, [0x006bb640]
mov qword [rsp + 0x218], rdx
mov qword [rsp + 0x220], rax
mov r8, qword [rsp + 0x218]
test r8, r8
je 0x642f4a
movzx r9d, byte [r8 + 0x17]
mov r10d, r9d
and r9d, 0x1f
mov r11, r9
bts r9, 7
test r10b, 0x20
cmove r11, r9
nop
jmp 0x642f52
xor r11d, r11d
xor r8d, r8d
xor eax, eax
mov rbx, rax
mov rcx, r11
mov rdi, qword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x1e8]
mov rax, r8
call fcn.00492640
mov rdx, rax
mov rax, qword [rsp + 0x2a0]
nop dword [rax + rax]
jmp 0x643297
lea rax, [rsp + 0x128]
mov rbx, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x98]
nop dword [rax]
call fcn.0044ec00
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x78], rbx
mov ecx, 0xa
mov edi, 0x40
nop dword [rax]
call fcn.00474780
test rbx, rbx
je 0x642fd1
mov edx, 1
jmp 0x64304b
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x1f0]
mov rbx, qword [rsp + 0x1e8]
call fcn.00492160
nop
and ecx, 0x1f
lea rdx, [rcx - 2]
nop word [rax + rax]
nop
cmp rdx, 4
ja 0x643479
mov rcx, qword [rax]
shl rcx, 3
lea rdx, [rcx - 0x40]
neg rdx
cmp rdx, 0x40
sbb rbx, rbx
sbb rsi, rsi
neg rcx
mov rax, qword [rsp + 0x88]
mov rdi, rax
shl rax, cl
and rax, rbx
not rsi
or rdx, rsi
mov rcx, rdx
sar rax, cl
cmp rdi, rax
setne dl
mov rax, rdi
test dl, dl
je 0x643145
lea rax, [0x006fc500]
call fcn.0040daa0
mov qword [rsp + 0x1e0], rax
lea rbx, [0x0071a5e2]
mov ecx, 7
mov rdi, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x78]
xor eax, eax
call fcn.0044e860
mov rcx, qword [rsp + 0x1e0]
mov qword [rcx + 8], rbx
cmp dword [0x00a04ed0], 0
jne 0x6430a2
mov qword [rcx], rax
nop
jmp 0x6430aa
mov rdi, rcx
call fcn.00465a20
mov r12, qword [rsp + 0x1f0]
mov qword [rcx + 0x10], r12
cmp dword [0x00a04ed0], 0
jne 0x6430cd
mov r12, qword [rsp + 0x1e8]
mov qword [rcx + 0x18], r12
jmp 0x6430de
lea rdi, [rcx + 0x18]
mov rax, qword [rsp + 0x1e8]
call fcn.00465a20
mov r12, qword [rsp + 0xf0]
mov qword [rcx + 0x20], r12
mov rax, qword [rsp + 0x2a0]
cmp qword [rax + 0x70], 0
jne 0x643137
lea rbx, [0x007f1b80]
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
jne 0x643122
mov qword [rdi + 0x78], rbx
nop
jmp 0x643134
lea r12, [rdi + 0x78]
mov rax, rdi
mov rdi, r12
call fcn.00465b60
mov rdi, rax
mov rax, rdi
xor ecx, ecx
xor edx, edx
xor ebx, ebx
nop dword [rax]
jmp 0x643297
call fcn.0040b080
nop
cmp byte [0x009b00e0], 0
je 0x643187
lea rdx, [0x006bad40]
mov qword [0x009b00e8], rdx
cmp dword [0x00a04ed0], 0
jne 0x643174
mov qword [0x009b00f0], rax
jmp 0x64318e
lea rdi, [0x009b00f0]
nop dword [rax + rax]
call fcn.00465a20
jmp 0x64318e
lea rdx, [0x006bad40]
mov qword [rsp + 0x228], rdx
mov qword [rsp + 0x230], rax
mov r8, qword [rsp + 0x228]
test r8, r8
je 0x6431ca
movzx r9d, byte [r8 + 0x17]
mov r10d, r9d
and r9d, 0x1f
mov r11, r9
bts r9, 7
test r10b, 0x20
cmove r11, r9
nop
jmp 0x6431d2
xor r11d, r11d
xor r8d, r8d
xor eax, eax
mov rbx, rax
mov rcx, r11
mov rdi, qword [rsp + 0x1f0]
mov rsi, qword [rsp + 0x1e8]
mov rax, r8
call fcn.00492640
mov rdx, rax
mov rax, qword [rsp + 0x2a0]
nop dword [rax + rax]
jmp 0x643297
mov rax, qword [rsp + 0x1f0]
mov rbx, qword [rsp + 0x1e8]
call fcn.00492260
mov qword [rsp + 0x1d8], rax
mov qword [rsp + 0x1d0], rbx
mov qword [rsp + 0xe0], rcx
mov rdi, qword [rsp + 0xb0]
mov rsi, rax
mov r8, rbx
mov r9, rcx
mov r10d, 1
mov rax, qword [rsp + 0x2a0]
mov rbx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0xa8]
call fcn.00643c40
test rax, rax
jne 0x64343e
mov rax, qword [rsp + 0x1d8]
mov rbx, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0xe0]
call fcn.0048ec40
mov rdx, rax
mov rax, qword [rsp + 0x2a0]
test rcx, rcx
je 0x6432df
mov rax, qword [rsp + 0x208]
mov rdi, rdx
mov rsi, rbx
mov r8, rcx
mov r9, qword [rsp + 0x160]
mov r10, qword [rsp + 0x168]
mov r11, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x210]
mov rcx, qword [rsp + 0x100]
call fcn.00490ac0
mov rax, qword [rsp + 0x2a0]
mov rdx, rax
mov rsi, qword [rsp + 0xf8]
cmp qword [rdx + 0x20], 9
jne 0x64330e
mov rax, rdx
mov ebx, 9
call fcn.00640b00
mov rdx, qword [rsp + 0x2a0]
mov rsi, qword [rsp + 0xf8]
mov r8, qword [rdx + 0x68]
test r8, r8
je 0x64335f
mov r9, qword [r8 + 0x20]
mov rcx, qword [rsp + 0x280]
cmp rcx, r9
ja 0x643471
mov qword [r8 + 0x18], rcx
mov rdi, qword [rdx + 0x68]
mov rcx, qword [rsp + 0x270]
mov r8, qword [rsp + 0x268]
mov qword [rdi], r8
cmp dword [0x00a04ed0], 0
jne 0x643356
mov qword [rdi + 8], rcx
jmp 0x64335f
add rdi, 8
call fcn.00465b20
mov rcx, qword [rdx + 0x20]
cmp rcx, 5
je 0x643378
cmp rcx, 4
je 0x64252c
jmp 0x64345e
xor eax, eax
xor ebx, ebx
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov rax, qword [rsp + 0xc0]
inc rax
mov r9, qword [rsp + 0xc8]
nop
cmp rax, r9
jge 0x642725
mov qword [rsp + 0xc0], rax
lea r9, [rax + rax*8]
shl r9, 4
mov qword [rsp + 0xe8], r9
mov r10, qword [rsp + 0x1a8]
mov rdx, qword [r10 + r9 + 0x28]
mov r11, qword [rdx]
mov r12, qword [r10 + r9 + 0x10]
mov rbx, qword [r10 + r9 + 0x18]
mov rcx, qword [r10 + r9 + 0x20]
mov rdi, qword [rsp + 0x190]
mov rsi, qword [rsp + 0x98]
mov r8, qword [rsp + 0xa0]
mov rax, r12
call r11
mov r9, qword [rsp + 0x1a8]
mov r10, qword [rsp + 0xe8]
add r10, r9
test al, al
je 0x64338c
jmp 0x642730
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
mov rbp, qword [rsp + 0x290]
add rsp, 0x298
ret
lea rax, [0x006bb4c0]
lea rbx, [0x007f0980]
call fcn.00436580
mov rdx, r9
call fcn.00465f40
mov qword [rsp + 0x100], rcx
lea rax, [0x006e4520]
call fcn.0040daa0
mov qword [rax + 8], 0x19
lea rcx, [0x007233c4]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x006c9120]
call fcn.00436580
mov qword [rsp + 0x100], rcx
lea rax, [0x006e4520]
call fcn.0040daa0
mov qword [rax + 8], 0x1a
lea rcx, [0x00723e07]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rax + 0x10], rcx
mov rbx, rax
lea rax, [0x006c9120]
call fcn.00436580
lea rax, [0x006bb4c0]
lea rbx, [0x007f09b0]
call fcn.00436580
mov rbx, rcx
lea rcx, [0x00708720]
call fcn.0040ada0
lea rax, [0x006bb4c0]
lea rbx, [0x007f0980]
call fcn.00436580
mov rax, rsi
mov rbx, r13
mov rcx, r9
mov rdi, r8
nop dword [rax]
call fcn.0048ee20
mov r15, qword [rsp + 0xd8]
inc r15
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x1f8]
mov rdx, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x208]
mov r8, qword [rsp + 0x1a8]
movzx r10d, byte [rsp + 0x4f]
mov r11, rsi
mov r12, qword [rsp + 0xe8]
mov r9, rcx
mov r13, rbx
mov rsi, rax
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x210]
cmp r15, r12
jge 0x6437f2
mov qword [rsp + 0xd8], r15
mov qword [rsp + 0xd0], r9
mov r8, qword [r11 + r15*8]
nop
and r9d, 0x1f
cmp r9, 0x16
jne 0x6436e5
mov qword [rsp + 0xb8], r8
mov r9, qword [rsp + 0xd0]
bt r9d, 9
jb 0x6436bd
mov qword [rsp + 0x1c8], r13
bt r9d, 7
nop
jae 0x643611
mov rdi, qword [r13]
mov r13, rdi
mov rdi, qword [rsp + 0x208]
test r13, r13
je 0x643625
mov r13, qword [rsp + 0x1c8]
nop
jmp 0x6436bd
mov r13, r9
and r9d, 0x160
cmp r9, 0x100
jne 0x6436f2
mov qword [rsp + 0x1c0], rsi
bt r13d, 9
jb 0x643654
lea r9, [0x007f7248]
jmp 0x64366d
mov rax, rsi
mov rbx, qword [rsp + 0x1c8]
mov rcx, r13
call fcn.00491600
mov r9, rax
mov rsi, rbx
mov rcx, qword [r9 + 0x48]
mov rax, rsi
call rcx
call fcn.00492260
mov rdi, rax
mov rsi, rbx
mov r8, rcx
mov rax, qword [rsp + 0x1c0]
mov rbx, qword [rsp + 0x1c8]
mov rcx, qword [rsp + 0xd0]
nop dword [rax]
call fcn.00490160
mov rsi, qword [rsp + 0x1c0]
mov r9, qword [rsp + 0xd0]
mov r13, qword [rsp + 0x1c8]
mov rax, rsi
mov rbx, r13
mov rcx, r9
call fcn.0048ec40
mov r8, qword [rsp + 0xb8]
mov r9, rcx
mov rsi, rax
mov r13, rbx
nop dword [rax]
jmp 0x643530
mov r9, qword [rsp + 0xd0]
jmp 0x643530
bt r13d, 9
jb 0x643702
lea r8, [0x007f7248]
jmp 0x64371b
mov rax, rsi
mov rbx, qword [rsp + 0x1c8]
mov rcx, r13
call fcn.00491600
mov r8, rax
mov rsi, rbx
mov rcx, qword [r8 + 0x48]
mov rax, rsi
call rcx
movups xmmword [rsp + 0x258], xmm15
test rax, rax
je 0x643736
mov rax, qword [rax + 8]
mov qword [rsp + 0x258], rax
mov qword [rsp + 0x260], rbx
lea rax, [0x0072fbc8]
mov ebx, 0x3a
lea rcx, [rsp + 0x258]
mov edi, 1
mov rsi, rdi
call fcn.004c2160
mov rdx, qword [rsp + 0x2a0]
cmp qword [rdx + 0x70], 0
jne 0x6437b7
mov rcx, rbx
mov rbx, rax
mov rax, rdx
nop
call fcn.00640840
mov rdi, qword [rsp + 0x2a0]
mov qword [rdi + 0x70], rax
cmp dword [0x00a04ed0], 0
jne 0x6437a2
mov qword [rdi + 0x78], rbx
nop
jmp 0x6437b4
lea rdx, [rdi + 0x78]
mov rax, rdi
mov rdi, rdx
call fcn.00465b60
mov rdi, rax
mov rdx, rdi
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x208]
mov r8, qword [rsp + 0x1a8]
xor r10d, r10d
xor r9d, r9d
xor esi, esi
xor r13d, r13d
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x168], r13
mov qword [rsp + 0x160], rsi
mov byte [rsp + 0x4f], r10b
mov r11, qword [rsp + 0x2a0]
cmp qword [r11 + 0x68], 0
jne 0x6438aa
lea rax, [0x006e1d20]
call fcn.0040daa0
cmp dword [0x00a04ed0], 0
jne 0x643842
mov rdx, qword [rsp + 0x2a0]
mov qword [rdx + 0x68], rax
jmp 0x643857
mov rdi, qword [rsp + 0x200]
call fcn.00465a20
mov rdx, qword [rsp + 0x2a0]
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x210]
mov rsi, qword [rsp + 0x160]
mov rdi, qword [rsp + 0x208]
mov r8, qword [rsp + 0x1a8]
mov r9, qword [rsp + 0x68]
movzx r10d, byte [rsp + 0x4f]
mov r11, qword [rsp + 0x2a0]
mov r13, qword [rsp + 0x168]
mov r12, qword [r11 + 0x68]
mov r15, qword [r12 + 0x20]
mov r8, qword [r12 + 0x18]
inc r8
mov r9, qword [r12 + 0x10]
mov r10, qword [rdx]
mov rdx, qword [rdx + 8]
cmp r15, r8
jae 0x643985
mov qword [rsp + 0x1b8], r12
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0x1f0], r10
mov rax, r9
mov rbx, r8
mov rcx, r15
mov edi, 1
lea rsi, [0x006bb4c0]
nop dword [rax]
call fcn.0044aa20
mov rdi, qword [rsp + 0x1b8]
mov qword [rdi + 0x20], rcx
cmp dword [0x00a04ed0], 0
jne 0x643922
mov qword [rdi + 0x10], rax
nop
jmp 0x643934
lea rcx, [rdi + 0x10]
mov rdx, rdi
mov rdi, rcx
call fcn.00465a20
mov rdi, rdx
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x160]
mov r10, qword [rsp + 0x1f0]
mov r11, qword [rsp + 0x2a0]
mov r12, rdi
mov r13, qword [rsp + 0x168]
mov r9, rax
mov r8, rbx
mov rax, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x210]
mov rdi, qword [rsp + 0x208]
mov qword [r12 + 0x18], r8
dec r8
shl r8, 4
mov qword [r9 + r8 + 8], rdx
lea rdx, [r9 + r8]
cmp dword [0x00a04ed0], 0
jne 0x6439a9
mov qword [r9 + r8], r10
jmp 0x6439ba
mov r8, rdi
mov rdi, rdx
mov r9, r10
call fcn.00465bc0
mov rdi, r8
mov rdx, qword [r11 + 0x68]
mov r8, qword [rsp + 0x50]
mov qword [rdx], r8
cmp dword [0x00a04ed0], 0
jne 0x6439dd
mov r9, qword [rsp + 0x148]
mov qword [rdx + 8], r9
jmp 0x6439fa
add rdx, 8
mov r9, rdi
mov rdi, rdx
mov r10, r9
mov r9, qword [rsp + 0x148]
call fcn.00465bc0
mov rdi, r10
mov rax, r11
mov r8, qword [rsp + 0x1a8]
movzx edx, byte [rsp + 0x4f]
mov rbx, qword [rsp + 0x68]
mov rdi, r13
jmp 0x642878
call fcn.00465ec0
lea rax, [0x006bb4c0]
lea rbx, [0x007f0980]
call fcn.00436580
mov rax, r8
mov rcx, rdi
call fcn.00465f80
mov rcx, rdi
nop dword [rax]
call fcn.00465f40
lea rax, [0x006bb4c0]
lea rbx, [0x007f0980]
call fcn.00436580
mov rbx, rcx
lea rcx, [0x00708720]
call fcn.0040ada0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
nop dword [rax]
call fcn.00463860
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.00641e20