Function at 0x10039948c
Capabilities:
Encode data using xor
Encrypt data using chaskey
Hash data using murmur3

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1e8
mov rax, qword [0x100404bb0]
xor rax, rsp
mov qword [rsp + 0x1d8], rax
mov rdi, r9
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0xd8], rcx
lea r13, [0x100000000]
xor ebp, ebp
mov rsi, r8
lea r12d, [rbp + 0x3f]
lea rbx, [0x100000000]
lea r11d, [rbp + 1]
cmp r9, r13
mov r15d, 0xfffffff
jb 0x10039a133
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp r9, rcx
jae 0x10039a133
mov r8d, r9d
mov ecx, dword [0x10038b990]
mov r9d, ebp
sub r8d, r13d
sub ecx, r11d
js 0x100399551
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x47dd8]
mov r10, rdx
shr eax, 1
and eax, r15d
cmp r8d, eax
jae 0x100399542
lea ecx, [rdx - 1]
jmp 0x10039954c
jbe 0x1003996dc
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039951d
mov rdx, rbp
cmp rdx, rbp
je 0x10039a133
mov r8, rbp
mov r11d, dword [0x100015964]
mov r14d, dword [rdx + 4]
mov eax, dword [rdx]
shr rax, 2
and r14, r15
and eax, 7
lea rbx, [rax + rdx + 8]
mov r9d, ebx
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x30], rbx
sub r11, r14
inc r11
sub r9d, r13d
mov dword [rsp + 0x48], r9d
mov r10, r11
cmp r11, rbp
je 0x1003995d4
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x1003995a6
mov qword [0x1003fe198], rax
mov ecx, r9d
xor edx, edx
mov rax, r8
div r11
lea r12, [rsi + rdx]
mov rdx, r14
mov qword [rsp + 0x80], r12
mov r8, r12
mov eax, 0xe7f277ba
lea rcx, [rsp + 0x168]
mov r11, qword [rbx + r14]
mov qword [rsp + 0x168], r11
mov bl, bpl
mov eax, 0xf9da68f8
mov rax, qword [0x10014dad0]
mov rcx, r13
mov rdi, qword [rsp + 0x168]
and rdi, r15
mov r9d, dword [rsp + 0x16c]
mov qword [rsp + 0xc0], rbp
and r9, r15
mov ebp, 4
add rdi, r13
sub rcx, rax
lea r13d, [rbp + 4]
mov qword [rsp + 0x60], rcx
mov r15, 0xfffffffffffff000
jne 0x1003996fd
xor r10d, r10d
test r9, r9
je 0x100399a44
mov ecx, dword [rsp + 0xc4]
mov r8d, dword [rsp + 0xc0]
movzx eax, byte [rdi + r10]
inc r10
add eax, 0x72d985af
add r8d, eax
add eax, ecx
imul eax, eax, 0x72d985af
ror eax, 9
imul rax, rax, 0x72d985af
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov dword [rsp + 0xc4], ecx
add r8d, ecx
mov dword [rsp + 0xc0], r8d
cmp r10, r9
jb 0x100399676
jmp 0x100399a44
mov eax, dword [rbx + r10*8 + 0x47ddc]
mov edx, dword [rbx + rdx*8 + 0x47dd8]
shr edx, 1
and eax, r12d
and edx, r15d
add edx, eax
add rdx, r13
jmp 0x100399554
lea rdx, [0x100000000]
lea rax, [rdi + r9]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x68], rax
mov eax, edi
sub eax, edx
mov r11d, eax
add r8, rdx
mov edx, dword [rcx + rdx + 0xb4]
mov ecx, eax
add rcx, r9
and r11, r15
sub rax, r11
mov qword [rsp + 0x28], rax
mov rax, rcx
and rax, r15
mov qword [rsp + 0x40], rax
sub rcx, rax
mov qword [rsp + 0x78], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x50], rcx
jmp 0x10039976a
mov eax, dword [r8]
cmp rax, r11
jae 0x10039976f
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039975b
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x1003997b0
mov eax, dword [r8]
cmp rax, r11
jne 0x1003997b0
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x1003997b0
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x1003997b0
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x100399799
mov r9d, dword [rsp + 0xc4]
lea r15, [0x100000000]
mov r11d, dword [rsp + 0xc0]
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x50]
mov ecx, 0xf000
cmp r8, r14
je 0x1003999b9
mov eax, dword [r8]
cmp rax, rdx
ja 0x1003999b9
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039981d
add r8, r12
cmp r8, r14
je 0x1003999b9
mov eax, dword [r8]
cmp rax, rdx
ja 0x1003999b9
xor esi, esi
jmp 0x1003997f0
mov eax, dword [r8]
cmp rax, rdx
jne 0x100399839
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x1003999b9
mov rax, rsi
mov qword [rsp + 0x60], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x1003997db
xor r14d, r14d
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, r15
mov rcx, rax
sub rcx, rdi
mov qword [rsp + 0x58], rax
je 0x1003998da
mov r12, rcx
movzx eax, byte [r14 + rdi]
inc r14
add eax, 0x72d985af
add r11d, eax
add eax, r9d
imul eax, eax, 0x72d985af
ror eax, 9
imul rax, rax, 0x72d985af
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
mov dword [rsp + 0xc4], r9d
cmp r14, r12
mov dword [rsp + 0xc0], r11d
jb 0x10039986e
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0x128], rax
shr ecx, 0xc
cmp ecx, 3
je 0x100399904
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x100399909
mov edx, 2
mov rdi, rbx
neg rdi
sub edx, 2
je 0x10039992f
cmp edx, 1
je 0x10039991f
or rdi, 0xffffffffffffffff
jmp 0x100399939
add rax, rdi
mov rdi, r13
mov qword [rsp + 0x128], rax
jmp 0x100399939
add dword [rsp + 0x128], edi
mov rdi, rbp
xor r14d, r14d
test rdi, rdi
je 0x1003999ac
movzx eax, byte [rsp + r14 + 0x128]
inc r14
add eax, 0x72d985af
add r11d, eax
add eax, r9d
imul eax, eax, 0x72d985af
ror eax, 9
imul rax, rax, 0x72d985af
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
cmp r14, rdi
jb 0x100399941
mov dword [rsp + 0xc4], r9d
mov dword [rsp + 0xc0], r11d
mov rax, qword [rsp + 0x58]
add rdi, rax
jmp 0x1003997cc
mov r10, qword [rsp + 0x68]
xor r8d, r8d
mov bl, r8b
sub r10, rdi
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
je 0x100399a44
movzx eax, byte [rdi + r8]
inc r8
add eax, 0x72d985af
add r11d, eax
add eax, r9d
imul eax, eax, 0x72d985af
ror eax, 9
imul rax, rax, 0x72d985af
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
mov dword [rsp + 0xc4], r9d
add r11d, r9d
mov dword [rsp + 0xc0], r11d
cmp r8, r10
jb 0x1003999dd
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xc0]
mov byte [rsp + rcx + 0x187], al
cmp rcx, r13
jb 0x100399a46
mov eax, 0x936b93ef
mov r9, r14
mov r11, qword [rsp + 0x30]
and r9d, 7
mov rax, qword [rsp + 0x188]
mov ecx, dword [rsp + 0x48]
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x28], r9
je 0x100399ff4
xor r10d, r10d
mov dword [rsp + 0x24], r10d
mov esi, ecx
not esi
xor edi, edi
mov dword [rsp + 0x38], edi
xor r11d, r11d
test r9d, r9d
jle 0x100399af9
lea r8d, [r10 + 0x38]
mov rax, qword [rsp + 0x40]
cmp r11d, ebp
movzx edx, byte [rax]
jge 0x100399ac9
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x100399ad1
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x100399ab7
mov ecx, dword [rsp + 0x48]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x188]
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x24], r10d
movzx r9d, word [rsp + 0x18e]
movzx r10d, word [rsp + 0x18a]
mov r8d, r9d
mov edx, dword [rsp + 0x18c]
movzx edi, ax
movzx r11d, word [rsp + 0x18c]
mov r14d, esi
sub r14d, dword [rsp + 0x18c]
sub r14d, edi
xor r14d, ecx
mov ecx, eax
xor edx, r14d
sub ecx, edx
xor esi, ecx
mov ecx, esi
sub ecx, r11d
xor ecx, eax
xor r14d, ecx
mov ecx, r10d
xor r8d, r14d
mov edx, r14d
rol r8d, 7
rol edx, 0xf
imul ecx, r8d
add edx, ecx
xor esi, edx
mov r8d, dword [rsp + 0x18c]
sub r8d, esi
mov ecx, edi
mov edx, esi
rol r8d, 6
ror edx, 9
imul ecx, r8d
mov r8d, edi
sub ecx, edx
xor r14d, ecx
mov edx, r14d
xor r8d, r14d
mov ecx, r9d
rol r8d, 5
ror edx, 1
imul ecx, r8d
sub ecx, edx
mov r8d, dword [rsp + 0x18c]
xor esi, ecx
mov edx, r11d
mov ecx, esi
ror ecx, 2
sub ecx, r11d
imul ecx, r9d
xor r14d, ecx
xor edx, r14d
mov ecx, r14d
shr ecx, 0xc
imul edx, r10d
xor edx, ecx
xor esi, edx
mov edx, esi
mov ecx, edi
xor r8d, esi
ror r8d, 6
rol edx, 4
imul ecx, r8d
add edx, ecx
mov ecx, edi
xor r14d, edx
mov edx, r14d
xor ecx, r14d
ror edx, 3
imul ecx, r9d
add edx, ecx
mov ecx, r11d
xor esi, edx
mov edx, esi
mov r8d, esi
sub r8d, eax
rol r8d, 4
ror edx, 0xc
imul ecx, r8d
mov r8d, dword [rsp + 0x38]
add edx, ecx
xor r14d, edx
mov edx, r14d
sub edx, r11d
mov ecx, r14d
shr ecx, 0xe
xor r9d, r9d
imul edx, r10d
sub edx, ecx
mov ecx, dword [rsp + 0x18c]
xor esi, edx
sub ecx, esi
mov edx, esi
xor esi, dword [rsp + 0x24]
ror ecx, 0xc
rol edx, 7
imul edi, ecx
add edx, edi
mov rcx, qword [rsp + 0x28]
xor edx, r8d
mov r8d, esi
xor r14d, edx
test ecx, ecx
mov edx, r14d
jle 0x100399c87
mov rax, r12
cmp r9d, ebp
jge 0x100399c65
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x100399c72
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x100399c54
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x188]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x100399fda
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov ebp, dword [rsp + 0x24]
mov r11, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x70]
mov rcx, rdi
shr rcx, 3
test rcx, rcx
je 0x100399f26
movzx r8d, word [rsp + 0x18c]
movzx edx, ax
mov rdi, qword [rsp + 0x50]
mov r12d, dword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
mov r15, rcx
mov dword [rsp + 0x24], edx
movzx r10d, byte [r11]
movzx r9d, byte [r11 + 4]
shl r10d, 8
movzx ecx, byte [r11 + 1]
shl r9d, 8
or r10d, ecx
movzx ecx, byte [r11 + 2]
shl r10d, 8
or r10d, ecx
shl r10d, 8
movzx ecx, byte [r11 + 3]
or r10d, ecx
movzx ecx, byte [r11 + 5]
or r9d, ecx
movzx ecx, byte [r11 + 6]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r11 + 7]
add r11, r13
shl r9d, 8
or r9d, ecx
xor esi, r9d
mov ecx, esi
sub ecx, dword [rsp + 0x18c]
sub ecx, edx
mov edx, dword [rsp + 0x18c]
xor ecx, r10d
xor r14d, ecx
xor edx, r14d
mov ecx, eax
sub ecx, edx
xor esi, ecx
mov ecx, esi
sub ecx, r8d
movzx r8d, word [rsp + 0x18e]
xor ecx, eax
xor r14d, ecx
mov edx, r14d
movzx ecx, word [rsp + 0x18a]
xor r8d, r14d
rol r8d, 7
rol edx, 0xf
imul ecx, r8d
add edx, ecx
mov r8d, dword [rsp + 0x18c]
xor esi, edx
mov edx, esi
sub r8d, esi
mov ecx, dword [rsp + 0x24]
rol r8d, 6
ror edx, 9
imul ecx, r8d
mov r8d, dword [rsp + 0x24]
sub ecx, edx
xor r14d, ecx
xor r8d, r14d
mov edx, r14d
rol r8d, 5
movzx ecx, word [rsp + 0x18e]
ror edx, 1
imul ecx, r8d
sub ecx, edx
movzx edx, word [rsp + 0x18c]
xor esi, ecx
mov ecx, esi
ror ecx, 2
sub ecx, edx
movzx r8d, word [rsp + 0x18e]
imul ecx, r8d
xor r14d, ecx
mov r8d, dword [rsp + 0x18c]
xor edx, r14d
movzx ecx, word [rsp + 0x18a]
imul edx, ecx
mov ecx, r14d
shr ecx, 0xc
xor edx, ecx
mov ecx, dword [rsp + 0x24]
xor esi, edx
xor r8d, esi
mov edx, esi
ror r8d, 6
rol edx, 4
imul ecx, r8d
add edx, ecx
mov ecx, dword [rsp + 0x24]
xor r14d, edx
xor ecx, r14d
movzx r8d, word [rsp + 0x18e]
mov edx, r14d
ror edx, 3
imul ecx, r8d
add edx, ecx
xor esi, edx
mov r8d, esi
sub r8d, eax
movzx ecx, word [rsp + 0x18c]
mov edx, esi
rol r8d, 4
ror edx, 0xc
imul ecx, r8d
movzx r8d, word [rsp + 0x18c]
add edx, ecx
movzx ecx, word [rsp + 0x18a]
xor r14d, edx
mov edx, r14d
sub edx, r8d
imul edx, ecx
mov ecx, r14d
shr ecx, 0xe
sub edx, ecx
xor esi, edx
mov edx, dword [rsp + 0x18c]
sub edx, esi
mov ecx, esi
xor esi, ebp
ror edx, 0xc
mov ebp, r9d
rol ecx, 7
imul edx, dword [rsp + 0x24]
add ecx, edx
xor ecx, r12d
mov edx, dword [rsp + 0x24]
xor r14d, ecx
xor bl, r14b
mov byte [rdi + 3], r14b
mov byte [rdi + 7], sil
mov r12d, r10d
xor bl, sil
ror r14d, 8
ror esi, 8
xor bl, r14b
mov byte [rdi + 2], r14b
ror r14d, 8
xor bl, sil
mov byte [rdi + 6], sil
mov byte [rdi + 1], r14b
ror esi, 8
mov byte [rdi + 5], sil
xor bl, r14b
ror r14d, 8
mov byte [rdi], r14b
xor bl, sil
ror esi, 8
mov byte [rdi + 4], sil
mov cl, sil
xor cl, r14b
add rdi, r13
xor bl, cl
ror r14d, 8
ror esi, 8
sub r15, 1
jne 0x100399cdd
mov r15, 0xfffffffffffff000
mov r11, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
xor bl, byte [r11 + rdi + 8]
je 0x10039a01b
call fcn.10000228c
lea r12, [0x10006d7ac]
mov rbx, rax
and rbx, r15
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
mov r8d, 0xffff
and r11, r15
xor r9d, r9d
mov qword [rax + 0x10], r12
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x100399f71
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
mov rax, qword [rsp + 0xe0]
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039a011
xor esi, esi
test ecx, ecx
jns 0x100399c9d
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x100399c9d
mov dword [rsp + 0x38], ecx
mov ebp, ecx
xor esi, esi
xor r14d, r14d
not ebp
jmp 0x100399ca6
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039a006
jmp 0x10039a12b
mov rax, qword [0x10014dad0]
lea r13, [0x100000000]
mov rbp, r13
mov rsi, r11
sub rsi, r12
sub rbp, rax
jne 0x10039a040
test rsi, rsi
je 0x10039a120
mov rcx, qword [0x100019a28]
lea r15, [0x100000000]
lea r9d, [rcx - 1]
mov rbx, r12
xor r8d, r8d
sub rbx, r11
sub r11d, r13d
add edi, r11d
test r9d, r9d
js 0x10039a097
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp r11d, r10d
jae 0x10039a08c
lea r9d, [rdx - 1]
jmp 0x10039a092
jbe 0x10039a09c
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039a066
movsxd r11, r8d
jmp 0x10039a119
mov r11, rdx
jmp 0x10039a119
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, edi
jae 0x10039a120
mov r9, rdx
mov r8d, edx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r13
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039a0f5
sub r8d, 1
je 0x10039a0f0
cmp r8d, 1
jne 0x10039a0fb
mov r10, rbp
jmp 0x10039a0fb
mov r10, rsi
jmp 0x10039a0fb
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x10039a10b
cmp edx, 1
jne 0x10039a116
add qword [r9 + rbx], r10
jmp 0x10039a10f
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039a0a1
mov eax, dword [0x100015964]
mov eax, 0xdb89016c
mov rax, r12
jmp 0x1003a0d6c
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039acd0
mov r9d, ebp
mov ecx, dword [0x10003d7cc]
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039a19d
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0x32c5ac]
and eax, r15d
cmp r8d, eax
jae 0x10039a18e
lea ecx, [rdx - 1]
jmp 0x10039a198
jbe 0x10039a325
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039a16b
mov rdx, rbp
cmp rdx, rbp
je 0x10039acd0
mov r11d, dword [0x100015964]
mov r8, rbp
mov r14d, dword [rdx]
mov rax, r14
shr r14, 1
and r14, r15
shr rax, 0x1d
lea rbx, [rax + rdx + 8]
mov qword [rsp + 0x50], r14
mov r9d, ebx
mov qword [rsp + 0x70], rbx
sub r11, r14
inc r11
sub r9d, r13d
mov dword [rsp + 0x48], r9d
cmp r11, rbp
mov r10, r11
je 0x10039a220
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x10039a1f2
mov qword [0x1003fe198], rax
mov rax, r8
xor edx, edx
div r11
mov ecx, r9d
lea r12, [rsi + rdx]
mov r8, r12
mov qword [rsp + 0x80], r12
mov rdx, r14
mov eax, 0x94e909dc
lea rcx, [rsp + 0x158]
mov r11, qword [rbx + r14]
mov qword [rsp + 0x158], r11
mov bl, bpl
mov byte [rsp + 0x20], bl
mov eax, 0x2cfdeabc
mov r9d, dword [rsp + 0x15c]
mov rcx, r13
mov rdi, qword [rsp + 0x158]
mov rax, qword [0x10014dad0]
mov qword [rsp + 0xc8], rbp
mov ebp, 4
and rdi, r15
add rdi, r13
lea r13d, [rbp + 4]
and r9, r15
sub rcx, rax
mov qword [rsp + 0x60], rcx
mov r15, 0xfffffffffffff000
jne 0x10039a346
xor r10d, r10d
test r9, r9
je 0x10039a67b
mov r8d, dword [rsp + 0xc8]
mov ebx, 0xaba54d66
mov ecx, dword [rsp + 0xcc]
movzx eax, byte [rdi + r10]
inc r10
sub eax, 0x545ab29a
add r8d, eax
add eax, ecx
imul rax, rbx
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov dword [rsp + 0xcc], ecx
add r8d, ecx
cmp r10, r9
mov dword [rsp + 0xc8], r8d
jb 0x10039a2cb
jmp 0x10039a677
mov edx, dword [rbx + rdx*8 + 0x32c5a8]
shr edx, 1
mov eax, dword [rbx + r10*8 + 0x32c5ac]
and eax, r15d
and edx, r12d
add edx, eax
add rdx, r13
jmp 0x10039a1a0
movsxd rcx, dword [0x10000003c]
lea rax, [rdi + r9]
lea rdx, [0x100000000]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x68], rax
mov eax, edi
sub eax, edx
add r8, rdx
mov edx, dword [rcx + rdx + 0xb4]
mov r11d, eax
mov ecx, eax
add rcx, r9
and r11, r15
sub rax, r11
mov qword [rsp + 0x28], rax
mov rax, rcx
and rax, r15
sub rcx, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x78], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x30], rcx
jmp 0x10039a3b3
mov eax, dword [r8]
cmp rax, r11
jae 0x10039a3b8
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039a3a4
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039a3f9
mov eax, dword [r8]
cmp rax, r11
jne 0x10039a3f9
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039a3f9
lea rdx, [r8 + 8]
mov r9, qword [rsp + 0x28]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039a3f9
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039a3e2
mov r14, qword [rsp + 0x60]
mov r9d, dword [rsp + 0xcc]
mov r11d, dword [rsp + 0xc8]
mov ebx, 0xaba54d66
mov ecx, 0xf000
mov r15, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x40]
cmp r8, r15
je 0x10039a5f3
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039a5f3
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039a464
add r8, r12
cmp r8, r15
je 0x10039a5f3
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039a5f3
xor esi, esi
jmp 0x10039a437
mov eax, dword [r8]
cmp rax, rdx
jne 0x10039a480
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x10039a5f3
mov rax, rsi
inc rsi
mov qword [rsp + 0x60], rax
test word [r8 + rax*2 + 8], cx
je 0x10039a422
movzx eax, word [r8 + rax*2 + 8]
lea rcx, [0x100000000]
xor r15d, r15d
and eax, r10d
add eax, dword [r8]
add rax, rcx
mov rcx, rax
mov qword [rsp + 0x58], rax
sub rcx, rdi
je 0x10039a51c
mov r12, rcx
movzx eax, byte [r15 + rdi]
inc r15
sub eax, 0x545ab29a
add r11d, eax
add eax, r9d
imul rax, rbx
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
mov dword [rsp + 0xcc], r9d
add r11d, r9d
cmp r15, r12
mov dword [rsp + 0xc8], r11d
jb 0x10039a4bc
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0x118], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039a546
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x10039a54b
mov edx, 2
mov rdi, r14
neg rdi
sub edx, 2
je 0x10039a571
cmp edx, 1
je 0x10039a561
or rdi, 0xffffffffffffffff
jmp 0x10039a57b
add rax, rdi
mov rdi, r13
mov qword [rsp + 0x118], rax
jmp 0x10039a57b
add dword [rsp + 0x118], edi
mov rdi, rbp
xor ebx, ebx
test rdi, rdi
je 0x10039a5e6
mov r15d, 0xaba54d66
movzx eax, byte [rsp + rbx + 0x118]
inc rbx
sub eax, 0x545ab29a
add r11d, eax
add eax, r9d
imul rax, r15
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
cmp rbx, rdi
jb 0x10039a588
mov dword [rsp + 0xcc], r9d
mov dword [rsp + 0xc8], r11d
mov rax, qword [rsp + 0x58]
add rdi, rax
jmp 0x10039a40e
mov r10, qword [rsp + 0x68]
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
mov r14, qword [rsp + 0x50]
xor r8d, r8d
mov bl, r8b
sub r10, rdi
je 0x10039a67b
mov ebx, 0xaba54d66
movzx eax, byte [rdi + r8]
inc r8
sub eax, 0x545ab29a
add r11d, eax
add eax, r9d
imul rax, rbx
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
cmp r8, r10
mov dword [rsp + 0xcc], r9d
mov dword [rsp + 0xc8], r11d
jb 0x10039a61c
mov bl, byte [rsp + 0x20]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xc8]
mov byte [rsp + rcx + 0x1b7], al
cmp rcx, r13
jb 0x10039a67d
mov eax, 0xcd65ebd4
mov r9, r14
mov r10, qword [rsp + 0x70]
mov rax, qword [rsp + 0x1b8]
and r9d, 7
mov r11, r10
mov ecx, dword [rsp + 0x48]
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x28], r9
je 0x10039ab94
xor r10d, r10d
mov dword [rsp + 0x24], r10d
xor esi, esi
mov edx, ecx
not edx
xor edi, edi
test r9d, r9d
mov dword [rsp + 0x78], edx
mov dword [rsp + 0x38], esi
jle 0x10039a72c
lea r8d, [r10 + 0x38]
cmp edi, ebp
movzx edx, byte [r11]
jge 0x10039a701
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x10039a709
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039a6ef
mov ecx, dword [rsp + 0x48]
mov edx, dword [rsp + 0x78]
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x24], r10d
mov qword [rsp + 0x30], r11
movzx r11d, word [rsp + 0x1be]
movzx r8d, word [rsp + 0x1ba]
movzx r10d, word [rsp + 0x1bc]
movzx r9d, ax
mov esi, ecx
sub esi, r11d
xor esi, edx
xor esi, eax
mov edi, esi
not edi
ror edi, 5
add edi, r10d
imul edi, r11d
xor edi, ecx
mov ecx, eax
mov edx, edi
xor edx, dword [rsp + 0x1bc]
sub ecx, edx
xor esi, ecx
mov edx, dword [rsp + 0x1bc]
mov ecx, esi
sub edx, esi
rol edx, 0xe
ror ecx, 0xb
imul edx, r9d
add ecx, edx
xor edi, ecx
mov edx, edi
xor edx, eax
mov ecx, edi
rol edx, 7
rol ecx, 0xd
imul edx, r11d
xor ecx, edx
xor esi, ecx
mov edx, esi
xor edx, r11d
mov ecx, esi
shr ecx, 0xc
rol edx, 2
imul edx, r10d
add edx, ecx
xor edi, edx
mov edx, edi
mov ecx, edi
sub edx, dword [rsp + 0x1bc]
rol edx, 5
ror ecx, 0xb
imul edx, r8d
xor ecx, edx
xor esi, ecx
mov ecx, esi
mov edx, esi
xor edx, r10d
rol edx, 1
rol ecx, 1
imul edx, r9d
sub edx, ecx
xor edi, edx
mov edx, edi
sub edx, r10d
mov ecx, edi
shr ecx, 1
imul edx, r11d
sub edx, ecx
xor esi, edx
mov ecx, esi
mov edx, eax
sub edx, esi
rol edx, 0xe
rol ecx, 7
imul edx, r10d
sub edx, ecx
xor edi, edx
mov ecx, edi
ror ecx, 6
sub ecx, r8d
imul ecx, r11d
xor esi, ecx
mov edx, esi
mov r8d, dword [rsp + 0x38]
xor edx, r11d
mov ecx, esi
imul edx, r9d
xor esi, dword [rsp + 0x24]
shr ecx, 7
xor r9d, r9d
add edx, ecx
xor edx, r8d
xor edi, edx
mov r8d, esi
mov edx, edi
mov rcx, qword [rsp + 0x28]
test ecx, ecx
jle 0x10039a879
mov rax, r12
cmp r9d, ebp
jge 0x10039a857
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039a864
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039a846
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1b8]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039ab7c
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov r11, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x24]
mov r10, qword [rsp + 0x70]
mov rcx, r14
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039aac8
mov r15, qword [rsp + 0x28]
movzx edx, word [rsp + 0x1bc]
movzx r14d, word [rsp + 0x1be]
mov r10, qword [rsp + 0x40]
mov r12d, dword [rsp + 0x38]
movzx ecx, word [rsp + 0x1ba]
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x68], edx
movzx ecx, ax
mov dword [rsp + 0x48], ecx
movzx r9d, byte [r11]
movzx ecx, byte [r11 + 1]
shl r9d, 8
movzx r8d, byte [r11 + 4]
shl r8d, 8
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r11 + 2]
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r11 + 3]
or r9d, ecx
movzx ecx, byte [r11 + 5]
or r8d, ecx
movzx ecx, byte [r11 + 6]
xor edi, r9d
shl r8d, 8
or r8d, ecx
movzx ecx, byte [r11 + 7]
add r11, r13
shl r8d, 8
or r8d, ecx
mov ecx, edi
sub ecx, r14d
xor ecx, r8d
xor esi, ecx
xor esi, eax
mov ecx, esi
not ecx
ror ecx, 5
add ecx, edx
imul ecx, r14d
xor edi, ecx
mov edx, edi
mov ecx, eax
xor edx, dword [rsp + 0x1bc]
sub ecx, edx
mov edx, dword [rsp + 0x1bc]
xor esi, ecx
mov ecx, esi
sub edx, esi
rol edx, 0xe
ror ecx, 0xb
imul edx, dword [rsp + 0x48]
add ecx, edx
xor edi, ecx
mov ecx, edi
mov edx, edi
xor edx, eax
rol edx, 7
rol ecx, 0xd
imul edx, r14d
xor ecx, edx
xor esi, ecx
movzx ecx, word [rsp + 0x1bc]
mov edx, esi
xor edx, r14d
rol edx, 2
imul edx, ecx
mov ecx, esi
shr ecx, 0xc
add edx, ecx
xor edi, edx
mov ecx, edi
mov edx, edi
sub edx, dword [rsp + 0x1bc]
rol edx, 5
ror ecx, 0xb
imul edx, dword [rsp + 0x78]
xor ecx, edx
xor esi, ecx
movzx ecx, word [rsp + 0x1bc]
mov edx, esi
xor edx, ecx
mov ecx, esi
rol edx, 1
rol ecx, 1
imul edx, dword [rsp + 0x48]
sub edx, ecx
xor edi, edx
movzx ecx, word [rsp + 0x1bc]
mov edx, edi
sub edx, ecx
mov ecx, edi
shr ecx, 1
imul edx, r14d
sub edx, ecx
xor esi, edx
mov edx, eax
sub edx, esi
mov ecx, esi
rol edx, 0xe
rol ecx, 7
imul edx, dword [rsp + 0x68]
sub edx, ecx
xor edi, edx
movzx edx, word [rsp + 0x1ba]
mov ecx, edi
ror ecx, 6
sub ecx, edx
imul ecx, r14d
xor esi, ecx
mov ecx, esi
mov edx, esi
xor esi, ebp
mov ebp, r8d
xor edx, r14d
shr ecx, 7
imul edx, dword [rsp + 0x48]
add edx, ecx
xor edx, r12d
mov r12d, r9d
xor edi, edx
xor bl, dil
xor bl, sil
movzx edx, word [rsp + 0x1bc]
mov byte [r10 + 3], dil
ror edi, 8
mov byte [r10 + 7], sil
ror esi, 8
xor bl, dil
mov byte [r10 + 2], dil
mov byte [r10 + 6], sil
ror edi, 8
mov byte [r10 + 1], dil
xor bl, sil
ror esi, 8
xor bl, dil
mov byte [r10 + 5], sil
ror edi, 8
mov byte [r10], dil
xor bl, sil
ror esi, 8
mov cl, sil
xor cl, dil
mov byte [r10 + 4], sil
add r10, r13
xor bl, cl
ror edi, 8
ror esi, 8
sub r15, 1
jne 0x10039a8e9
mov r10, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
mov r14, qword [rsp + 0x50]
mov r15, 0xfffffffffffff000
xor bl, byte [r10 + r14 + 8]
je 0x10039abba
call fcn.10000228c
mov r8d, 0xffff
lea r12, [0x10006d7ac]
mov rbx, rax
mov rax, qword [rsp + 0xd8]
and rbx, r15
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
mov rax, qword [0x1003fe198]
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039ab13
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
mov rax, qword [rsp + 0xe0]
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039abb0
xor esi, esi
test ecx, ecx
jns 0x10039a88f
neg ecx
shl ecx, 3
shr edi, cl
shl edi, cl
jmp 0x10039a88f
mov dword [rsp + 0x38], ecx
xor esi, esi
mov ebp, ecx
xor edi, edi
not ebp
jmp 0x10039a89d
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039aba5
jmp 0x10039a12b
mov rdi, r10
sub rdi, r12
lea r13, [0x100000000]
mov rsi, r13
mov rax, qword [0x10014dad0]
sub rsi, rax
jne 0x10039abdf
test rdi, rdi
je 0x10039a120
mov rbx, r12
mov rcx, qword [0x100019a28]
lea r9d, [rcx - 1]
xor r8d, r8d
lea r15, [0x100000000]
sub rbx, r10
sub r10d, r13d
lea ebp, [r14 + r10]
test r9d, r9d
js 0x10039ac37
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r11d, dword [r15 + rdx*4 + 0x19a2c]
and r11d, 0xfffffff
cmp r10d, r11d
jae 0x10039ac2c
lea r9d, [rdx - 1]
jmp 0x10039ac32
jbe 0x10039ac3f
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039ac06
movsxd r11, r8d
jmp 0x10039acc0
mov r11, rdx
jmp 0x10039acc0
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x10039a120
mov r9, rdx
mov r8d, edx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r13
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039ac9c
sub r8d, 1
je 0x10039ac97
cmp r8d, 1
jne 0x10039aca2
mov r10, rsi
jmp 0x10039aca2
mov r10, rdi
jmp 0x10039aca2
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039acb2
cmp edx, 1
jne 0x10039acbd
add qword [r9 + rbx], r10
jmp 0x10039acb6
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039ac44
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039b8c6
mov r9d, ebp
mov ecx, dword [0x10003f9ec]
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039ad3a
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x312b78]
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x10039ad2b
lea ecx, [rdx - 1]
jmp 0x10039ad35
jbe 0x10039aeb9
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039ad08
mov rdx, rbp
cmp rdx, rbp
je 0x10039b8c6
mov r8, rbp
mov r14d, dword [rdx]
mov eax, dword [rdx + 4]
and eax, 7
lea rdi, [rax + rdx + 8]
mov r11d, dword [0x100015964]
shr r14, 2
and r14, r15
mov r9d, edi
sub r11, r14
inc r11
mov r10, r11
mov qword [rsp + 0x30], rdi
sub r9d, r13d
mov qword [rsp + 0x70], r14
cmp r11, rbp
mov dword [rsp + 0x48], r9d
je 0x10039adbd
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x10039ad8f
mov qword [0x1003fe198], rax
mov ecx, r9d
mov rax, r8
xor edx, edx
div r11
lea r12, [rsi + rdx]
mov qword [rsp + 0x80], r12
mov rdx, r14
mov r8, r12
mov eax, 0x2f36951d
mov bl, bpl
lea rcx, [rsp + 0x178]
mov r11, qword [rdi + r14]
mov qword [rsp + 0x178], r11
mov eax, 0xa76f70ca
mov rax, qword [0x10014dad0]
mov rcx, r13
mov r9d, dword [rsp + 0x17c]
mov r11, qword [rsp + 0x178]
mov qword [rsp + 0x90], rbp
and r11, r15
mov ebp, 4
and r9, r15
mov r15, 0xfffffffffffff000
add r11, r13
sub rcx, rax
mov qword [rsp + 0x58], rcx
lea r13d, [rbp + 4]
jne 0x10039aed8
xor r8d, r8d
test r9, r9
je 0x10039b20f
mov ecx, dword [rsp + 0x94]
mov edx, dword [rsp + 0x90]
movzx eax, byte [r8 + r11]
inc r8
sub eax, 0x1279a1d2
add edx, eax
add eax, ecx
mov ecx, eax
imul ecx, ecx, 0x2a75
rol ecx, 0xe
ror eax, 0xe
xor ecx, eax
mov eax, ecx
imul eax, eax, 0x2a75
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov ecx, eax
imul ecx, ecx, 0x2a75
rol ecx, 0xe
ror eax, 0xe
xor ecx, eax
add edx, ecx
mov dword [rsp + 0x94], ecx
mov dword [rsp + 0x90], edx
cmp r8, r9
jb 0x10039ae5e
jmp 0x10039b20f
mov edx, dword [rbx + rdx*8 + 0x312b7c]
mov eax, dword [rbx + r10*8 + 0x312b78]
and edx, r12d
and eax, r15d
add edx, eax
add rdx, r13
jmp 0x10039ad3d
lea rdx, [0x100000000]
movsxd rcx, dword [0x10000003c]
lea rax, [r11 + r9]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x38], rax
mov eax, r11d
sub eax, edx
mov r10d, eax
add r8, rdx
and r10, r15
mov edx, dword [rcx + rdx + 0xb4]
mov ecx, eax
add rcx, r9
sub rax, r10
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x60], rax
mov rax, rcx
and rax, r15
mov qword [rsp + 0x40], rax
sub rcx, rax
mov qword [rsp + 0x68], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x78], rcx
jmp 0x10039af4b
mov eax, dword [r8]
cmp rax, r10
jae 0x10039af50
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039af3c
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039af93
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039af93
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039af93
mov r9, qword [rsp + 0x60]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039af93
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039af7c
mov r9d, dword [rsp + 0x90]
mov rdi, qword [rsp + 0x58]
lea rbx, [0x100000000]
mov edx, dword [rsp + 0x94]
mov ecx, 0xf000
mov r14, qword [rsp + 0x78]
cmp r8, r14
je 0x10039b194
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039b194
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039affe
add r8, r12
cmp r8, r14
je 0x10039b194
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039b194
xor esi, esi
jmp 0x10039afcf
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
jne 0x10039b01c
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x68]
jae 0x10039b194
mov rax, rsi
inc rsi
mov qword [rsp + 0x60], rax
test word [r8 + rax*2 + 8], cx
je 0x10039afb8
xor r14d, r14d
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, rbx
mov rcx, rax
mov qword [rsp + 0x50], rax
sub rcx, r11
je 0x10039b0af
mov r12, rcx
movzx eax, byte [r14 + r11]
inc r14
sub eax, 0x1279a1d2
add r9d, eax
add eax, edx
mov ecx, eax
imul ecx, ecx, 0x2a75
rol ecx, 0xe
ror eax, 0xe
xor ecx, eax
mov eax, ecx
imul eax, eax, 0x2a75
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov edx, eax
imul edx, edx, 0x2a75
rol edx, 0xe
ror eax, 0xe
xor edx, eax
add r9d, edx
cmp r14, r12
mov dword [rsp + 0x94], edx
mov dword [rsp + 0x90], r9d
jb 0x10039b051
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
mov rax, qword [rax]
mov qword [rsp + 0x100], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039b0db
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039b0e1
mov r11d, 2
mov rcx, rdi
neg rcx
sub r11d, 2
mov qword [rsp + 0x58], rcx
je 0x10039b113
cmp r11d, 1
je 0x10039b0fe
or r11, 0xffffffffffffffff
jmp 0x10039b122
mov rcx, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x100], rax
mov r11, r13
jmp 0x10039b122
mov rcx, qword [rsp + 0x58]
mov r11, rbp
add dword [rsp + 0x100], ecx
xor r14d, r14d
test r11, r11
je 0x10039b187
movzx eax, byte [rsp + r14 + 0x100]
inc r14
sub eax, 0x1279a1d2
add r9d, eax
add eax, edx
mov ecx, eax
imul ecx, ecx, 0x2a75
rol ecx, 0xe
ror eax, 0xe
xor ecx, eax
mov eax, ecx
imul eax, eax, 0x2a75
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov edx, eax
imul edx, edx, 0x2a75
rol edx, 0xe
ror eax, 0xe
xor edx, eax
add r9d, edx
cmp r14, r11
jb 0x10039b12a
mov dword [rsp + 0x94], edx
mov dword [rsp + 0x90], r9d
mov rax, qword [rsp + 0x50]
add r11, rax
jmp 0x10039afae
xor r8d, r8d
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x38]
sub r10, r11
mov bl, r8b
je 0x10039b20f
movzx eax, byte [r8 + r11]
inc r8
sub eax, 0x1279a1d2
add r9d, eax
add eax, edx
mov ecx, eax
imul ecx, ecx, 0x2a75
rol ecx, 0xe
ror eax, 0xe
xor ecx, eax
mov eax, ecx
imul eax, eax, 0x2a75
rol eax, 0xe
ror ecx, 0xe
xor eax, ecx
mov edx, eax
imul edx, edx, 0x2a75
rol edx, 0xe
ror eax, 0xe
xor edx, eax
mov dword [rsp + 0x94], edx
add r9d, edx
mov dword [rsp + 0x90], r9d
cmp r8, r10
jb 0x10039b1b6
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x90]
cmp rcx, r13
mov byte [rsp + rcx + 0x19f], al
jb 0x10039b211
mov eax, 0x65aa7d7c
mov r9, r14
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r12
and r9d, 7
mov qword [rsp + 0x28], r9
je 0x10039b784
mov esi, dword [rsp + 0x48]
xor r10d, r10d
not esi
xor edi, edi
xor r11d, r11d
mov dword [rsp + 0x24], r10d
mov dword [rsp + 0x38], edi
test r9d, r9d
jle 0x10039b2b9
mov rax, qword [rsp + 0x40]
lea r8d, [r10 + 0x38]
cmp r11d, ebp
movzx edx, byte [rax]
jge 0x10039b28d
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x10039b295
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x10039b27b
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1a0]
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x24], r10d
mov r10d, dword [rsp + 0x1a4]
mov r9d, dword [rsp + 0x48]
movzx r11d, word [rsp + 0x1a6]
movzx edi, r10w
mov r8d, edi
xor r8d, r9d
mov ecx, r11d
mov edx, r9d
mov r14d, r11d
rol r8d, 3
rol edx, 8
imul ecx, r8d
sub ecx, edx
xor esi, ecx
mov ecx, esi
xor r14d, esi
shr ecx, 7
imul r14d, edi
add r14d, ecx
xor r14d, r9d
mov edx, r14d
lea r8d, [r10 + r14]
ror r8d, 1
rol edx, 7
movzx r10d, ax
movzx r9d, word [rsp + 0x1a2]
mov ecx, r9d
imul ecx, r8d
add edx, ecx
mov r8d, eax
xor esi, edx
mov ecx, esi
ror ecx, 8
mov edx, dword [rsp + 0x1a4]
sub ecx, r10d
imul ecx, edi
xor r14d, ecx
xor edx, r14d
mov ecx, eax
sub ecx, edx
xor esi, ecx
mov edx, esi
mov ecx, edi
sub r8d, esi
rol r8d, 3
ror edx, 0xf
imul ecx, r8d
xor edx, ecx
mov r8d, r9d
xor r14d, edx
mov ecx, r14d
sub ecx, r9d
sub ecx, dword [rsp + 0x1a4]
xor esi, ecx
mov ecx, r11d
mov edx, esi
xor ecx, esi
ror edx, 9
imul ecx, r10d
xor edx, ecx
xor r14d, edx
mov ecx, r11d
mov edx, r14d
xor r8d, r14d
rol r8d, 3
rol edx, 0xb
imul ecx, r8d
xor edx, ecx
xor esi, edx
mov edx, r10d
mov ecx, esi
xor edx, esi
shr ecx, 7
imul edx, edi
xor edx, ecx
xor r14d, edx
mov edx, dword [rsp + 0x38]
mov ecx, r14d
sub ecx, r11d
rol ecx, 6
imul r9d, ecx
mov ecx, r14d
shr ecx, 9
xor r9d, ecx
xor esi, r9d
xor r9d, r9d
mov ecx, esi
xor edi, esi
xor esi, dword [rsp + 0x24]
mov r8d, esi
shr ecx, 7
rol edi, 4
imul r10d, edi
add r10d, ecx
xor r10d, edx
xor r14d, r10d
mov rcx, qword [rsp + 0x28]
mov edx, r14d
test ecx, ecx
jle 0x10039b42f
mov rax, r12
cmp r9d, ebp
jge 0x10039b40d
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039b41a
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039b3fc
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x1a0]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039b76a
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov rdi, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x24]
mov r11, qword [rsp + 0x70]
mov rcx, r11
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039b6b4
mov r12d, dword [rsp + 0x38]
mov r15, qword [rsp + 0x28]
movzx edx, word [rsp + 0x1a6]
movzx r8d, word [rsp + 0x1a4]
mov ecx, edx
mov r11, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x48], edx
neg ecx
mov dword [rsp + 0x78], ecx
movzx ecx, ax
mov dword [rsp + 0x24], ecx
movzx r10d, byte [rdi]
movzx ecx, byte [rdi + 1]
shl r10d, 8
movzx r9d, byte [rdi + 4]
shl r9d, 8
or r10d, ecx
shl r10d, 8
movzx ecx, byte [rdi + 2]
or r10d, ecx
movzx ecx, byte [rdi + 3]
shl r10d, 8
or r10d, ecx
movzx ecx, byte [rdi + 5]
or r9d, ecx
xor r14d, r10d
movzx ecx, byte [rdi + 6]
xor r8d, r14d
shl r9d, 8
or r9d, ecx
movzx ecx, byte [rdi + 7]
add rdi, r13
shl r9d, 8
or r9d, ecx
rol r8d, 3
mov ecx, r14d
rol ecx, 8
imul edx, r8d
sub edx, ecx
movzx ecx, word [rsp + 0x1a4]
xor edx, r9d
xor esi, edx
mov edx, dword [rsp + 0x48]
xor edx, esi
imul edx, ecx
mov ecx, esi
shr ecx, 7
add edx, ecx
xor r14d, edx
mov edx, dword [rsp + 0x1a4]
movzx ecx, word [rsp + 0x1a2]
add edx, r14d
mov r8d, r14d
ror edx, 1
rol r8d, 7
imul ecx, edx
movzx edx, word [rsp + 0x1a4]
add r8d, ecx
xor esi, r8d
mov r8d, eax
mov ecx, esi
ror ecx, 8
sub ecx, dword [rsp + 0x24]
imul ecx, edx
xor r14d, ecx
mov edx, dword [rsp + 0x1a4]
mov ecx, eax
xor edx, r14d
sub ecx, edx
xor esi, ecx
sub r8d, esi
rol r8d, 3
movzx ecx, word [rsp + 0x1a4]
mov edx, esi
ror edx, 0xf
imul ecx, r8d
movzx r8d, word [rsp + 0x1a2]
xor edx, ecx
xor r14d, edx
mov ecx, r14d
sub ecx, r8d
sub ecx, dword [rsp + 0x1a4]
xor esi, ecx
mov edx, esi
mov ecx, dword [rsp + 0x48]
xor ecx, esi
ror edx, 9
imul ecx, dword [rsp + 0x24]
xor edx, ecx
xor r14d, edx
xor r8d, r14d
mov edx, r14d
mov ecx, dword [rsp + 0x48]
rol r8d, 3
rol edx, 0xb
imul ecx, r8d
movzx r8d, word [rsp + 0x1a4]
xor edx, ecx
xor esi, edx
mov ecx, esi
mov edx, dword [rsp + 0x24]
xor edx, esi
shr ecx, 7
imul edx, r8d
xor edx, ecx
xor r14d, edx
movzx edx, word [rsp + 0x1a2]
mov ecx, dword [rsp + 0x78]
add ecx, r14d
rol ecx, 6
imul edx, ecx
mov ecx, r14d
shr ecx, 9
xor edx, ecx
mov ecx, r8d
xor esi, edx
mov edx, dword [rsp + 0x24]
xor ecx, esi
rol ecx, 4
imul edx, ecx
mov ecx, esi
xor esi, ebp
mov ebp, r9d
shr ecx, 7
add edx, ecx
xor edx, r12d
mov r12d, r10d
xor r14d, edx
mov edx, dword [rsp + 0x48]
mov byte [r11 + 3], r14b
mov byte [r11 + 7], sil
xor bl, r14b
xor bl, sil
ror r14d, 8
mov byte [r11 + 2], r14b
ror esi, 8
mov byte [r11 + 6], sil
xor bl, r14b
ror r14d, 8
xor bl, sil
ror esi, 8
xor bl, r14b
mov byte [r11 + 1], r14b
ror r14d, 8
xor bl, sil
mov byte [r11 + 5], sil
mov byte [r11], r14b
ror esi, 8
mov cl, sil
mov byte [r11 + 4], sil
xor cl, r14b
add r11, r13
xor bl, cl
ror r14d, 8
ror esi, 8
sub r15, 1
jne 0x10039b4a0
mov r15, 0xfffffffffffff000
mov r12, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x70]
mov al, byte [rdi + r11 + 8]
xor al, bl
je 0x10039b7af
call fcn.10000228c
mov rbx, rax
lea r12, [0x10006d7ac]
mov rax, qword [rsp + 0xd8]
mov r8d, 0xffff
lea r10, [rax + 0x18]
and rbx, r15
mov qword [rax + 0x10], r12
mov rax, qword [0x1003fe198]
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039b701
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
mov rax, qword [rsp + 0xe0]
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039b7a5
xor esi, esi
test ecx, ecx
jns 0x10039b445
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x10039b445
xor esi, esi
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x38], ecx
xor r14d, r14d
mov ebp, ecx
not ebp
jmp 0x10039b44e
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039b79a
jmp 0x10039a12b
lea r14, [0x100000000]
mov rbp, r14
mov rsi, rdi
mov rax, qword [0x10014dad0]
sub rsi, r12
sub rbp, rax
jne 0x10039b7d4
test rsi, rsi
je 0x10039a120
lea r15, [0x100000000]
mov rbx, r12
xor r8d, r8d
mov rcx, qword [0x100019a28]
sub rbx, rdi
lea r9d, [rcx - 1]
sub edi, r14d
test r9d, r9d
lea r13d, [r11 + rdi]
js 0x10039b82c
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039b821
lea r9d, [rdx - 1]
jmp 0x10039b827
jbe 0x10039b834
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039b7fb
movsxd r11, r8d
jmp 0x10039b8b6
mov r11, rdx
jmp 0x10039b8b6
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x10039a120
mov r9, rdx
mov r8d, edx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r14
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039b892
sub r8d, 1
je 0x10039b88d
cmp r8d, 1
jne 0x10039b898
mov r10, rbp
jmp 0x10039b898
mov r10, rsi
jmp 0x10039b898
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x10039b8a8
cmp edx, 1
jne 0x10039b8b3
add qword [r9 + rbx], r10
jmp 0x10039b8ac
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039b839
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039c513
mov r9d, ebp
mov ecx, dword [0x10031d910]
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039b930
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0xe869c]
and eax, r15d
cmp r8d, eax
jae 0x10039b921
lea ecx, [rdx - 1]
jmp 0x10039b92b
jbe 0x10039bad8
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039b8fe
mov rdx, rbp
cmp rdx, rbp
je 0x10039c513
mov edi, dword [rdx]
mov eax, dword [rdx + 4]
mov r11d, dword [0x100015964]
and eax, 7
shr rdi, 1
and rdi, r15
mov r8, rbp
sub r11, rdi
inc r11
mov r10, r11
lea r14, [rax + rdx + 8]
mov qword [rsp + 0x60], r14
mov r9d, r14d
mov qword [rsp + 0x50], rdi
sub r9d, r13d
cmp r11, rbp
mov dword [rsp + 0x38], r9d
je 0x10039b9b1
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x10039b983
mov qword [0x1003fe198], rax
mov rax, r8
xor edx, edx
div r11
mov ecx, r9d
lea r12, [rsi + rdx]
mov qword [rsp + 0x80], r12
mov rdx, rdi
mov r8, r12
mov eax, 0xea87bcfd
mov bl, bpl
lea rcx, [rsp + 0x140]
mov r11, qword [rdi + r14]
mov qword [rsp + 0x140], r11
mov eax, 0xaa6cc2e2
mov rcx, r13
mov r11, qword [rsp + 0x140]
mov r9d, dword [rsp + 0x144]
and r11, r15
and r9, r15
mov r15, 0xfffffffffffff000
mov rax, qword [0x10014dad0]
add r11, r13
sub rcx, rax
mov qword [rsp + 0xa0], rbp
mov ebp, 4
lea r13d, [rbp + 4]
mov qword [rsp + 0x30], rcx
jne 0x10039baf9
xor r10d, r10d
test r9, r9
je 0x10039be9d
mov edi, 0xb0d52e05
mov ecx, dword [rsp + 0xa4]
mov r8d, dword [rsp + 0xa0]
movzx eax, byte [r11 + r10]
inc r10
sub eax, 0x4f2ad1fb
add r8d, eax
add eax, ecx
imul rax, rdi
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
add eax, ecx
imul rax, rdi
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
imul rax, rdi
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
add ecx, eax
mov dword [rsp + 0xa4], ecx
add r8d, ecx
mov dword [rsp + 0xa0], r8d
cmp r10, r9
jb 0x10039ba58
jmp 0x10039be98
mov eax, dword [rbx + r10*8 + 0xe8698]
mov edx, dword [rbx + rdx*8 + 0xe869c]
shr eax, 1
and edx, r15d
and eax, r12d
add edx, eax
add rdx, r13
jmp 0x10039b933
lea rdx, [0x100000000]
lea rax, [r11 + r9]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x48], rax
mov eax, r11d
sub eax, edx
add r8, rdx
mov edx, dword [rcx + rdx + 0xb4]
mov edi, eax
mov ecx, eax
add rcx, r9
and rdi, r15
sub rax, rdi
mov qword [rsp + 0x28], rax
mov rax, rcx
and rax, r15
mov qword [rsp + 0x40], rax
sub rcx, rax
mov qword [rsp + 0x78], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x58], rcx
jmp 0x10039bb66
mov eax, dword [r8]
cmp rax, rdi
jae 0x10039bb6b
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039bb57
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x10039bbac
mov eax, dword [r8]
cmp rax, rdi
jne 0x10039bbac
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039bbac
lea rdx, [r8 + 8]
mov r9, qword [rsp + 0x28]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039bbac
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039bb95
mov edx, dword [rsp + 0xa4]
lea r15, [0x100000000]
mov rbx, qword [rsp + 0x30]
mov r9d, dword [rsp + 0xa0]
mov edi, 0xb0d52e05
mov ecx, 0xf000
cmp r8, qword [rsp + 0x58]
je 0x10039bdf9
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039bdf9
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039bc1b
add r8, r12
cmp r8, qword [rsp + 0x58]
je 0x10039bdf9
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039bdf9
xor esi, esi
jmp 0x10039bbea
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
jne 0x10039bc39
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x10039bdf9
mov rax, rsi
inc rsi
mov qword [rsp + 0x68], rax
test word [r8 + rax*2 + 8], cx
je 0x10039bbd1
movzx eax, word [r8 + rax*2 + 8]
xor r14d, r14d
and eax, r10d
add eax, dword [r8]
add rax, r15
mov qword [rsp + 0x70], rax
mov rcx, rax
sub rcx, r11
je 0x10039bcf2
mov r12, rcx
movzx eax, byte [r14 + r11]
inc r14
sub eax, 0x4f2ad1fb
add r9d, eax
add eax, edx
imul rax, rdi
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
add eax, ecx
imul rax, rdi
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
imul rax, rdi
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov edx, dword [rsp + 0x30]
add edx, eax
add r9d, edx
cmp r14, r12
mov dword [rsp + 0xa4], edx
mov dword [rsp + 0xa0], r9d
jb 0x10039bc72
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x68]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0x110], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039bd1e
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039bd24
mov r11d, 2
mov rcx, rbx
neg rcx
sub r11d, 2
mov qword [rsp + 0x30], rcx
je 0x10039bd56
cmp r11d, 1
je 0x10039bd41
or r11, 0xffffffffffffffff
jmp 0x10039bd65
mov r11, r13
mov rcx, qword [rsp + 0x30]
add rax, rcx
mov qword [rsp + 0x110], rax
jmp 0x10039bd65
mov r11, rbp
mov rcx, qword [rsp + 0x30]
add dword [rsp + 0x110], ecx
xor r14d, r14d
test r11, r11
je 0x10039bdec
movzx eax, byte [rsp + r14 + 0x110]
inc r14
sub eax, 0x4f2ad1fb
add r9d, eax
add eax, edx
imul rax, rdi
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
add eax, ecx
imul rax, rdi
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
imul rax, rdi
mov qword [rsp + 0x30], rax
mov edx, dword [rsp + 0x30]
shr rax, 0x20
add edx, eax
add r9d, edx
cmp r14, r11
jb 0x10039bd6d
mov dword [rsp + 0xa4], edx
mov dword [rsp + 0xa0], r9d
mov rax, qword [rsp + 0x70]
add r11, rax
jmp 0x10039bbcc
mov r10, qword [rsp + 0x48]
xor r8d, r8d
sub r10, r11
mov bl, r8b
mov r14, qword [rsp + 0x60]
mov r15, 0xfffffffffffff000
mov r12, qword [rsp + 0x80]
je 0x10039be98
movzx eax, byte [r8 + r11]
inc r8
sub eax, 0x4f2ad1fb
add r9d, eax
add eax, edx
imul rax, rdi
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
add eax, ecx
imul rax, rdi
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
imul rax, rdi
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov edx, dword [rsp + 0x30]
add edx, eax
mov dword [rsp + 0xa4], edx
add r9d, edx
cmp r8, r10
mov dword [rsp + 0xa0], r9d
jb 0x10039be1d
mov rdi, qword [rsp + 0x50]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xa0]
cmp rcx, r13
mov byte [rsp + rcx + 0x1cf], al
jb 0x10039be9f
mov eax, 0x51f89c17
mov r9, rdi
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x40], r14
mov rsi, r12
and r9d, 7
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x30], r12
je 0x10039c3d4
xor r10d, r10d
mov r8d, dword [rsp + 0x38]
mov dword [rsp + 0x24], r10d
mov esi, r8d
xor edi, edi
not esi
xor r11d, r11d
mov dword [rsp + 0x48], edi
test r9d, r9d
jle 0x10039bf51
lea r8d, [r10 + 0x38]
mov rax, r14
movzx edx, byte [rax]
cmp r11d, ebp
jge 0x10039bf20
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x10039bf28
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x10039bf0e
mov r8d, dword [rsp + 0x38]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1d0]
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x24], r10d
mov ecx, r8d
mov r9d, dword [rsp + 0x1d4]
mov edx, r8d
movzx r10d, word [rsp + 0x1d6]
movzx r11d, r9w
xor edx, r11d
rol edx, 4
ror ecx, 8
imul edx, r10d
sub edx, ecx
xor esi, edx
mov edi, esi
mov ecx, esi
sub ecx, eax
rol ecx, 8
rol edi, 3
imul ecx, r11d
add edi, ecx
xor edi, r8d
movzx r8d, word [rsp + 0x1d2]
mov ecx, edi
lea edx, [r9 + rdi]
ror edx, 4
ror ecx, 0xf
imul edx, r8d
sub edx, ecx
xor esi, edx
mov edx, r9d
mov ecx, esi
sub edx, esi
ror edx, 2
movzx r9d, ax
rol ecx, 7
imul edx, r9d
xor ecx, edx
mov edx, eax
xor edi, ecx
sub edx, edi
rol edx, 0xc
mov ecx, edi
ror ecx, 4
imul edx, r10d
add ecx, edx
xor esi, ecx
mov edx, eax
xor edx, esi
mov ecx, esi
rol edx, 0xb
ror ecx, 8
imul edx, r11d
xor ecx, edx
xor edi, ecx
mov ecx, edi
mov edx, edi
xor ecx, r9d
ror edx, 4
imul ecx, r8d
mov r8d, dword [rsp + 0x1d4]
sub ecx, edx
mov edx, eax
xor esi, ecx
mov ecx, esi
sub ecx, r8d
sub ecx, r9d
xor edi, ecx
sub edx, edi
ror edx, 1
mov ecx, edi
ror ecx, 6
imul edx, r10d
sub edx, ecx
xor esi, edx
mov edx, r8d
mov ecx, esi
not ecx
ror ecx, 0xe
add ecx, r11d
imul ecx, r10d
mov r10d, r8d
xor r10d, eax
xor edi, ecx
xor r10d, esi
xor r10d, edi
mov ecx, r10d
xor r11d, r11d
xor edx, r10d
xor r10d, dword [rsp + 0x24]
rol edx, 0xf
ror ecx, 8
imul edx, r9d
mov r9d, r10d
add ecx, edx
mov edx, dword [rsp + 0x48]
xor ecx, edx
xor edi, ecx
mov rcx, qword [rsp + 0x28]
mov r8d, edi
test ecx, ecx
jle 0x10039c0a8
mov rdx, r12
cmp r11d, ebp
jge 0x10039c08e
rol r8d, 8
mov byte [rdx], r8b
inc rdx
xor bl, r8b
jmp 0x10039c09b
rol r9d, 8
mov byte [rdx], r9b
inc rdx
xor bl, r9b
inc r11d
cmp r11d, ecx
jl 0x10039c07a
mov qword [rsp + 0x30], rdx
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039c3bb
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr r10d, cl
shl r10d, cl
mov rsi, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x24]
mov r11, qword [rsp + 0x50]
mov rcx, r11
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039c307
mov r15d, dword [rsp + 0x1d4]
mov r11, qword [rsp + 0x40]
movzx ecx, word [rsp + 0x1d2]
mov r12d, dword [rsp + 0x48]
mov r14, qword [rsp + 0x28]
mov dword [rsp + 0x78], ecx
mov ecx, dword [rsp + 0x1d4]
movzx edx, cx
xor ecx, eax
mov dword [rsp + 0x38], edx
movzx edx, word [rsp + 0x1d6]
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x68], edx
movzx ecx, ax
mov dword [rsp + 0x24], ecx
movzx ecx, byte [r11 + 1]
movzx r9d, byte [r11]
shl r9d, 8
movzx r8d, byte [r11 + 4]
shl r8d, 8
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r11 + 2]
or r9d, ecx
movzx ecx, byte [r11 + 3]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r11 + 5]
or r8d, ecx
xor edi, r9d
movzx ecx, byte [r11 + 6]
mov edx, edi
shl r8d, 8
xor edx, dword [rsp + 0x38]
or r8d, ecx
shl r8d, 8
movzx ecx, byte [r11 + 7]
add r11, r13
or r8d, ecx
mov ecx, edi
rol edx, 4
ror ecx, 8
imul edx, dword [rsp + 0x68]
sub edx, ecx
xor edx, r8d
xor r10d, edx
mov edx, r10d
mov ecx, r10d
sub edx, eax
rol edx, 8
rol ecx, 3
imul edx, dword [rsp + 0x38]
add ecx, edx
xor edi, ecx
lea edx, [r15 + rdi]
mov ecx, edi
ror edx, 4
ror ecx, 0xf
imul edx, dword [rsp + 0x78]
sub edx, ecx
xor r10d, edx
mov ecx, r10d
mov edx, r15d
sub edx, r10d
ror edx, 2
rol ecx, 7
imul edx, dword [rsp + 0x24]
xor ecx, edx
xor edi, ecx
mov ecx, edi
mov edx, eax
sub edx, edi
rol edx, 0xc
ror ecx, 4
imul edx, dword [rsp + 0x68]
add ecx, edx
xor r10d, ecx
mov edx, eax
xor edx, r10d
rol edx, 0xb
mov ecx, r10d
ror ecx, 8
imul edx, dword [rsp + 0x38]
xor ecx, edx
xor edi, ecx
mov ecx, edi
xor ecx, dword [rsp + 0x24]
mov edx, edi
ror edx, 4
imul ecx, dword [rsp + 0x78]
sub ecx, edx
xor r10d, ecx
mov edx, eax
mov ecx, r10d
sub ecx, r15d
sub ecx, dword [rsp + 0x24]
xor edi, ecx
sub edx, edi
mov ecx, edi
ror edx, 1
ror ecx, 6
imul edx, dword [rsp + 0x68]
sub edx, ecx
xor r10d, edx
movzx edx, word [rsp + 0x1d6]
mov ecx, r10d
not ecx
ror ecx, 0xe
add ecx, dword [rsp + 0x38]
imul ecx, edx
mov edx, r15d
xor edi, ecx
xor r10d, edi
xor r10d, dword [rsp + 0x70]
xor edx, r10d
mov ecx, r10d
xor r10d, ebp
rol edx, 0xf
mov ebp, r8d
ror ecx, 8
imul edx, dword [rsp + 0x24]
add ecx, edx
xor ecx, r12d
xor edi, ecx
mov byte [rsi + 3], dil
xor bl, dil
mov r12d, r9d
mov byte [rsi + 7], r10b
xor bl, r10b
ror edi, 8
mov byte [rsi + 2], dil
ror r10d, 8
mov byte [rsi + 6], r10b
xor bl, dil
ror edi, 8
mov byte [rsi + 1], dil
xor bl, r10b
ror r10d, 8
xor bl, dil
mov byte [rsi + 5], r10b
ror edi, 8
xor bl, r10b
mov byte [rsi], dil
ror r10d, 8
mov cl, r10b
xor cl, dil
mov byte [rsi + 4], r10b
add rsi, r13
xor bl, cl
ror edi, 8
ror r10d, 8
sub r14, 1
jne 0x10039c12d
mov r15, 0xfffffffffffff000
mov r14, qword [rsp + 0x60]
mov r11, qword [rsp + 0x50]
mov r12, qword [rsp + 0x80]
xor bl, byte [r14 + r11 + 8]
je 0x10039c3fd
call fcn.10000228c
mov rbx, rax
and rbx, r15
lea r12, [0x10006d7ac]
mov r8d, 0xffff
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
mov rax, qword [0x1003fe198]
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039c352
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
mov rax, qword [rsp + 0xe0]
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039c3f3
xor r10d, r10d
test ecx, ecx
jns 0x10039c0c0
neg ecx
shl ecx, 3
shr edi, cl
shl edi, cl
jmp 0x10039c0c0
mov ebp, dword [rsp + 0x38]
mov dword [rsp + 0x48], ebp
not ebp
xor r10d, r10d
xor edi, edi
jmp 0x10039c0c9
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039c3e8
jmp 0x10039a12b
lea r13, [0x100000000]
mov rdi, r14
sub rdi, r12
mov rsi, r13
mov rax, qword [0x10014dad0]
sub rsi, rax
jne 0x10039c422
test rdi, rdi
je 0x10039a120
xor r8d, r8d
lea r15, [0x100000000]
mov rbx, r12
sub rbx, r14
mov rcx, qword [0x100019a28]
lea r9d, [rcx - 1]
sub r14d, r13d
lea ebp, [r11 + r14]
test r9d, r9d
js 0x10039c47a
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp r14d, r10d
jae 0x10039c46f
lea r9d, [rdx - 1]
jmp 0x10039c475
jbe 0x10039c482
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039c449
movsxd r11, r8d
jmp 0x10039c503
mov r11, rdx
jmp 0x10039c503
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x10039a120
mov r8d, edx
mov r9, rdx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r13
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039c4df
sub r8d, 1
je 0x10039c4da
cmp r8d, 1
jne 0x10039c4e5
mov r10, rsi
jmp 0x10039c4e5
mov r10, rdi
jmp 0x10039c4e5
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039c4f5
cmp edx, 1
jne 0x10039c500
add qword [r9 + rbx], r10
jmp 0x10039c4f9
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039c487
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039d135
mov ecx, dword [0x100042890]
mov r8d, edi
mov r9d, ebp
sub r8d, r13d
sub ecx, r11d
js 0x10039c57d
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x369eb8]
and eax, r15d
cmp r8d, eax
mov r10, rdx
jae 0x10039c56e
lea ecx, [rdx - 1]
jmp 0x10039c578
jbe 0x10039c70c
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039c54b
mov rdx, rbp
cmp rdx, rbp
je 0x10039d135
mov r8, rbp
mov r11d, dword [0x100015964]
mov r14d, dword [rdx]
and r14, r15
mov eax, dword [rdx + 4]
mov qword [rsp + 0x70], r14
and eax, 7
lea rbx, [rax + rdx + 8]
sub r11, r14
mov r9d, ebx
inc r11
mov r10, r11
mov qword [rsp + 0x30], rbx
sub r9d, r13d
cmp r11, rbp
mov dword [rsp + 0x78], r9d
je 0x10039c5fc
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x10039c5ce
mov qword [0x1003fe198], rax
mov ecx, r9d
xor edx, edx
mov rax, r8
div r11
lea r12, [rsi + rdx]
mov rdx, r14
mov r8, r12
mov qword [rsp + 0x80], r12
mov eax, 0x8e24a58e
mov r11, qword [rbx + r14]
mov bl, bpl
mov qword [rsp + 0x150], r11
lea rcx, [rsp + 0x150]
mov eax, 0x416d61a0
mov rdi, qword [rsp + 0x150]
mov rcx, r13
mov r9d, dword [rsp + 0x154]
and rdi, r15
mov rax, qword [0x10014dad0]
and r9, r15
mov r15, 0xfffffffffffff000
add rdi, r13
sub rcx, rax
mov qword [rsp + 0xb0], rbp
mov qword [rsp + 0x60], rcx
mov ebp, 4
lea r13d, [rbp + 4]
jne 0x10039c72b
xor r10d, r10d
test r9, r9
je 0x10039ca8a
mov r8d, dword [rsp + 0xb0]
mov eax, dword [rsp + 0xb4]
movzx ecx, byte [r10 + rdi]
inc r10
add ecx, 0x7cd8fefb
add r8d, ecx
add ecx, eax
mov eax, ecx
imul eax, eax, 0x42b2
rol eax, 0xb
ror ecx, 0xb
xor eax, ecx
imul rax, rax, 0x7cd8fefb
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
mov dword [rsp + 0xb4], eax
add r8d, eax
cmp r10, r9
mov dword [rsp + 0xb0], r8d
jb 0x10039c69e
jmp 0x10039ca8a
mov edx, dword [rbx + rdx*8 + 0x369ebc]
and edx, r12d
mov eax, dword [rbx + r10*8 + 0x369eb8]
and eax, r15d
add edx, eax
add rdx, r13
jmp 0x10039c580
lea rax, [rdi + r9]
lea rdx, [0x100000000]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x48], rax
mov eax, edi
sub eax, edx
add r8, rdx
mov edx, dword [rcx + rdx + 0xb4]
mov r11d, eax
mov ecx, eax
add rcx, r9
and r11, r15
sub rax, r11
mov qword [rsp + 0x28], rax
mov rax, rcx
and rax, r15
mov qword [rsp + 0x58], rax
sub rcx, rax
mov qword [rsp + 0x50], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x40], rcx
jmp 0x10039c798
mov eax, dword [r8]
cmp rax, r11
jae 0x10039c79d
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039c789
xor esi, esi
cmp r8, rcx
mov r10d, 0xfff
je 0x10039c7de
mov eax, dword [r8]
cmp rax, r11
jne 0x10039c7de
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039c7de
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039c7de
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039c7c7
lea r15, [0x100000000]
mov r9d, dword [rsp + 0xb4]
mov r11d, dword [rsp + 0xb0]
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
mov ecx, 0xf000
mov r14, qword [rsp + 0x40]
cmp r8, r14
je 0x10039c9f7
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039c9f7
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039c84b
add r8, r12
cmp r8, r14
je 0x10039c9f7
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039c9f7
xor esi, esi
jmp 0x10039c81e
mov eax, dword [r8]
cmp rax, rdx
jne 0x10039c867
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x50]
jae 0x10039c9f7
mov rax, rsi
mov qword [rsp + 0x68], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039c809
xor r14d, r14d
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, r15
mov qword [rsp + 0x60], rax
mov rcx, rax
sub rcx, rdi
je 0x10039c910
mov r12, rcx
movzx ecx, byte [r14 + rdi]
inc r14
add ecx, 0x7cd8fefb
add r11d, ecx
add ecx, r9d
mov eax, ecx
imul eax, eax, 0x42b2
rol eax, 0xb
ror ecx, 0xb
xor eax, ecx
imul rax, rax, 0x7cd8fefb
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
mov dword [rsp + 0xb4], r9d
add r11d, r9d
cmp r14, r12
mov dword [rsp + 0xb0], r11d
jb 0x10039c89c
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
movzx ecx, word [r8 + rcx*2 + 8]
mov rax, qword [rax]
mov qword [rsp + 0x120], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039c93a
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x10039c93f
mov edx, 2
mov rdi, rbx
neg rdi
sub edx, 2
je 0x10039c965
cmp edx, 1
je 0x10039c955
or rdi, 0xffffffffffffffff
jmp 0x10039c96f
add rax, rdi
mov qword [rsp + 0x120], rax
mov rdi, r13
jmp 0x10039c96f
add dword [rsp + 0x120], edi
mov rdi, rbp
xor r14d, r14d
test rdi, rdi
je 0x10039c9ea
movzx ecx, byte [rsp + r14 + 0x120]
inc r14
add ecx, 0x7cd8fefb
add r11d, ecx
add ecx, r9d
mov eax, ecx
imul eax, eax, 0x42b2
rol eax, 0xb
ror ecx, 0xb
xor eax, ecx
imul rax, rax, 0x7cd8fefb
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
cmp r14, rdi
jb 0x10039c977
mov dword [rsp + 0xb4], r9d
mov dword [rsp + 0xb0], r11d
mov rax, qword [rsp + 0x60]
add rdi, rax
jmp 0x10039c7fa
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
xor r8d, r8d
mov r15, 0xfffffffffffff000
mov r10, qword [rsp + 0x48]
sub r10, rdi
mov bl, r8b
je 0x10039ca8a
movzx ecx, byte [rdi + r8]
inc r8
add ecx, 0x7cd8fefb
add r11d, ecx
add ecx, r9d
mov eax, ecx
imul eax, eax, 0x42b2
rol eax, 0xb
ror ecx, 0xb
xor eax, ecx
imul rax, rax, 0x7cd8fefb
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
mov dword [rsp + 0xb4], r9d
mov dword [rsp + 0xb0], r11d
cmp r8, r10
jb 0x10039ca1b
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, r13
mov al, byte [rsp + rax + 0xb0]
mov byte [rsp + rcx + 0x1a7], al
jb 0x10039ca8c
mov eax, 0x93089878
mov r11, qword [rsp + 0x30]
mov rdi, r11
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x50], r11
mov r9, r14
mov qword [rsp + 0x40], r12
and r9d, 7
mov qword [rsp + 0x28], r9
je 0x10039cff3
mov r11d, dword [rsp + 0x78]
xor r10d, r10d
mov esi, r11d
not esi
xor r14d, r14d
and dword [rsp + 0x24], r10d
test r9d, r9d
mov dword [rsp + 0x48], r10d
jle 0x10039cb30
lea r8d, [r10 + 0x38]
cmp r14d, ebp
movzx edx, byte [rdi]
jge 0x10039cb10
lea ecx, [r8 - 0x20]
shl edx, cl
or dword [rsp + 0x24], edx
jmp 0x10039cb18
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r14d
inc rdi
sub r8d, r13d
cmp r14d, r9d
jl 0x10039cafc
mov dword [rsp + 0x48], r10d
mov qword [rsp + 0x50], rdi
movzx edi, word [rsp + 0x1aa]
mov r8d, dword [rsp + 0x1ac]
mov edx, r8d
movzx r9d, word [rsp + 0x1ae]
xor edx, r11d
mov ecx, eax
movzx r10d, r8w
sub ecx, edx
xor esi, ecx
mov edx, esi
mov ecx, r10d
sub edx, eax
mov r14d, esi
ror edx, 1
ror r14d, 1
imul ecx, edx
add r14d, ecx
xor r14d, r11d
movzx r11d, ax
mov ecx, r14d
sub ecx, edi
xor ecx, r8d
xor esi, ecx
mov edx, esi
mov ecx, r11d
mov r8d, r9d
xor r8d, esi
rol r8d, 7
rol edx, 0xc
imul ecx, r8d
mov r8d, eax
sub ecx, edx
xor r14d, ecx
mov ecx, r9d
mov edx, r14d
sub r8d, r14d
ror r8d, 0xf
ror edx, 1
imul ecx, r8d
mov r8d, dword [rsp + 0x1ac]
add edx, ecx
xor esi, edx
mov ecx, esi
ror ecx, 0xa
xor ecx, r10d
imul ecx, r9d
xor r14d, ecx
mov edx, r14d
mov ecx, edi
add r8d, r14d
rol r8d, 9
ror edx, 0xe
imul ecx, r8d
mov r8d, dword [rsp + 0x24]
sub ecx, edx
xor esi, ecx
mov edx, esi
mov ecx, r10d
xor ecx, esi
ror edx, 5
imul ecx, r11d
xor edx, ecx
xor r14d, edx
mov ecx, r14d
mov edx, r10d
xor edx, r14d
shr ecx, 1
imul edx, r9d
add edx, ecx
xor esi, edx
mov edx, edi
mov ecx, esi
xor edx, esi
shr ecx, 0xa
imul edx, r10d
xor edx, ecx
mov ecx, r11d
xor r14d, edx
xor ecx, r14d
rol ecx, 4
imul edi, ecx
mov ecx, r14d
shr ecx, 8
xor r9d, r9d
add edi, ecx
mov ecx, dword [rsp + 0x1ac]
xor esi, edi
xor ecx, esi
mov edx, esi
xor esi, dword [rsp + 0x48]
ror ecx, 1
ror edx, 0xb
imul r11d, ecx
mov rcx, qword [rsp + 0x28]
xor edx, r11d
xor edx, r8d
mov r8d, esi
xor r14d, edx
mov edx, r14d
test ecx, ecx
jle 0x10039cc9e
mov rax, r12
cmp r9d, ebp
jge 0x10039cc7c
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039cc89
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039cc6b
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1a8]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039cfd9
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov r11, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x70]
mov rcx, rbp
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039cf23
mov r15, qword [rsp + 0x28]
mov edx, dword [rsp + 0x1ac]
mov r12d, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x48]
movzx ecx, dx
mov r11, qword [rsp + 0x40]
mov dword [rsp + 0x68], ecx
movzx ecx, ax
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rdi]
movzx r10d, byte [rdi + 1]
shl ecx, 8
movzx r9d, byte [rdi + 4]
shl r9d, 8
or r10d, ecx
shl r10d, 8
movzx ecx, byte [rdi + 2]
or r10d, ecx
shl r10d, 8
movzx ecx, byte [rdi + 3]
or r10d, ecx
movzx ecx, byte [rdi + 5]
or r9d, ecx
xor r14d, r10d
movzx ecx, byte [rdi + 6]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [rdi + 7]
add rdi, r13
shl r9d, 8
or r9d, ecx
mov ecx, edx
xor ecx, r14d
mov edx, eax
sub edx, ecx
mov ecx, dword [rsp + 0x68]
xor edx, r9d
xor esi, edx
mov edx, esi
mov r8d, esi
sub r8d, eax
ror r8d, 1
ror edx, 1
imul ecx, r8d
movzx r8d, word [rsp + 0x1ae]
add edx, ecx
xor r14d, edx
movzx edx, word [rsp + 0x1aa]
mov ecx, r14d
sub ecx, edx
mov edx, dword [rsp + 0x1ac]
xor ecx, edx
xor esi, ecx
xor r8d, esi
mov ecx, dword [rsp + 0x38]
mov edx, esi
rol r8d, 7
rol edx, 0xc
imul ecx, r8d
mov r8d, eax
sub ecx, edx
xor r14d, ecx
sub r8d, r14d
movzx ecx, word [rsp + 0x1ae]
mov edx, r14d
ror r8d, 0xf
ror edx, 1
imul ecx, r8d
add edx, ecx
mov r8d, dword [rsp + 0x1ac]
xor esi, edx
mov ecx, esi
ror ecx, 0xa
movzx edx, word [rsp + 0x1ae]
xor ecx, dword [rsp + 0x68]
imul ecx, edx
xor r14d, ecx
add r8d, r14d
rol r8d, 9
movzx ecx, word [rsp + 0x1aa]
mov edx, r14d
ror edx, 0xe
imul ecx, r8d
mov r8d, dword [rsp + 0x68]
sub ecx, edx
xor esi, ecx
mov ecx, r8d
mov edx, esi
ror edx, 5
xor ecx, esi
imul ecx, dword [rsp + 0x38]
xor edx, ecx
movzx ecx, word [rsp + 0x1ae]
xor r14d, edx
mov edx, r8d
xor edx, r14d
imul edx, ecx
mov ecx, r14d
shr ecx, 1
add edx, ecx
xor esi, edx
mov ecx, esi
movzx edx, word [rsp + 0x1aa]
xor edx, esi
shr ecx, 0xa
imul edx, r8d
xor edx, ecx
mov ecx, dword [rsp + 0x38]
xor r14d, edx
xor ecx, r14d
movzx edx, word [rsp + 0x1aa]
rol ecx, 4
imul edx, ecx
mov ecx, r14d
shr ecx, 8
add edx, ecx
xor esi, edx
mov r8d, esi
mov ecx, dword [rsp + 0x38]
mov edx, dword [rsp + 0x1ac]
xor edx, esi
xor esi, ebp
ror edx, 1
mov ebp, r9d
ror r8d, 0xb
imul ecx, edx
xor r8d, ecx
mov edx, dword [rsp + 0x1ac]
xor r8d, r12d
mov r12d, r10d
xor r14d, r8d
mov byte [r11 + 3], r14b
mov byte [r11 + 7], sil
xor bl, r14b
xor bl, sil
ror r14d, 8
mov byte [r11 + 2], r14b
ror esi, 8
xor bl, r14b
ror r14d, 8
xor bl, sil
mov byte [r11 + 6], sil
ror esi, 8
xor bl, r14b
mov byte [r11 + 1], r14b
mov byte [r11 + 5], sil
ror r14d, 8
mov byte [r11], r14b
xor bl, sil
ror esi, 8
mov cl, sil
xor cl, r14b
mov byte [r11 + 4], sil
add r11, r13
xor bl, cl
ror r14d, 8
ror esi, 8
sub r15, 1
jne 0x10039cd00
mov r12, qword [rsp + 0x80]
mov r11, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x70]
mov r15, 0xfffffffffffff000
mov al, byte [r11 + rbp + 8]
xor al, bl
je 0x10039d020
call fcn.10000228c
mov rbx, rax
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
lea r12, [0x10006d7ac]
and rbx, r15
mov qword [rax + 0x10], r12
and r10, 0xfffffffffffffff8
mov rax, qword [0x1003fe198]
lea r11, [r10 + 0xfff]
mov r8d, 0xffff
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039cf70
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
mov rax, qword [rsp + 0xe0]
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039d016
xor esi, esi
test ecx, ecx
jns 0x10039ccb4
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x10039ccb4
mov ecx, dword [rsp + 0x78]
mov dword [rsp + 0x24], ecx
xor esi, esi
not ecx
mov dword [rsp + 0x48], ecx
xor r14d, r14d
jmp 0x10039ccbe
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039d00b
jmp 0x10039a12b
mov rax, qword [0x10014dad0]
lea r13, [0x100000000]
mov rdi, r11
mov rsi, r13
sub rdi, r12
sub rsi, rax
jne 0x10039d045
test rdi, rdi
je 0x10039a120
xor r8d, r8d
lea r15, [0x100000000]
mov rcx, qword [0x100019a28]
lea r9d, [rcx - 1]
mov rbx, r12
sub rbx, r11
sub r11d, r13d
add ebp, r11d
test r9d, r9d
js 0x10039d09c
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp r11d, r10d
jae 0x10039d091
lea r9d, [rdx - 1]
jmp 0x10039d097
jbe 0x10039d0a4
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039d06b
movsxd r11, r8d
jmp 0x10039d125
mov r11, rdx
jmp 0x10039d125
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x10039a120
mov r8d, edx
mov r9, rdx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r13
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039d101
sub r8d, 1
je 0x10039d0fc
cmp r8d, 1
jne 0x10039d107
mov r10, rsi
jmp 0x10039d107
mov r10, rdi
jmp 0x10039d107
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039d117
cmp edx, 1
jne 0x10039d122
add qword [r9 + rbx], r10
jmp 0x10039d11b
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039d0a9
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039dcb8
mov ecx, dword [0x100246d40]
mov r9d, ebp
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039d19f
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x15d04]
and eax, r15d
mov r10, rdx
cmp r8d, eax
jae 0x10039d190
lea ecx, [rdx - 1]
jmp 0x10039d19a
jbe 0x10039d307
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039d16d
mov rdx, rbp
cmp rdx, rbp
je 0x10039dcb8
mov r8, rbp
mov r10d, dword [0x100015964]
mov eax, dword [rdx]
mov r14d, dword [rdx + 4]
and r14, r15
and eax, 7
mov qword [rsp + 0x68], r14
lea rdi, [rax + rdx + 8]
mov ecx, edi
mov qword [rsp + 0x30], rdi
sub r10, r14
inc r10
sub ecx, r13d
cmp r10, rbp
mov r9, r10
mov dword [rsp + 0x48], ecx
je 0x10039d21c
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r9, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r9, rbp
jne 0x10039d1ee
mov qword [0x1003fe198], rax
xor edx, edx
mov rax, r8
div r10
lea r12, [rsi + rdx]
mov esi, dword [rsp + 0x48]
mov ecx, esi
mov rdx, r14
mov r8, r12
mov qword [rsp + 0x80], r12
mov eax, 0xb07bda23
mov bl, bpl
lea rcx, [rsp + 0x160]
mov r11, qword [rdi + r14]
mov qword [rsp + 0x160], r11
mov eax, 0xf4079d05
mov rax, qword [0x10014dad0]
mov r11, qword [rsp + 0x160]
mov r9d, dword [rsp + 0x164]
mov rcx, r13
mov qword [rsp + 0x88], rbp
mov ebp, 4
and r11, r15
and r9, r15
mov r15, 0xfffffffffffff000
add r11, r13
lea r13d, [rbp + 4]
sub rcx, rax
mov qword [rsp + 0x58], rcx
jne 0x10039d326
xor r8d, r8d
test r9, r9
je 0x10039d61e
mov edx, dword [rsp + 0x88]
mov ecx, dword [rsp + 0x8c]
movzx eax, byte [r8 + r11]
inc r8
sub eax, 0x69eb8044
add edx, eax
add eax, ecx
mov ecx, eax
imul ecx, ecx, 0x7680
rol ecx, 0xc
ror eax, 0xc
xor ecx, eax
imul ecx, ecx, 0x96147fbc
imul ecx, ecx, 0x96147fbc
mov dword [rsp + 0x8c], ecx
add edx, ecx
mov dword [rsp + 0x88], edx
cmp r8, r9
jb 0x10039d2c0
jmp 0x10039d61e
mov eax, dword [rbx + r10*8 + 0x15d00]
mov edx, dword [rbx + rdx*8 + 0x15d04]
and edx, r15d
and eax, r12d
add edx, eax
add rdx, r13
jmp 0x10039d1a2
lea rdx, [0x100000000]
lea rax, [r11 + r9]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x78], rax
mov eax, r11d
sub eax, edx
mov r10d, eax
add r8, rdx
mov edx, dword [rcx + rdx + 0xb4]
mov ecx, eax
and r10, r15
add rcx, r9
sub rax, r10
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x60], rax
mov rax, rcx
and rax, r15
sub rcx, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x70], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x50], rcx
jmp 0x10039d399
mov eax, dword [r8]
cmp rax, r10
jae 0x10039d39e
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039d38a
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039d3e1
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039d3e1
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039d3e1
mov r9, qword [rsp + 0x60]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039d3e1
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039d3ca
mov r9d, dword [rsp + 0x88]
lea rbx, [0x100000000]
mov r12, qword [rsp + 0x58]
mov edx, dword [rsp + 0x8c]
mov r14, qword [rsp + 0x50]
mov ecx, 0xf000
cmp r8, r14
je 0x10039d5b5
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039d5b5
mov edi, dword [r8 + 4]
lea rax, [rdi - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039d44b
add r8, rdi
cmp r8, r14
je 0x10039d5b5
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039d5b5
xor esi, esi
jmp 0x10039d41d
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
jne 0x10039d469
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x70]
jae 0x10039d5b5
mov rax, rsi
mov qword [rsp + 0x60], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039d406
xor r14d, r14d
movzx ecx, word [r8 + rax*2 + 8]
and ecx, r10d
add ecx, dword [r8]
add rcx, rbx
mov qword [rsp + 0x58], rcx
mov rax, rcx
sub rax, r11
je 0x10039d4e3
mov rdi, rax
movzx eax, byte [r14 + r11]
inc r14
sub eax, 0x69eb8044
add r9d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0x7680
rol edx, 0xc
ror eax, 0xc
xor edx, eax
imul edx, edx, 0x96147fbc
imul edx, edx, 0x96147fbc
add r9d, edx
cmp r14, rdi
mov dword [rsp + 0x8c], edx
mov dword [rsp + 0x88], r9d
jb 0x10039d49e
mov rax, qword [rcx]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0x130], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039d50f
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039d515
mov r11d, 2
mov rcx, r12
neg rcx
sub r11d, 2
mov qword [rsp + 0x60], rcx
je 0x10039d547
cmp r11d, 1
je 0x10039d532
or rcx, 0xffffffffffffffff
jmp 0x10039d556
mov rcx, qword [rsp + 0x60]
add rax, rcx
mov rcx, r13
mov qword [rsp + 0x130], rax
jmp 0x10039d556
mov rcx, qword [rsp + 0x60]
add dword [rsp + 0x130], ecx
mov rcx, rbp
xor r11d, r11d
test rcx, rcx
je 0x10039d5a7
movzx eax, byte [rsp + r11 + 0x130]
inc r11
sub eax, 0x69eb8044
add r9d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0x7680
rol edx, 0xc
ror eax, 0xc
xor edx, eax
imul edx, edx, 0x96147fbc
imul edx, edx, 0x96147fbc
add r9d, edx
cmp r11, rcx
jb 0x10039d55e
mov dword [rsp + 0x8c], edx
mov dword [rsp + 0x88], r9d
mov rax, qword [rsp + 0x58]
lea r11, [rcx + rax]
jmp 0x10039d3fc
mov r14, qword [rsp + 0x68]
xor ecx, ecx
mov r12, qword [rsp + 0x80]
mov bl, cl
mov rdi, qword [rsp + 0x30]
mov r8, qword [rsp + 0x78]
sub r8, r11
je 0x10039d61a
movzx eax, byte [rcx + r11]
inc rcx
sub eax, 0x69eb8044
add r9d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0x7680
rol edx, 0xc
ror eax, 0xc
xor edx, eax
imul edx, edx, 0x96147fbc
imul edx, edx, 0x96147fbc
add r9d, edx
mov dword [rsp + 0x8c], edx
mov dword [rsp + 0x88], r9d
cmp rcx, r8
jb 0x10039d5d5
mov esi, dword [rsp + 0x48]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, r13
mov al, byte [rsp + rax + 0x88]
mov byte [rsp + rcx + 0x1c7], al
jb 0x10039d620
mov eax, 0xff748ecf
mov r11, rdi
mov rax, qword [rsp + 0x1c8]
mov r9, r14
and r9d, 7
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x40], r12
je 0x10039db7c
mov r14d, esi
not r14d
xor r10d, r10d
xor edi, edi
and dword [rsp + 0x38], r10d
test r9d, r9d
mov dword [rsp + 0x24], r10d
jle 0x10039d6b9
lea r8d, [r10 + 0x38]
movzx edx, byte [r11]
cmp edi, ebp
jge 0x10039d69a
lea ecx, [r8 - 0x20]
shl edx, cl
or dword [rsp + 0x38], edx
jmp 0x10039d6a2
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039d686
mov dword [rsp + 0x24], r10d
mov qword [rsp + 0x50], r11
movzx r9d, word [rsp + 0x1ce]
mov edx, esi
mov r8d, dword [rsp + 0x1cc]
movzx r10d, word [rsp + 0x1ca]
movzx r11d, r8w
mov ecx, esi
movzx edi, ax
shr ecx, 0xa
mov esi, edi
sub edx, r11d
imul edx, r9d
sub edx, ecx
xor r14d, edx
xor esi, r14d
mov ecx, r14d
ror ecx, 7
imul esi, r11d
sub esi, ecx
mov ecx, dword [rsp + 0x48]
xor esi, ecx
mov ecx, esi
sub ecx, r10d
sub ecx, r8d
xor r14d, ecx
mov edx, r14d
mov ecx, edi
mov r8d, r10d
xor r8d, r14d
rol r8d, 2
ror edx, 6
imul ecx, r8d
mov r8d, r9d
xor edx, ecx
xor esi, edx
mov ecx, eax
mov edx, r9d
xor ecx, esi
rol ecx, 6
imul edx, ecx
mov ecx, esi
shr ecx, 1
sub edx, ecx
xor r14d, edx
xor r8d, r14d
mov edx, r14d
mov ecx, r11d
rol r8d, 1
ror edx, 6
imul ecx, r8d
sub ecx, edx
xor esi, ecx
mov ecx, esi
not ecx
ror ecx, 2
add ecx, r10d
imul ecx, edi
xor r14d, ecx
mov edx, r14d
mov ecx, edi
mov r8d, r14d
sub r8d, dword [rsp + 0x1cc]
rol r8d, 3
ror edx, 0xd
imul ecx, r8d
add edx, ecx
xor esi, edx
mov edx, esi
mov r8d, dword [rsp + 0x1cc]
mov ecx, edi
xor ecx, esi
ror edx, 0xc
imul ecx, r9d
add edx, ecx
xor r14d, edx
mov edx, edi
mov ecx, r14d
xor edx, r14d
rol edx, 6
shr ecx, 3
imul edx, r11d
add edx, ecx
xor esi, edx
lea edx, [r8 + rsi]
xor r9d, r9d
mov ecx, esi
ror edx, 0xe
rol ecx, 0xe
imul edx, r10d
add ecx, edx
xor r14d, ecx
mov rcx, qword [rsp + 0x28]
mov r10d, r14d
xor r14d, dword [rsp + 0x24]
sub r10d, edi
xor r10d, dword [rsp + 0x38]
xor r10d, esi
xor r10d, r8d
test ecx, ecx
mov edx, r10d
mov r8d, r14d
jle 0x10039d82b
mov rax, r12
cmp r9d, ebp
jge 0x10039d809
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039d816
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039d7f8
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1c8]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039db61
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr r14d, cl
shl r14d, cl
mov r11, qword [rsp + 0x50]
mov ebp, dword [rsp + 0x24]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x68]
mov rcx, rsi
shr rcx, 3
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x10039daac
mov r15d, dword [rsp + 0x38]
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x40]
movzx ecx, word [rsp + 0x1ce]
mov r12d, dword [rsp + 0x1cc]
mov dword [rsp + 0x70], ecx
movzx ecx, r12w
mov dword [rsp + 0x48], ecx
movzx ecx, word [rsp + 0x1ca]
mov dword [rsp + 0x78], ecx
movzx ecx, ax
mov dword [rsp + 0x24], ecx
movzx r8d, byte [r11 + 4]
movzx ecx, byte [r11]
movzx r9d, byte [r11 + 1]
shl ecx, 8
shl r8d, 8
or r9d, ecx
movzx ecx, byte [r11 + 2]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r11 + 3]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r11 + 5]
or r8d, ecx
xor r10d, r9d
movzx ecx, byte [r11 + 6]
mov edx, r10d
shl r8d, 8
sub edx, dword [rsp + 0x48]
or r8d, ecx
shl r8d, 8
movzx ecx, byte [r11 + 7]
add r11, r13
or r8d, ecx
movzx ecx, word [rsp + 0x1ce]
imul edx, ecx
mov ecx, r10d
shr ecx, 0xa
sub edx, ecx
xor edx, r8d
xor r14d, edx
mov edx, r14d
mov ecx, dword [rsp + 0x24]
xor ecx, r14d
ror edx, 7
imul ecx, dword [rsp + 0x48]
sub ecx, edx
xor r10d, ecx
movzx edx, word [rsp + 0x1ca]
mov ecx, r10d
sub ecx, edx
sub ecx, r12d
xor r14d, ecx
xor edx, r14d
mov ecx, r14d
rol edx, 2
ror ecx, 6
imul edx, dword [rsp + 0x24]
xor ecx, edx
xor r10d, ecx
mov edx, eax
movzx ecx, word [rsp + 0x1ce]
xor edx, r10d
rol edx, 6
imul edx, ecx
mov ecx, r10d
shr ecx, 1
sub edx, ecx
xor r14d, edx
mov ecx, r14d
movzx edx, word [rsp + 0x1ce]
xor edx, r14d
rol edx, 1
ror ecx, 6
imul edx, dword [rsp + 0x48]
sub edx, ecx
xor r10d, edx
movzx edx, word [rsp + 0x1ca]
mov ecx, r10d
not ecx
ror ecx, 2
add ecx, edx
imul ecx, dword [rsp + 0x24]
xor r14d, ecx
mov ecx, r14d
mov edx, r14d
sub edx, r12d
rol edx, 3
ror ecx, 0xd
imul edx, dword [rsp + 0x24]
add ecx, edx
xor r10d, ecx
mov edx, r10d
mov ecx, dword [rsp + 0x24]
xor ecx, r10d
ror edx, 0xc
imul ecx, dword [rsp + 0x70]
add edx, ecx
xor r14d, edx
mov edx, dword [rsp + 0x24]
xor edx, r14d
mov ecx, r14d
shr ecx, 3
rol edx, 6
imul edx, dword [rsp + 0x48]
add edx, ecx
xor r10d, edx
mov ecx, r10d
lea edx, [r10 + r12]
ror edx, 0xe
rol ecx, 0xe
imul edx, dword [rsp + 0x78]
add ecx, edx
xor r14d, ecx
mov ecx, r14d
xor r14d, ebp
sub ecx, dword [rsp + 0x24]
xor ecx, r15d
xor r10d, ecx
mov ebp, r8d
mov r15d, r9d
xor r10d, r12d
xor bl, r10b
mov byte [rdi + 3], r10b
mov byte [rdi + 7], r14b
xor bl, r14b
ror r10d, 8
ror r14d, 8
xor bl, r10b
mov byte [rdi + 2], r10b
ror r10d, 8
xor bl, r14b
mov byte [rdi + 6], r14b
ror r14d, 8
xor bl, r10b
mov byte [rdi + 1], r10b
mov byte [rdi + 5], r14b
ror r10d, 8
xor bl, r14b
ror r14d, 8
mov byte [rdi], r10b
mov byte [rdi + 4], r14b
mov cl, r14b
xor cl, r10b
add rdi, r13
xor bl, cl
ror r10d, 8
ror r14d, 8
sub rsi, 1
jne 0x10039d8a9
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x30]
mov al, byte [rdi + rsi + 8]
xor al, bl
je 0x10039dba4
call fcn.10000228c
lea r12, [0x10006d7ac]
mov r8d, 0xffff
mov rbx, rax
mov rax, qword [rsp + 0xd8]
and rbx, r15
mov qword [rax + 0x10], r12
lea r10, [rax + 0x18]
and r10, 0xfffffffffffffff8
mov rax, qword [0x1003fe198]
lea r11, [r10 + 0xfff]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039daf8
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
mov rax, qword [rsp + 0xe0]
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039db9a
xor r14d, r14d
test ecx, ecx
jns 0x10039d843
neg ecx
shl ecx, 3
shr r10d, cl
shl r10d, cl
jmp 0x10039d843
mov ebp, esi
mov dword [rsp + 0x38], esi
not ebp
xor r14d, r14d
xor r10d, r10d
jmp 0x10039d851
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039db8f
jmp 0x10039a12b
lea r14, [0x100000000]
mov rbp, rdi
mov r13, r14
sub rbp, r12
mov rax, qword [0x10014dad0]
sub r13, rax
jne 0x10039dbc9
test rbp, rbp
je 0x10039a120
mov rcx, qword [0x100019a28]
lea r15, [0x100000000]
mov rbx, r12
xor r8d, r8d
lea r9d, [rcx - 1]
sub rbx, rdi
sub edi, r14d
add esi, edi
test r9d, r9d
js 0x10039dc1f
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039dc14
lea r9d, [rdx - 1]
jmp 0x10039dc1a
jbe 0x10039dc27
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039dbee
movsxd r11, r8d
jmp 0x10039dca8
mov r11, rdx
jmp 0x10039dca8
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, esi
jae 0x10039a120
mov r9, rdx
mov r8d, edx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r14
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039dc84
sub r8d, 1
je 0x10039dc7f
cmp r8d, 1
jne 0x10039dc8a
mov r10, r13
jmp 0x10039dc8a
mov r10, rbp
jmp 0x10039dc8a
mov r10, r13
sub r10, rbp
sub edx, 2
je 0x10039dc9a
cmp edx, 1
jne 0x10039dca5
add qword [r9 + rbx], r10
jmp 0x10039dc9e
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039dc2c
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039e87c
mov r8d, edi
mov r9d, ebp
sub r8d, r13d
mov ecx, dword [0x1000573e4]
sub ecx, r11d
js 0x10039dd22
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x24a1b4]
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x10039dd13
lea ecx, [rdx - 1]
jmp 0x10039dd1d
jbe 0x10039de9d
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039dcf0
mov rdx, rbp
cmp rdx, rbp
je 0x10039e87c
mov r8, rbp
mov r11d, dword [0x100015964]
mov eax, dword [rdx + 4]
mov r14d, dword [rdx]
and eax, 7
shr r14, 1
lea rdi, [rax + rdx + 8]
and r14, r15
sub r11, r14
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x40], r14
inc r11
mov r9d, edi
sub r9d, r13d
mov r10, r11
mov dword [rsp + 0x68], r9d
cmp r11, rbp
je 0x10039dda4
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x10039dd76
mov qword [0x1003fe198], rax
mov rax, r8
mov ecx, r9d
xor edx, edx
div r11
lea r12, [rsi + rdx]
mov rdx, r14
mov r8, r12
mov qword [rsp + 0x80], r12
mov eax, 0x7298e1bc
mov r11, qword [rdi + r14]
lea rcx, [rsp + 0x170]
mov qword [rsp + 0x170], r11
mov bl, bpl
mov eax, 0xff15c3bd
mov rcx, r13
mov r11, qword [rsp + 0x170]
mov r9d, dword [rsp + 0x174]
mov rax, qword [0x10014dad0]
mov qword [rsp + 0xd0], rbp
mov ebp, 4
and r11, r15
and r9, r15
add r11, r13
lea r13d, [rbp + 4]
mov r15, 0xfffffffffffff000
sub rcx, rax
mov qword [rsp + 0x58], rcx
jne 0x10039debc
xor r10d, r10d
test r9, r9
je 0x10039e1e9
mov esi, 0xb0053e08
mov r8d, dword [rsp + 0xd0]
mov edx, dword [rsp + 0xd4]
movzx ecx, byte [r10 + r11]
inc r10
sub ecx, 0x4ffac1f8
add r8d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0xf80c
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rsi
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov edx, dword [rsp + 0x28]
add edx, eax
mov dword [rsp + 0xd4], edx
add r8d, edx
cmp r10, r9
mov dword [rsp + 0xd0], r8d
jb 0x10039de4b
jmp 0x10039e1e9
mov edx, dword [rbx + rdx*8 + 0x24a1b4]
and edx, r15d
mov eax, dword [rbx + r10*8 + 0x24a1b0]
and eax, r12d
add edx, eax
add rdx, r13
jmp 0x10039dd25
lea rax, [r11 + r9]
lea rdx, [0x100000000]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x48], rax
mov eax, r11d
sub eax, edx
mov r10d, eax
add r8, rdx
and r10, r15
mov edx, dword [rcx + rdx + 0xb4]
mov qword [rsp + 0x28], r10
mov ecx, eax
add rcx, r9
sub rax, r10
mov qword [rsp + 0x60], rax
mov rax, rcx
and rax, r15
mov qword [rsp + 0x50], rax
sub rcx, rax
mov qword [rsp + 0x78], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x70], rcx
jmp 0x10039df2f
mov eax, dword [r8]
cmp rax, r10
jae 0x10039df34
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039df20
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039df77
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039df77
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039df77
mov r9, qword [rsp + 0x60]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039df77
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039df60
mov edx, dword [rsp + 0xd4]
mov r12, qword [rsp + 0x58]
mov r9d, dword [rsp + 0xd0]
lea r15, [0x100000000]
mov ecx, 0xf000
mov r14d, 0xb0053e08
mov rdi, qword [rsp + 0x70]
cmp r8, rdi
je 0x10039e169
mov eax, dword [r8]
cmp rax, qword [rsp + 0x50]
ja 0x10039e169
mov ebx, dword [r8 + 4]
lea rax, [rbx - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039dfe7
add r8, rbx
cmp r8, rdi
je 0x10039e169
mov eax, dword [r8]
cmp rax, qword [rsp + 0x50]
ja 0x10039e169
xor esi, esi
jmp 0x10039dfb9
mov eax, dword [r8]
cmp rax, qword [rsp + 0x50]
jne 0x10039e005
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x10039e169
mov rax, rsi
mov qword [rsp + 0x60], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039dfa2
movzx eax, word [r8 + rax*2 + 8]
xor edi, edi
and eax, r10d
add eax, dword [r8]
add rax, r15
mov rcx, rax
mov qword [rsp + 0x58], rax
sub rcx, r11
je 0x10039e08b
mov rbx, rcx
movzx ecx, byte [rdi + r11]
inc rdi
sub ecx, 0x4ffac1f8
add r9d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0xf80c
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, r14
mov qword [rsp + 0x28], rax
mov edx, dword [rsp + 0x28]
shr rax, 0x20
add edx, eax
add r9d, edx
cmp rdi, rbx
mov dword [rsp + 0xd4], edx
mov dword [rsp + 0xd0], r9d
jb 0x10039e039
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rax]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0xf8], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039e0b7
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039e0bd
mov r11d, 2
mov rcx, r12
neg rcx
mov qword [rsp + 0x60], rcx
sub r11d, 2
je 0x10039e0ef
cmp r11d, 1
je 0x10039e0da
or r11, 0xffffffffffffffff
jmp 0x10039e0fe
mov r11, r13
mov rcx, qword [rsp + 0x60]
add rax, rcx
mov qword [rsp + 0xf8], rax
jmp 0x10039e0fe
mov r11, rbp
mov rcx, qword [rsp + 0x60]
add dword [rsp + 0xf8], ecx
xor r14d, r14d
test r11, r11
je 0x10039e15c
mov edi, 0xb0053e08
movzx ecx, byte [rsp + r14 + 0xf8]
inc r14
sub ecx, 0x4ffac1f8
add r9d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0xf80c
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rdi
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov edx, dword [rsp + 0x28]
add edx, eax
add r9d, edx
cmp r14, r11
jb 0x10039e10b
mov dword [rsp + 0xd4], edx
mov dword [rsp + 0xd0], r9d
mov rax, qword [rsp + 0x58]
add r11, rax
jmp 0x10039df92
mov r15, 0xfffffffffffff000
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
xor r8d, r8d
sub r10, r11
mov rdi, qword [rsp + 0x30]
mov bl, r8b
je 0x10039e1e9
mov edi, 0xb0053e08
movzx ecx, byte [r11 + r8]
inc r8
sub ecx, 0x4ffac1f8
add r9d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0xf80c
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rdi
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov edx, dword [rsp + 0x28]
add edx, eax
mov dword [rsp + 0xd4], edx
add r9d, edx
mov dword [rsp + 0xd0], r9d
cmp r8, r10
jb 0x10039e197
mov rdi, qword [rsp + 0x30]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xd0]
cmp rcx, r13
mov byte [rsp + rcx + 0x1af], al
jb 0x10039e1eb
mov eax, 0x94a1d534
mov rax, qword [rsp + 0x1b0]
mov r9, r14
and r9d, 7
mov ecx, dword [rsp + 0x68]
mov r11, rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x28], r9
je 0x10039e73e
mov r14d, ecx
xor r10d, r10d
mov dword [rsp + 0x38], r10d
not r14d
xor esi, esi
xor edi, edi
test r9d, r9d
mov dword [rsp + 0x48], esi
jle 0x10039e28f
lea r8d, [r10 + 0x38]
movzx edx, byte [r11]
cmp edi, ebp
jge 0x10039e268
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x10039e270
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039e256
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x38], r10d
mov qword [rsp + 0x50], r11
movzx r11d, word [rsp + 0x1b2]
movzx r9d, word [rsp + 0x1b4]
movzx r10d, word [rsp + 0x1b6]
movzx edi, ax
mov r8d, eax
mov esi, r14d
sub esi, dword [rsp + 0x1b4]
sub esi, edi
xor esi, ecx
mov ecx, esi
ror ecx, 6
xor ecx, r10d
imul ecx, r11d
xor r14d, ecx
sub r8d, r14d
mov ecx, r9d
mov edx, r14d
ror r8d, 7
rol edx, 0xe
imul ecx, r8d
mov r8d, eax
add edx, ecx
xor esi, edx
mov ecx, edi
xor ecx, esi
mov edx, esi
ror edx, 1
imul ecx, r11d
xor edx, ecx
xor r14d, edx
mov ecx, r14d
sub ecx, edi
xor ecx, dword [rsp + 0x1b4]
xor esi, ecx
mov edx, esi
mov ecx, r10d
xor r8d, esi
ror r8d, 2
rol edx, 5
imul ecx, r8d
xor edx, ecx
xor r14d, edx
mov ecx, r14d
mov edx, r14d
sub edx, eax
rol edx, 2
ror ecx, 0xc
imul r9d, edx
add ecx, r9d
mov r9d, dword [rsp + 0x1b4]
mov edx, r11d
xor esi, ecx
mov ecx, edi
xor ecx, esi
rol ecx, 6
imul edx, ecx
mov ecx, esi
shr ecx, 0xe
add edx, ecx
mov ecx, edi
xor r14d, edx
mov r8d, r14d
sub r8d, r9d
mov edx, r14d
ror r8d, 1
ror edx, 0xd
imul ecx, r8d
sub ecx, edx
xor esi, ecx
mov ecx, esi
mov edx, esi
sub edx, eax
ror edx, 0xa
ror ecx, 3
imul r10d, edx
xor ecx, r10d
mov edx, eax
mov r10d, eax
xor r14d, ecx
mov ecx, r9d
xor edx, r14d
sub ecx, edx
xor esi, ecx
mov edx, dword [rsp + 0x48]
xor r10d, r9d
xor r9d, r9d
xor r10d, r14d
xor r10d, esi
mov ecx, r10d
xor r10d, dword [rsp + 0x38]
ror ecx, 0xf
sub ecx, edi
imul ecx, r11d
xor ecx, edx
mov r8d, r10d
xor esi, ecx
mov rcx, qword [rsp + 0x28]
test ecx, ecx
mov edx, esi
jle 0x10039e3fc
mov rax, r12
cmp r9d, ebp
jge 0x10039e3da
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039e3e7
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039e3c9
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x1b0]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039e725
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr r10d, cl
shl r10d, cl
mov ebp, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov r11, qword [rsp + 0x50]
mov rcx, r14
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039e671
movzx edx, ax
movzx ecx, word [rsp + 0x1b4]
mov r14, qword [rsp + 0x28]
mov r15d, dword [rsp + 0x48]
mov rdi, qword [rsp + 0x58]
mov dword [rsp + 0x78], ecx
movzx ecx, word [rsp + 0x1b6]
mov dword [rsp + 0x68], ecx
mov ecx, eax
xor ecx, dword [rsp + 0x1b4]
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x70], ecx
movzx ecx, word [rsp + 0x1b2]
mov r12d, dword [rsp + 0x70]
mov dword [rsp + 0x24], ecx
movzx r8d, byte [r11 + 4]
movzx ecx, byte [r11]
shl ecx, 8
shl r8d, 8
movzx r9d, byte [r11 + 1]
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r11 + 2]
or r9d, ecx
movzx ecx, byte [r11 + 3]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r11 + 5]
or r8d, ecx
movzx ecx, byte [r11 + 6]
shl r8d, 8
or r8d, ecx
movzx ecx, byte [r11 + 7]
add r11, r13
shl r8d, 8
or r8d, ecx
xor r10d, r8d
mov ecx, r10d
sub ecx, dword [rsp + 0x1b4]
sub ecx, edx
xor ecx, r9d
xor esi, ecx
movzx edx, word [rsp + 0x1b6]
mov ecx, esi
ror ecx, 6
xor ecx, edx
movzx edx, word [rsp + 0x1b2]
imul ecx, edx
xor r10d, ecx
mov ecx, r10d
mov edx, eax
sub edx, r10d
ror edx, 7
rol ecx, 0xe
imul edx, dword [rsp + 0x78]
add ecx, edx
xor esi, ecx
mov ecx, dword [rsp + 0x38]
mov edx, esi
xor ecx, esi
ror edx, 1
imul ecx, dword [rsp + 0x24]
xor edx, ecx
xor r10d, edx
mov ecx, r10d
mov edx, eax
sub ecx, dword [rsp + 0x38]
xor ecx, dword [rsp + 0x1b4]
xor esi, ecx
mov ecx, esi
xor edx, esi
ror edx, 2
rol ecx, 5
imul edx, dword [rsp + 0x68]
xor ecx, edx
xor r10d, ecx
mov edx, r10d
mov ecx, r10d
sub edx, eax
rol edx, 2
ror ecx, 0xc
imul edx, dword [rsp + 0x78]
add ecx, edx
xor esi, ecx
mov edx, dword [rsp + 0x38]
movzx ecx, word [rsp + 0x1b2]
xor edx, esi
rol edx, 6
imul edx, ecx
mov ecx, esi
shr ecx, 0xe
add edx, ecx
xor r10d, edx
mov edx, r10d
sub edx, dword [rsp + 0x1b4]
ror edx, 1
imul edx, dword [rsp + 0x38]
mov ecx, r10d
ror ecx, 0xd
sub edx, ecx
xor esi, edx
mov ecx, esi
mov edx, esi
sub edx, eax
ror edx, 0xa
ror ecx, 3
imul edx, dword [rsp + 0x68]
xor ecx, edx
xor r10d, ecx
mov edx, eax
mov ecx, dword [rsp + 0x1b4]
xor edx, r10d
xor r10d, r12d
sub ecx, edx
mov edx, dword [rsp + 0x38]
xor esi, ecx
xor r10d, esi
mov ecx, r10d
xor r10d, ebp
ror ecx, 0xf
mov ebp, r8d
sub ecx, edx
imul ecx, dword [rsp + 0x24]
xor ecx, r15d
mov r15d, r9d
xor esi, ecx
xor bl, sil
xor bl, r10b
mov byte [rdi + 3], sil
ror esi, 8
mov byte [rdi + 7], r10b
ror r10d, 8
xor bl, sil
mov byte [rdi + 2], sil
ror esi, 8
mov byte [rdi + 6], r10b
xor bl, r10b
ror r10d, 8
mov byte [rdi + 1], sil
xor bl, sil
mov byte [rdi + 5], r10b
ror esi, 8
xor bl, r10b
ror r10d, 8
xor bl, r10b
xor bl, sil
mov byte [rdi], sil
ror esi, 8
mov byte [rdi + 4], r10b
ror r10d, 8
add rdi, r13
sub r14, 1
jne 0x10039e488
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
xor bl, byte [rdi + r14 + 8]
je 0x10039e765
call fcn.10000228c
mov rbx, rax
mov r8d, 0xffff
lea r12, [0x10006d7ac]
and rbx, r15
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
and r10, 0xfffffffffffffff8
mov rax, qword [0x1003fe198]
lea r11, [r10 + 0xfff]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039e6bc
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
mov rax, qword [rsp + 0xe0]
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039e75b
xor r10d, r10d
test ecx, ecx
jns 0x10039e414
neg ecx
shl ecx, 3
shr esi, cl
shl esi, cl
jmp 0x10039e414
xor r10d, r10d
mov ebp, ecx
xor esi, esi
mov dword [rsp + 0x48], ecx
not ebp
jmp 0x10039e427
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039e750
jmp 0x10039a12b
mov rsi, rdi
mov rax, qword [0x10014dad0]
lea r15, [0x100000000]
sub rsi, r12
mov rbp, r15
sub rbp, rax
jne 0x10039e78a
test rsi, rsi
je 0x10039a120
xor r8d, r8d
mov rbx, r12
mov rcx, qword [0x100019a28]
lea r9d, [rcx - 1]
sub rbx, rdi
sub edi, r15d
lea r13d, [r14 + rdi]
lea r14, [0x100000000]
test r9d, r9d
js 0x10039e7e2
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r14 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039e7d7
lea r9d, [rdx - 1]
jmp 0x10039e7dd
jbe 0x10039e7ea
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039e7b1
movsxd r11, r8d
jmp 0x10039e86c
mov r11, rdx
jmp 0x10039e86c
mov edx, dword [r14 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x10039a120
mov r8d, edx
mov r9, rdx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r15
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039e848
sub r8d, 1
je 0x10039e843
cmp r8d, 1
jne 0x10039e84e
mov r10, rbp
jmp 0x10039e84e
mov r10, rsi
jmp 0x10039e84e
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x10039e85e
cmp edx, 1
jne 0x10039e869
add qword [r9 + rbx], r10
jmp 0x10039e862
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039e7ef
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039f490
mov ecx, dword [0x1003c63c4]
mov r9d, ebp
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039e8e8
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x268ad8]
shr eax, 1
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x10039e8d9
lea ecx, [rdx - 1]
jmp 0x10039e8e3
jbe 0x10039ea76
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039e8b4
mov rdx, rbp
cmp rdx, rbp
je 0x10039f490
mov r8, rbp
mov ebx, dword [rdx]
mov eax, dword [rdx + 4]
and rbx, r15
mov r11d, dword [0x100015964]
and eax, 7
lea r14, [rax + rdx + 8]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x30], r14
mov r9d, r14d
sub r11, rbx
inc r11
sub r9d, r13d
mov r10, r11
cmp r11, rbp
mov dword [rsp + 0x68], r9d
je 0x10039e966
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x10039e938
mov qword [0x1003fe198], rax
mov rax, r8
mov ecx, r9d
xor edx, edx
div r11
lea r12, [rsi + rdx]
mov qword [rsp + 0x80], r12
mov rdx, rbx
mov r8, r12
mov eax, 0x7e720ef9
mov r11, qword [rbx + r14]
lea rcx, [rsp + 0x180]
mov bl, bpl
mov qword [rsp + 0x180], r11
mov eax, 0x3b9aca99
mov rcx, r13
mov rax, qword [0x10014dad0]
mov rdi, qword [rsp + 0x180]
mov r9d, dword [rsp + 0x184]
and rdi, r15
and r9, r15
mov qword [rsp + 0x98], rbp
add rdi, r13
sub rcx, rax
mov qword [rsp + 0x60], rcx
mov r15, 0xfffffffffffff000
mov ebp, 4
lea r13d, [rbp + 4]
jne 0x10039ea97
xor r10d, r10d
test r9, r9
je 0x10039edf6
mov r8d, dword [rsp + 0x98]
mov eax, dword [rsp + 0x9c]
movzx ecx, byte [r10 + rdi]
inc r10
add ecx, 0x7e62aa84
add r8d, ecx
add ecx, eax
mov eax, ecx
imul eax, eax, 0x1f9e
rol eax, 4
ror ecx, 4
xor eax, ecx
imul rax, rax, 0x7e62aa84
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
add r8d, eax
mov dword [rsp + 0x9c], eax
cmp r10, r9
mov dword [rsp + 0x98], r8d
jb 0x10039ea08
jmp 0x10039edf6
mov edx, dword [rbx + rdx*8 + 0x268ad8]
mov eax, dword [rbx + r10*8 + 0x268adc]
shr edx, 1
and eax, r12d
and edx, r15d
add edx, eax
add rdx, r13
jmp 0x10039e8eb
movsxd rcx, dword [0x10000003c]
lea rax, [rdi + r9]
lea rdx, [0x100000000]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x48], rax
mov eax, edi
sub eax, edx
add r8, rdx
mov r11d, eax
mov edx, dword [rcx + rdx + 0xb4]
mov ecx, eax
add rcx, r9
and r11, r15
sub rax, r11
mov qword [rsp + 0x28], rax
mov rax, rcx
and rax, r15
sub rcx, rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x70], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x40], rcx
jmp 0x10039eb04
mov eax, dword [r8]
cmp rax, r11
jae 0x10039eb09
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039eaf5
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039eb4a
mov eax, dword [r8]
cmp rax, r11
jne 0x10039eb4a
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039eb4a
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039eb4a
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039eb33
mov r9d, dword [rsp + 0x9c]
mov rbx, qword [rsp + 0x60]
mov r11d, dword [rsp + 0x98]
lea r15, [0x100000000]
mov ecx, 0xf000
mov r14, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x58]
cmp r8, r14
je 0x10039ed63
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039ed63
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039ebb7
add r8, r12
cmp r8, r14
je 0x10039ed63
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039ed63
xor esi, esi
jmp 0x10039eb8a
mov eax, dword [r8]
cmp rax, rdx
jne 0x10039ebd3
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x70]
jae 0x10039ed63
mov rax, rsi
inc rsi
mov qword [rsp + 0x78], rax
test word [r8 + rax*2 + 8], cx
je 0x10039eb75
movzx eax, word [r8 + rax*2 + 8]
xor r14d, r14d
and eax, r10d
add eax, dword [r8]
add rax, r15
mov rcx, rax
mov qword [rsp + 0x60], rax
sub rcx, rdi
je 0x10039ec7c
mov r12, rcx
movzx ecx, byte [r14 + rdi]
inc r14
add ecx, 0x7e62aa84
add r11d, ecx
add ecx, r9d
mov eax, ecx
imul eax, eax, 0x1f9e
rol eax, 4
ror ecx, 4
xor eax, ecx
imul rax, rax, 0x7e62aa84
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
cmp r14, r12
mov dword [rsp + 0x9c], r9d
mov dword [rsp + 0x98], r11d
jb 0x10039ec08
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x78]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0x108], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039eca6
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x10039ecab
mov edx, 2
mov rdi, rbx
neg rdi
sub edx, 2
je 0x10039ecd1
cmp edx, 1
je 0x10039ecc1
or rdi, 0xffffffffffffffff
jmp 0x10039ecdb
add rax, rdi
mov qword [rsp + 0x108], rax
mov rdi, r13
jmp 0x10039ecdb
add dword [rsp + 0x108], edi
mov rdi, rbp
xor r14d, r14d
test rdi, rdi
je 0x10039ed56
movzx ecx, byte [rsp + r14 + 0x108]
inc r14
add ecx, 0x7e62aa84
add r11d, ecx
add ecx, r9d
mov eax, ecx
imul eax, eax, 0x1f9e
rol eax, 4
ror ecx, 4
xor eax, ecx
imul rax, rax, 0x7e62aa84
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
add r11d, r9d
cmp r14, rdi
jb 0x10039ece3
mov dword [rsp + 0x9c], r9d
mov dword [rsp + 0x98], r11d
mov rax, qword [rsp + 0x60]
add rdi, rax
jmp 0x10039eb66
xor r8d, r8d
mov bl, r8b
mov r10, qword [rsp + 0x48]
mov r15, 0xfffffffffffff000
mov r14, qword [rsp + 0x30]
sub r10, rdi
mov r12, qword [rsp + 0x80]
je 0x10039edf6
movzx ecx, byte [rdi + r8]
inc r8
add ecx, 0x7e62aa84
add r11d, ecx
add ecx, r9d
mov eax, ecx
imul eax, eax, 0x1f9e
rol eax, 4
ror ecx, 4
xor eax, ecx
imul rax, rax, 0x7e62aa84
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r9d, edx
sar r9d, 0x1f
btr r9d, 0x1f
add r9d, edx
mov dword [rsp + 0x9c], r9d
add r11d, r9d
mov dword [rsp + 0x98], r11d
cmp r8, r10
jb 0x10039ed87
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, r13
mov al, byte [rsp + rax + 0x98]
mov byte [rsp + rcx + 0x18f], al
jb 0x10039edf8
mov eax, 0x8bd3d7ca
mov r9, qword [rsp + 0x50]
mov r11, r14
and r9d, 7
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x58], r12
je 0x10039f34f
xor r10d, r10d
mov edx, dword [rsp + 0x68]
xor esi, esi
mov dword [rsp + 0x48], r10d
xor edi, edi
not edx
mov dword [rsp + 0x70], edx
test r9d, r9d
mov dword [rsp + 0x24], esi
jle 0x10039ee9e
lea r8d, [r10 + 0x38]
cmp edi, ebp
movzx edx, byte [r11]
jge 0x10039ee77
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x10039ee7f
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039ee65
mov edx, dword [rsp + 0x70]
mov dword [rsp + 0x24], esi
mov dword [rsp + 0x48], r10d
mov qword [rsp + 0x40], r11
mov edi, dword [rsp + 0x194]
movzx r11d, ax
movzx r10d, word [rsp + 0x194]
mov r8d, dword [rsp + 0x194]
mov esi, dword [rsp + 0x194]
mov ecx, eax
movzx r9d, word [rsp + 0x192]
xor edi, eax
xor ecx, edx
xor edi, edx
mov edx, r11d
sub esi, ecx
xor esi, dword [rsp + 0x68]
xor edi, esi
mov ecx, edi
xor edx, edi
shr ecx, 8
imul edx, r10d
add edx, ecx
xor esi, edx
mov edx, esi
sub r8d, esi
mov ecx, r9d
ror r8d, 3
ror edx, 8
imul ecx, r8d
mov r8d, dword [rsp + 0x194]
add edx, ecx
xor edi, edx
xor r8d, edi
mov ecx, r11d
mov edx, edi
ror r8d, 6
rol edx, 5
imul ecx, r8d
movzx r8d, word [rsp + 0x196]
add edx, ecx
xor esi, edx
mov ecx, esi
ror ecx, 0xa
sub ecx, r8d
imul ecx, r10d
xor edi, ecx
mov ecx, r8d
xor ecx, edi
mov edx, edi
ror edx, 0xf
imul ecx, r10d
sub ecx, edx
xor esi, ecx
mov edx, r10d
mov ecx, esi
xor edx, esi
shr ecx, 0xb
imul edx, r9d
xor edx, ecx
xor edi, edx
mov ecx, r9d
mov edx, r11d
xor ecx, edi
rol ecx, 4
imul edx, ecx
mov ecx, edi
shr ecx, 0xc
add edx, ecx
xor esi, edx
lea ecx, [rax + rsi]
rol ecx, 0xf
mov edx, esi
ror edx, 0xe
imul r8d, ecx
add edx, r8d
xor edi, edx
mov ecx, edi
sub ecx, r10d
mov edx, dword [rsp + 0x24]
sub ecx, eax
xor esi, ecx
mov ecx, esi
not ecx
ror ecx, 0xd
add ecx, r9d
imul ecx, r11d
xor r9d, r9d
xor edi, ecx
mov ecx, edi
xor r10d, edi
xor edi, dword [rsp + 0x48]
rol r10d, 6
mov r8d, edi
rol ecx, 0xe
imul r11d, r10d
add ecx, r11d
xor ecx, edx
xor esi, ecx
mov rcx, qword [rsp + 0x28]
test ecx, ecx
mov edx, esi
jle 0x10039f007
mov rax, r12
cmp r9d, ebp
jge 0x10039efe5
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039eff2
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039efd4
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x190]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039f337
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr edi, cl
shl edi, cl
mov r11, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
mov rcx, rbp
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039f281
mov r12d, dword [rsp + 0x24]
mov r15, qword [rsp + 0x58]
movzx ecx, ax
mov r14, qword [rsp + 0x28]
mov ebp, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x194]
xor r8d, eax
mov dword [rsp + 0x70], r8d
mov dword [rsp + 0x38], ecx
mov edx, dword [rsp + 0x194]
movzx r9d, byte [r11 + 4]
movzx ecx, byte [r11]
movzx r10d, byte [r11 + 1]
shl ecx, 8
shl r9d, 8
or r10d, ecx
shl r10d, 8
movzx ecx, byte [r11 + 2]
or r10d, ecx
shl r10d, 8
movzx ecx, byte [r11 + 3]
or r10d, ecx
movzx ecx, byte [r11 + 5]
or r9d, ecx
movzx ecx, byte [r11 + 6]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r11 + 7]
add r11, r13
shl r9d, 8
or r9d, ecx
mov ecx, eax
xor edi, r9d
xor ecx, edi
xor edi, r8d
mov r8d, dword [rsp + 0x194]
sub edx, ecx
xor edx, r10d
xor esi, edx
xor edi, esi
movzx ecx, word [rsp + 0x194]
mov edx, dword [rsp + 0x38]
xor edx, edi
imul edx, ecx
mov ecx, edi
shr ecx, 8
add edx, ecx
xor esi, edx
mov edx, esi
movzx ecx, word [rsp + 0x192]
sub r8d, esi
ror r8d, 3
ror edx, 8
imul ecx, r8d
add edx, ecx
xor edi, edx
mov ecx, dword [rsp + 0x38]
mov edx, edi
mov r8d, dword [rsp + 0x194]
xor r8d, edi
ror r8d, 6
rol edx, 5
imul ecx, r8d
add edx, ecx
xor esi, edx
movzx edx, word [rsp + 0x196]
mov ecx, esi
ror ecx, 0xa
sub ecx, edx
movzx r8d, word [rsp + 0x194]
imul ecx, r8d
xor edi, ecx
mov edx, edi
movzx ecx, word [rsp + 0x196]
xor ecx, edi
ror edx, 0xf
imul ecx, r8d
sub ecx, edx
xor esi, ecx
mov ecx, esi
mov edx, r8d
xor edx, esi
movzx r8d, word [rsp + 0x192]
shr ecx, 0xb
imul edx, r8d
xor edx, ecx
mov ecx, r8d
xor edi, edx
xor ecx, edi
mov edx, dword [rsp + 0x38]
rol ecx, 4
imul edx, ecx
mov ecx, edi
shr ecx, 0xc
add edx, ecx
xor esi, edx
mov r8d, esi
movzx ecx, word [rsp + 0x196]
lea edx, [rax + rsi]
rol edx, 0xf
ror r8d, 0xe
imul ecx, edx
add r8d, ecx
movzx edx, word [rsp + 0x194]
xor edi, r8d
mov ecx, edi
sub ecx, edx
movzx r8d, word [rsp + 0x192]
sub ecx, eax
xor esi, ecx
mov ecx, esi
not ecx
ror ecx, 0xd
add ecx, r8d
imul ecx, dword [rsp + 0x38]
xor edi, ecx
mov r8d, edi
xor edx, edi
xor edi, ebp
mov ebp, r9d
rol edx, 6
mov ecx, dword [rsp + 0x38]
rol r8d, 0xe
imul ecx, edx
add r8d, ecx
xor r8d, r12d
mov r12d, r10d
xor esi, r8d
mov r8d, dword [rsp + 0x70]
xor bl, sil
xor bl, dil
mov byte [r15 + 3], sil
mov byte [r15 + 7], dil
ror esi, 8
ror edi, 8
mov byte [r15 + 2], sil
mov byte [r15 + 6], dil
xor bl, sil
ror esi, 8
mov byte [r15 + 1], sil
xor bl, dil
ror edi, 8
mov byte [r15 + 5], dil
xor bl, sil
ror esi, 8
mov byte [r15], sil
xor bl, dil
ror edi, 8
mov byte [r15 + 4], dil
mov cl, dil
xor cl, sil
add r15, r13
xor bl, cl
ror esi, 8
ror edi, 8
sub r14, 1
jne 0x10039f066
mov r12, qword [rsp + 0x80]
mov r14, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x50]
mov r15, 0xfffffffffffff000
mov al, byte [r14 + rbp + 8]
xor al, bl
je 0x10039f37b
call fcn.10000228c
mov r8d, 0xffff
mov rbx, rax
lea r12, [0x10006d7ac]
and rbx, r15
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
mov rax, qword [0x1003fe198]
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039f2ce
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
mov rax, qword [rsp + 0xe0]
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039f371
xor edi, edi
test ecx, ecx
jns 0x10039f01d
neg ecx
shl ecx, 3
shr esi, cl
shl esi, cl
jmp 0x10039f01d
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x24], ecx
xor edi, edi
not ecx
xor esi, esi
mov dword [rsp + 0x48], ecx
jmp 0x10039f022
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039f366
jmp 0x10039a12b
mov rax, qword [0x10014dad0]
mov rdi, r14
lea r13, [0x100000000]
mov rsi, r13
sub rdi, r12
sub rsi, rax
jne 0x10039f3a0
test rdi, rdi
je 0x10039a120
mov rbx, r12
lea r15, [0x100000000]
mov rcx, qword [0x100019a28]
xor r8d, r8d
sub rbx, r14
sub r14d, r13d
lea r9d, [rcx - 1]
add ebp, r14d
test r9d, r9d
js 0x10039f3f7
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp r14d, r10d
jae 0x10039f3ec
lea r9d, [rdx - 1]
jmp 0x10039f3f2
jbe 0x10039f3ff
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039f3c6
movsxd r11, r8d
jmp 0x10039f480
mov r11, rdx
jmp 0x10039f480
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x10039a120
mov r8d, edx
mov r9, rdx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r13
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x10039f45c
sub r8d, 1
je 0x10039f457
cmp r8d, 1
jne 0x10039f462
mov r10, rsi
jmp 0x10039f462
mov r10, rdi
jmp 0x10039f462
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039f472
cmp edx, 1
jne 0x10039f47d
add qword [r9 + rbx], r10
jmp 0x10039f476
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039f404
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x1003a0092
mov r9d, ebp
mov ecx, dword [0x100046e60]
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039f4fa
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x2ced8c]
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x10039f4eb
lea ecx, [rdx - 1]
jmp 0x10039f4f5
jbe 0x10039f675
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039f4c8
mov rdx, rbp
cmp rdx, rbp
je 0x1003a0092
mov r11d, dword [0x100015964]
mov r8, rbp
mov r14d, dword [rdx]
mov rax, r14
shr r14, 4
shr rax, 1
mov qword [rsp + 0x30], r14
sub r11, r14
and eax, 7
inc r11
mov r10, r11
lea rdi, [rax + rdx + 8]
mov qword [rsp + 0x40], rdi
mov r9d, edi
sub r9d, r13d
mov dword [rsp + 0x68], r9d
cmp r11, rbp
je 0x10039f57d
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x10039f54f
mov qword [0x1003fe198], rax
mov ecx, r9d
xor edx, edx
mov rax, r8
div r11
lea r12, [rsi + rdx]
mov rdx, r14
mov r8, r12
mov qword [rsp + 0x80], r12
mov eax, 0x5d3a06f6
lea rcx, [rsp + 0x148]
mov bl, bpl
mov r11, qword [rdi + r14]
mov qword [rsp + 0x148], r11
mov eax, 0x14819c07
mov r11, qword [rsp + 0x148]
and r11, r15
mov rax, qword [0x10014dad0]
mov rcx, r13
mov r9d, dword [rsp + 0x14c]
mov qword [rsp + 0xb8], rbp
mov ebp, 4
and r9, r15
mov r15, 0xfffffffffffff000
add r11, r13
sub rcx, rax
lea r13d, [rbp + 4]
mov qword [rsp + 0x50], rcx
jne 0x10039f696
xor r8d, r8d
test r9, r9
je 0x10039f9cd
mov ecx, dword [rsp + 0xbc]
mov edx, dword [rsp + 0xb8]
movzx eax, byte [r8 + r11]
inc r8
add eax, 0x7028c642
add edx, eax
add eax, ecx
imul rax, rax, 0x7028c642
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
add eax, ecx
imul rax, rax, 0x7028c642
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
add ecx, eax
add edx, ecx
cmp r8, r9
mov dword [rsp + 0xbc], ecx
mov dword [rsp + 0xb8], edx
jb 0x10039f61e
jmp 0x10039f9cd
mov eax, dword [rbx + r10*8 + 0x2ced8c]
mov edx, dword [rbx + rdx*8 + 0x2ced88]
shr edx, 1
and eax, r15d
and edx, r12d
add edx, eax
add rdx, r13
jmp 0x10039f4fd
lea rdx, [0x100000000]
lea rax, [r11 + r9]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x38], rax
mov eax, r11d
sub eax, edx
mov r10d, eax
add r8, rdx
and r10, r15
mov edx, dword [rcx + rdx + 0xb4]
mov ecx, eax
mov qword [rsp + 0x28], r10
add rcx, r9
sub rax, r10
mov qword [rsp + 0x60], rax
mov rax, rcx
and rax, r15
mov qword [rsp + 0x58], rax
sub rcx, rax
mov qword [rsp + 0x48], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x78], rcx
jmp 0x10039f709
mov eax, dword [r8]
cmp rax, r10
jae 0x10039f70e
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039f6fa
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x10039f751
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039f751
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039f751
mov r9, qword [rsp + 0x60]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039f751
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039f73a
mov rdi, qword [rsp + 0x50]
mov edx, dword [rsp + 0xbc]
lea rbx, [0x100000000]
mov r9d, dword [rsp + 0xb8]
mov r14, qword [rsp + 0x78]
mov ecx, 0xf000
cmp r8, r14
je 0x10039f956
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x10039f956
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039f7bc
add r8, r12
cmp r8, r14
je 0x10039f956
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x10039f956
xor esi, esi
jmp 0x10039f78d
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
jne 0x10039f7da
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x48]
jae 0x10039f956
mov rax, rsi
inc rsi
mov qword [rsp + 0x60], rax
test word [r8 + rax*2 + 8], cx
je 0x10039f776
xor r14d, r14d
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, rbx
mov rcx, rax
sub rcx, r11
mov qword [rsp + 0x70], rax
je 0x10039f875
mov r12, rcx
movzx eax, byte [r14 + r11]
inc r14
add eax, 0x7028c642
add r9d, eax
add eax, edx
imul rax, rax, 0x7028c642
mov qword [rsp + 0xf0], rax
mov ecx, dword [rsp + 0xf0]
shr rax, 0x20
add eax, ecx
imul rax, rax, 0x7028c642
mov qword [rsp + 0xf0], rax
shr rax, 0x20
mov edx, dword [rsp + 0xf0]
add edx, eax
mov dword [rsp + 0xbc], edx
add r9d, edx
mov dword [rsp + 0xb8], r9d
cmp r14, r12
jb 0x10039f80f
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
shr ecx, 0xc
cmp ecx, 3
mov qword [rsp + 0xf0], rax
je 0x10039f8a1
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039f8a7
mov r11d, 2
mov rcx, rdi
neg rcx
sub r11d, 2
mov qword [rsp + 0x60], rcx
je 0x10039f8d9
cmp r11d, 1
je 0x10039f8c4
or r11, 0xffffffffffffffff
jmp 0x10039f8e8
mov rcx, qword [rsp + 0x60]
add rax, rcx
mov qword [rsp + 0xf0], rax
mov r11, r13
jmp 0x10039f8e8
mov rcx, qword [rsp + 0x60]
add dword [rsp + 0xf0], ecx
mov r11, rbp
xor r14d, r14d
test r11, r11
je 0x10039f949
movzx eax, byte [rsp + r14 + 0xf0]
inc r14
add eax, 0x7028c642
add r9d, eax
add eax, edx
imul rax, rax, 0x7028c642
mov qword [rsp + 0x50], rax
mov ecx, dword [rsp + 0x50]
shr rax, 0x20
add eax, ecx
imul rax, rax, 0x7028c642
mov qword [rsp + 0x50], rax
mov edx, dword [rsp + 0x50]
shr rax, 0x20
add edx, eax
add r9d, edx
cmp r14, r11
jb 0x10039f8f0
mov dword [rsp + 0xbc], edx
mov dword [rsp + 0xb8], r9d
mov rax, qword [rsp + 0x70]
add r11, rax
jmp 0x10039f76c
mov rdi, qword [rsp + 0x40]
mov r10, qword [rsp + 0x38]
xor r8d, r8d
sub r10, r11
mov r14, qword [rsp + 0x30]
mov r12, qword [rsp + 0x80]
mov bl, r8b
je 0x10039f9cd
movzx eax, byte [r8 + r11]
inc r8
add eax, 0x7028c642
add r9d, eax
add eax, edx
imul rax, rax, 0x7028c642
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
add eax, ecx
imul rax, rax, 0x7028c642
mov qword [rsp + 0x58], rax
shr rax, 0x20
mov edx, dword [rsp + 0x58]
add edx, eax
mov dword [rsp + 0xbc], edx
add r9d, edx
cmp r8, r10
mov dword [rsp + 0xb8], r9d
jb 0x10039f978
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xb8]
cmp rcx, r13
mov byte [rsp + rcx + 0x197], al
jb 0x10039f9cf
mov eax, 0x99013ee9
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r12
mov r9, r14
and r9d, 7
mov qword [rsp + 0x28], r9
je 0x10039ff4a
xor r10d, r10d
xor edi, edi
mov r8d, dword [rsp + 0x68]
mov esi, r8d
not esi
mov dword [rsp + 0x38], r10d
mov dword [rsp + 0x48], edi
xor r11d, r11d
test r9d, r9d
jle 0x10039fa80
lea r8d, [r10 + 0x38]
mov rax, qword [rsp + 0x50]
movzx edx, byte [rax]
cmp r11d, ebp
jge 0x10039fa4f
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x10039fa57
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x10039fa3d
mov r8d, dword [rsp + 0x68]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x198]
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x38], r10d
mov ecx, r8d
movzx r11d, word [rsp + 0x19c]
movzx r10d, word [rsp + 0x19e]
movzx edi, word [rsp + 0x19a]
mov edx, r10d
movzx r9d, ax
sub ecx, edi
rol ecx, 3
imul edx, ecx
mov ecx, r8d
shr ecx, 0xd
xor edx, ecx
mov ecx, r11d
xor esi, edx
mov r14d, esi
mov edx, esi
xor edx, eax
rol edx, 0xa
rol r14d, 3
imul ecx, edx
xor r14d, ecx
xor r14d, r8d
mov ecx, r14d
ror ecx, 5
sub ecx, edi
imul ecx, r11d
xor esi, ecx
mov ecx, esi
ror ecx, 2
xor ecx, r9d
imul ecx, edi
xor r14d, ecx
xor esi, r14d
mov ecx, r11d
xor esi, dword [rsp + 0x19c]
xor esi, eax
mov r8d, esi
mov edx, esi
xor r8d, r9d
rol r8d, 7
rol edx, 0xe
imul ecx, r8d
xor edx, ecx
xor r14d, edx
mov r8d, r14d
sub r8d, dword [rsp + 0x19c]
mov ecx, edi
mov edx, r14d
ror r8d, 2
rol edx, 5
imul ecx, r8d
xor edx, ecx
xor esi, edx
mov edx, esi
mov ecx, esi
xor edx, edi
rol edx, 7
ror ecx, 0xd
imul r9d, edx
sub r9d, ecx
xor r14d, r9d
mov ecx, r14d
mov edx, r14d
xor edx, r11d
shr ecx, 1
imul edx, r10d
xor edx, ecx
xor esi, edx
mov ecx, esi
mov r10d, dword [rsp + 0x19c]
mov edx, esi
xor edx, eax
rol edx, 0xb
ror ecx, 7
imul r11d, edx
sub r11d, ecx
xor r14d, r11d
lea edx, [r14 + r10]
ror edx, 6
mov ecx, r14d
ror ecx, 0xa
imul edi, edx
xor r9d, r9d
sub edi, ecx
xor esi, edi
mov ecx, esi
mov edx, r10d
xor esi, dword [rsp + 0x38]
xor ecx, eax
sub edx, ecx
mov r8d, esi
mov ecx, dword [rsp + 0x48]
xor edx, ecx
mov rcx, qword [rsp + 0x28]
xor r14d, edx
mov edx, r14d
test ecx, ecx
jle 0x10039fbeb
mov rax, r12
cmp r9d, ebp
jge 0x10039fbc9
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039fbd6
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039fbb8
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x198]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039ff30
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov ebp, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r11, qword [rsp + 0x30]
mov rcx, r11
shr rcx, 3
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x10039fe7c
movzx edx, word [rsp + 0x19a]
movzx ecx, ax
movzx r8d, word [rsp + 0x19e]
mov r15, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x50]
mov r11, qword [rsp + 0x58]
mov r12d, dword [rsp + 0x48]
neg edx
mov dword [rsp + 0x68], ecx
movzx ecx, r10w
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x38], ecx
movzx r9d, byte [rdi + 4]
movzx r10d, byte [rdi + 1]
movzx ecx, byte [rdi]
shl ecx, 8
shl r9d, 8
or r10d, ecx
shl r10d, 8
movzx ecx, byte [rdi + 2]
or r10d, ecx
movzx ecx, byte [rdi + 3]
shl r10d, 8
or r10d, ecx
movzx ecx, byte [rdi + 5]
or r9d, ecx
movzx ecx, byte [rdi + 6]
xor r14d, r10d
shl r9d, 8
or r9d, ecx
movzx ecx, byte [rdi + 7]
add rdi, r13
shl r9d, 8
or r9d, ecx
lea ecx, [r14 + rdx]
rol ecx, 3
mov edx, r8d
imul edx, ecx
mov ecx, r14d
shr ecx, 0xd
xor edx, ecx
xor edx, r9d
mov ecx, dword [rsp + 0x38]
xor esi, edx
mov edx, esi
mov r8d, esi
xor r8d, eax
rol r8d, 0xa
rol edx, 3
imul ecx, r8d
xor edx, ecx
xor r14d, edx
movzx edx, word [rsp + 0x19a]
mov ecx, r14d
ror ecx, 5
sub ecx, edx
imul ecx, dword [rsp + 0x38]
xor esi, ecx
mov ecx, esi
ror ecx, 2
xor ecx, dword [rsp + 0x68]
imul ecx, edx
xor r14d, ecx
mov ecx, dword [rsp + 0x38]
xor esi, r14d
xor esi, dword [rsp + 0x19c]
xor esi, eax
mov edx, esi
mov r8d, esi
xor r8d, dword [rsp + 0x68]
rol r8d, 7
rol edx, 0xe
imul ecx, r8d
xor edx, ecx
movzx ecx, word [rsp + 0x19a]
xor r14d, edx
mov edx, r14d
mov r8d, r14d
sub r8d, dword [rsp + 0x19c]
ror r8d, 2
rol edx, 5
imul ecx, r8d
xor edx, ecx
xor esi, edx
mov edx, esi
movzx ecx, word [rsp + 0x19a]
mov r8d, esi
xor r8d, ecx
mov ecx, dword [rsp + 0x68]
rol r8d, 7
ror edx, 0xd
imul ecx, r8d
sub ecx, edx
xor r14d, ecx
movzx ecx, word [rsp + 0x19e]
mov edx, r14d
xor edx, dword [rsp + 0x38]
imul edx, ecx
mov ecx, r14d
shr ecx, 1
xor edx, ecx
xor esi, edx
mov ecx, dword [rsp + 0x38]
mov r8d, esi
mov edx, esi
xor r8d, eax
rol r8d, 0xb
ror edx, 7
imul ecx, r8d
sub ecx, edx
xor r14d, ecx
mov ecx, dword [rsp + 0x19c]
mov edx, r14d
lea r8d, [r14 + rcx]
movzx ecx, word [rsp + 0x19a]
ror r8d, 6
ror edx, 0xa
imul ecx, r8d
movzx r8d, word [rsp + 0x19e]
sub ecx, edx
xor esi, ecx
mov ecx, esi
xor esi, ebp
mov edx, dword [rsp + 0x19c]
mov ebp, r9d
xor ecx, eax
sub edx, ecx
xor edx, r12d
xor r14d, edx
xor bl, r14b
xor bl, sil
mov edx, dword [rsp + 0x70]
mov r12d, r10d
mov byte [r11 + 3], r14b
ror r14d, 8
mov byte [r11 + 7], sil
mov byte [r11 + 2], r14b
ror esi, 8
mov byte [r11 + 6], sil
xor bl, r14b
ror r14d, 8
mov byte [r11 + 1], r14b
xor bl, sil
ror esi, 8
xor bl, r14b
ror r14d, 8
mov byte [r11 + 5], sil
xor bl, sil
mov byte [r11], r14b
ror esi, 8
mov byte [r11 + 4], sil
mov cl, sil
xor cl, r14b
add r11, r13
xor bl, cl
ror r14d, 8
ror esi, 8
sub r15, 1
jne 0x10039fc5e
mov r11, qword [rsp + 0x30]
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
mov rdi, qword [rsp + 0x40]
xor bl, byte [r11 + rdi + 8]
je 0x10039ff7b
call fcn.10000228c
lea r12, [0x10006d7ac]
mov r8d, 0xffff
mov rbx, rax
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
and rbx, r15
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
mov qword [rax + 0x10], r12
mov rax, qword [0x1003fe198]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x10039fec7
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
imul rdx, rdx, 0xffff
mov rax, qword [rsp + 0xe0]
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039ff71
xor esi, esi
test ecx, ecx
jns 0x10039fc01
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x10039fc01
mov r10d, dword [rsp + 0x19c]
mov ebp, dword [rsp + 0x68]
mov dword [rsp + 0x48], ebp
xor esi, esi
xor r14d, r14d
not ebp
jmp 0x10039fc0a
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039ff66
jmp 0x10039a12b
mov rsi, rdi
lea r14, [0x100000000]
sub rsi, r12
mov rbp, r14
mov rax, qword [0x10014dad0]
sub rbp, rax
jne 0x10039ffa0
test rsi, rsi
je 0x10039a120
lea r15, [0x100000000]
mov rcx, qword [0x100019a28]
lea r9d, [rcx - 1]
xor r8d, r8d
mov rbx, r12
sub rbx, rdi
sub edi, r14d
test r9d, r9d
lea r13d, [r11 + rdi]
js 0x10039fff8
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039ffed
lea r9d, [rdx - 1]
jmp 0x10039fff3
jbe 0x1003a0000
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039ffc7
movsxd r11, r8d
jmp 0x1003a0082
mov r11, rdx
jmp 0x1003a0082
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x10039a120
mov r8d, edx
mov r9, rdx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r14
add ecx, esi
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x1003a005e
sub r8d, 1
je 0x1003a0059
cmp r8d, 1
jne 0x1003a0064
mov r10, rbp
jmp 0x1003a0064
mov r10, rsi
jmp 0x1003a0064
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x1003a0074
cmp edx, 1
jne 0x1003a007f
add qword [r9 + rbx], r10
jmp 0x1003a0078
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x1003a0005
jmp 0x10039a120
cmp rdi, r13
jb 0x1003a0cbf
lfence
movsxd rax, dword [0x10000003c]
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x1003a0cbf
mov r8d, edi
sub r8d, r13d
mov r9d, ebp
mov ecx, dword [0x1001f0f1c]
sub ecx, r11d
js 0x1003a00fc
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x38592c]
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x1003a00ed
lea ecx, [rdx - 1]
jmp 0x1003a00f7
jbe 0x1003a02a2
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x1003a00ca
mov rdx, rbp
cmp rdx, rbp
je 0x1003a0cbf
mov r8, rbp
mov edi, dword [rdx]
mov rax, rdi
mov r11d, dword [0x100015964]
shr rdi, 4
shr rax, 1
sub r11, rdi
and eax, 7
mov qword [rsp + 0x50], rdi
inc r11
mov r10, r11
lea r14, [rax + rdx + 8]
mov r9d, r14d
sub r9d, r13d
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x68], r9d
cmp r11, rbp
je 0x1003a017e
mov rax, qword [0x1003fe198]
imul rax, rax, 0x343fd
shl r8, 0x10
shr r10, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r8, rdx
cmp r10, rbp
jne 0x1003a0150
mov qword [0x1003fe198], rax
mov rax, r8
mov ecx, r9d
xor edx, edx
div r11
lea r12, [rsi + rdx]
mov r8, r12
mov qword [rsp + 0x80], r12
mov rdx, rdi
mov eax, 0xc5e5a36b
lea rcx, [rsp + 0x138]
mov bl, bpl
mov r11, qword [rdi + r14]
mov qword [rsp + 0x138], r11
mov eax, 0x358a2874
mov r9d, dword [rsp + 0x13c]
mov rax, qword [0x10014dad0]
mov rcx, r13
mov r11, qword [rsp + 0x138]
mov qword [rsp + 0xa8], rbp
mov ebp, 4
and r11, r15
and r9, r15
add r11, r13
lea r13d, [rbp + 4]
mov r15, 0xfffffffffffff000
sub rcx, rax
mov qword [rsp + 0x30], rcx
jne 0x1003a02c3
xor r10d, r10d
test r9, r9
je 0x1003a066a
mov r8d, dword [rsp + 0xa8]
mov ecx, dword [rsp + 0xac]
mov esi, 0x8532a4bd
movzx eax, byte [r11 + r10]
inc r10
sub eax, 0x7acd5b43
add r8d, eax
add eax, ecx
imul rax, rsi
mov qword [rsp + 0x58], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x58]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, eax, 0x1c57
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rsi
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
add ecx, eax
mov dword [rsp + 0xac], ecx
add r8d, ecx
mov dword [rsp + 0xa8], r8d
cmp r10, r9
jb 0x1003a0225
jmp 0x1003a066a
mov edx, dword [rbx + rdx*8 + 0x385928]
mov eax, dword [rbx + r10*8 + 0x38592c]
shr edx, 1
and eax, r15d
and edx, r12d
add edx, eax
add rdx, r13
jmp 0x1003a00ff
movsxd rcx, dword [0x10000003c]
lea rdx, [0x100000000]
mov r8d, dword [rcx + rdx + 0xb0]
lea rax, [r11 + r9]
mov qword [rsp + 0x78], rax
mov eax, r11d
sub eax, edx
mov esi, eax
add r8, rdx
mov edx, dword [rcx + rdx + 0xb4]
mov ecx, eax
add rcx, r9
and rsi, r15
sub rax, rsi
mov qword [rsp + 0x40], rax
mov rax, rcx
and rax, r15
sub rcx, rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x70], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x60], rcx
jmp 0x1003a0330
mov eax, dword [r8]
cmp rax, rsi
jae 0x1003a0335
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x1003a0321
xor edi, edi
cmp r8, rcx
mov r10d, 0xfff
je 0x1003a0376
mov eax, dword [r8]
cmp rax, rsi
jne 0x1003a0376
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x1003a0376
mov r9, qword [rsp + 0x40]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x1003a0376
inc rdi
add rdx, 2
cmp rdi, rcx
jne 0x1003a035f
mov r12, qword [rsp + 0x30]
mov edx, dword [rsp + 0xac]
lea r15, [0x100000000]
mov esi, 0x8532a4bd
mov r9d, dword [rsp + 0xa8]
mov ecx, 0xf000
cmp r8, qword [rsp + 0x60]
je 0x1003a05c9
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x1003a05c9
mov ebx, dword [r8 + 4]
lea rax, [rbx - 8]
shr rax, 1
cmp rdi, rax
jne 0x1003a03e4
add r8, rbx
cmp r8, qword [rsp + 0x60]
je 0x1003a05c9
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x1003a05c9
xor edi, edi
jmp 0x1003a03b4
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
jne 0x1003a0402
movzx eax, word [r8 + rdi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x70]
jae 0x1003a05c9
mov rax, rdi
inc rdi
mov qword [rsp + 0x40], rax
test word [r8 + rax*2 + 8], cx
je 0x1003a039b
xor ebx, ebx
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, r15
mov qword [rsp + 0x30], rax
mov rcx, rax
sub rcx, r11
je 0x1003a04c7
mov r14, rcx
movzx eax, byte [rbx + r11]
inc rbx
sub eax, 0x7acd5b43
add r9d, eax
add eax, edx
imul rax, rsi
mov qword [rsp + 0xe8], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xe8]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, eax, 0x1c57
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rsi
mov qword [rsp + 0xe8], rax
shr rax, 0x20
mov edx, dword [rsp + 0xe8]
add edx, eax
mov dword [rsp + 0xac], edx
add r9d, edx
mov dword [rsp + 0xa8], r9d
cmp rbx, r14
jb 0x1003a043a
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x40]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0xe8], rax
shr ecx, 0xc
cmp ecx, 3
je 0x1003a04f3
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x1003a04f9
mov r11d, 2
mov rcx, r12
neg rcx
mov qword [rsp + 0x40], rcx
sub r11d, 2
je 0x1003a052b
cmp r11d, 1
je 0x1003a0516
or r11, 0xffffffffffffffff
jmp 0x1003a053a
mov r11, r13
mov rcx, qword [rsp + 0x40]
add rax, rcx
mov qword [rsp + 0xe8], rax
jmp 0x1003a053a
mov r11, rbp
mov rcx, qword [rsp + 0x40]
add dword [rsp + 0xe8], ecx
xor ebx, ebx
test r11, r11
je 0x1003a05bc
movzx eax, byte [rsp + rbx + 0xe8]
inc rbx
sub eax, 0x7acd5b43
add r9d, eax
add eax, edx
imul rax, rsi
mov qword [rsp + 0x40], rax
mov ecx, dword [rsp + 0x40]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, eax, 0x1c57
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rsi
mov qword [rsp + 0x40], rax
shr rax, 0x20
mov edx, dword [rsp + 0x40]
add edx, eax
add r9d, edx
cmp rbx, r11
jb 0x1003a0541
mov dword [rsp + 0xac], edx
mov dword [rsp + 0xa8], r9d
mov rax, qword [rsp + 0x30]
add r11, rax
jmp 0x1003a0396
mov r15, 0xfffffffffffff000
mov r14, qword [rsp + 0x28]
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x78]
xor r8d, r8d
mov bl, r8b
sub r10, r11
je 0x1003a0665
movzx eax, byte [r8 + r11]
inc r8
sub eax, 0x7acd5b43
add r9d, eax
add eax, edx
imul rax, rsi
mov qword [rsp + 0x58], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x58]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, eax, 0x1c57
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rsi
mov qword [rsp + 0x58], rax
mov edx, dword [rsp + 0x58]
shr rax, 0x20
add edx, eax
mov dword [rsp + 0xac], edx
add r9d, edx
mov dword [rsp + 0xa8], r9d
cmp r8, r10
jb 0x1003a05ed
mov rdi, qword [rsp + 0x50]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xa8]
cmp rcx, r13
mov byte [rsp + rcx + 0x1bf], al
jb 0x1003a066c
mov eax, 0xf099ca5e
mov r11, r14
mov rax, qword [rsp + 0x1c0]
mov r9, rdi
and r9d, 7
mov ecx, dword [rsp + 0x68]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r9
je 0x1003a0b83
mov edx, ecx
not edx
xor r10d, r10d
xor esi, esi
mov dword [rsp + 0x38], r10d
xor edi, edi
test r9d, r9d
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x48], esi
jle 0x1003a0716
lea r8d, [r10 + 0x38]
movzx edx, byte [r11]
cmp edi, ebp
jge 0x1003a06eb
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x1003a06f3
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x1003a06d9
mov edx, dword [rsp + 0x70]
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x38], r10d
mov qword [rsp + 0x40], r11
movzx r10d, ax
movzx r11d, word [rsp + 0x1c2]
movzx r8d, word [rsp + 0x1c4]
mov esi, ecx
movzx r9d, word [rsp + 0x1c6]
sub esi, r9d
xor esi, edx
xor esi, eax
mov edi, esi
xor edi, ecx
xor edi, dword [rsp + 0x1c4]
xor edi, eax
mov ecx, edi
mov edx, edi
sub edx, r9d
shr ecx, 0xb
rol edx, 1
imul edx, r11d
xor edx, ecx
xor esi, edx
mov ecx, esi
ror ecx, 0xd
sub ecx, r10d
imul ecx, r8d
xor edi, ecx
mov ecx, edi
mov edx, edi
sub edx, eax
ror edx, 9
ror ecx, 0xd
imul edx, r9d
sub edx, ecx
xor esi, edx
mov edx, eax
sub edx, esi
rol edx, 6
mov ecx, esi
rol ecx, 4
imul edx, r8d
xor ecx, edx
xor edi, ecx
mov edx, edi
xor edx, r10d
rol edx, 3
mov ecx, edi
ror ecx, 8
imul edx, r11d
xor ecx, edx
xor esi, ecx
mov edx, esi
xor edx, dword [rsp + 0x1c4]
mov ecx, esi
shr ecx, 7
rol edx, 7
imul edx, r10d
sub edx, ecx
xor edi, edx
mov edx, edi
ror edx, 0xe
mov ecx, edi
xor ecx, r10d
imul ecx, r9d
sub ecx, edx
xor esi, ecx
mov edx, esi
sub edx, eax
ror edx, 0xb
mov ecx, esi
ror ecx, 4
imul edx, r8d
mov r8d, dword [rsp + 0x48]
xor ecx, edx
xor edi, ecx
mov edx, edi
xor edx, dword [rsp + 0x1c4]
mov ecx, edi
rol edx, 0xa
rol ecx, 0xa
imul edx, r11d
sub edx, ecx
xor esi, edx
mov edx, esi
mov ecx, esi
ror edx, 3
xor esi, dword [rsp + 0x38]
xor ecx, r11d
xor r9d, r9d
imul ecx, r10d
add edx, ecx
mov rcx, qword [rsp + 0x60]
xor edx, r8d
mov r8d, esi
xor edi, edx
test ecx, ecx
mov edx, edi
jle 0x1003a0867
mov rax, r12
cmp r9d, ebp
jge 0x1003a0845
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x1003a0852
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x1003a0834
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x1c0]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x1003a0b6b
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov ebp, dword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
mov rcx, r10
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x60], rcx
je 0x1003a0ab5
mov r14d, dword [rsp + 0x48]
movzx edx, word [rsp + 0x1c6]
mov r12d, edx
neg r12d
mov r15, qword [rsp + 0x60]
movzx ecx, word [rsp + 0x1c4]
mov r10, qword [rsp + 0x58]
mov dword [rsp + 0x78], ecx
movzx ecx, word [rsp + 0x1c2]
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x68], ecx
movzx ecx, ax
mov dword [rsp + 0x38], ecx
movzx ecx, byte [r11 + 1]
movzx r9d, byte [r11]
movzx r8d, byte [r11 + 4]
shl r9d, 8
shl r8d, 8
or r9d, ecx
shl r9d, 8
movzx ecx, byte [r11 + 2]
or r9d, ecx
movzx ecx, byte [r11 + 3]
shl r9d, 8
or r9d, ecx
movzx ecx, byte [r11 + 5]
or r8d, ecx
movzx ecx, byte [r11 + 6]
xor edi, r9d
shl r8d, 8
or r8d, ecx
movzx ecx, byte [r11 + 7]
add r11, r13
shl r8d, 8
or r8d, ecx
mov ecx, edi
sub ecx, edx
xor ecx, r8d
xor esi, ecx
xor esi, eax
movzx ecx, word [rsp + 0x1c2]
xor edi, esi
xor edi, dword [rsp + 0x1c4]
xor edi, eax
lea edx, [rdi + r12]
rol edx, 1
imul edx, ecx
mov ecx, edi
shr ecx, 0xb
xor edx, ecx
xor esi, edx
mov ecx, esi
movzx edx, word [rsp + 0x1c4]
ror ecx, 0xd
sub ecx, dword [rsp + 0x38]
imul ecx, edx
xor edi, ecx
mov edx, edi
sub edx, eax
ror edx, 9
mov ecx, edi
ror ecx, 0xd
imul edx, dword [rsp + 0x24]
sub edx, ecx
xor esi, edx
mov edx, eax
mov ecx, esi
sub edx, esi
rol edx, 6
rol ecx, 4
imul edx, dword [rsp + 0x78]
xor ecx, edx
xor edi, ecx
mov ecx, edi
mov edx, edi
xor edx, dword [rsp + 0x38]
rol edx, 3
ror ecx, 8
imul edx, dword [rsp + 0x68]
xor ecx, edx
xor esi, ecx
mov edx, esi
xor edx, dword [rsp + 0x1c4]
mov ecx, esi
shr ecx, 7
rol edx, 7
imul edx, dword [rsp + 0x38]
sub edx, ecx
xor edi, edx
mov ecx, edi
mov edx, edi
xor ecx, dword [rsp + 0x38]
ror edx, 0xe
imul ecx, dword [rsp + 0x24]
sub ecx, edx
xor esi, ecx
mov edx, esi
mov ecx, esi
sub edx, eax
ror edx, 0xb
ror ecx, 4
imul edx, dword [rsp + 0x78]
xor ecx, edx
xor edi, ecx
mov ecx, edi
mov edx, edi
xor edx, dword [rsp + 0x1c4]
rol edx, 0xa
rol ecx, 0xa
imul edx, dword [rsp + 0x68]
sub edx, ecx
xor esi, edx
mov edx, esi
mov ecx, esi
xor esi, ebp
xor ecx, dword [rsp + 0x68]
mov ebp, r8d
ror edx, 3
imul ecx, dword [rsp + 0x38]
add edx, ecx
xor edx, r14d
mov r14d, r9d
xor edi, edx
mov edx, dword [rsp + 0x24]
xor bl, dil
mov byte [r10 + 3], dil
xor bl, sil
mov byte [r10 + 7], sil
ror edi, 8
mov byte [r10 + 2], dil
ror esi, 8
xor bl, dil
ror edi, 8
mov byte [r10 + 6], sil
mov byte [r10 + 1], dil
xor bl, sil
ror esi, 8
mov byte [r10 + 5], sil
xor bl, dil
ror edi, 8
xor bl, sil
mov byte [r10], dil
ror esi, 8
mov cl, sil
xor cl, dil
mov byte [r10 + 4], sil
add r10, r13
xor bl, cl
ror edi, 8
ror esi, 8
sub r15, 1
jne 0x1003a08e0
mov r10, qword [rsp + 0x50]
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
mov r14, qword [rsp + 0x28]
mov al, byte [r14 + r10 + 8]
xor al, bl
je 0x1003a0ba9
call fcn.10000228c
mov r8d, 0xffff
lea r12, [0x10006d7ac]
mov rbx, rax
mov rax, qword [rsp + 0xd8]
and rbx, r15
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
mov rax, qword [0x1003fe198]
and r11, r15
xor r9d, r9d
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x1003a0b02
mov qword [0x1003fe198], rax
movabs rax, 0x8000800080008001
mul r9
mov rax, qword [rsp + 0xe0]
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x1003a0b9f
xor esi, esi
test ecx, ecx
jns 0x1003a087d
neg ecx
shl ecx, 3
shr edi, cl
shl edi, cl
jmp 0x1003a087d
xor esi, esi
mov dword [rsp + 0x48], ecx
mov ebp, ecx
xor edi, edi
not ebp
jmp 0x1003a0886
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x1003a0b94
jmp 0x10039a12b
mov rdi, r14
lea r13, [0x100000000]
mov rax, qword [0x10014dad0]
sub rdi, r12
mov rsi, r13
sub rsi, rax
jne 0x1003a0bce
test rdi, rdi
je 0x10039a120
mov rbx, r12
lea r15, [0x100000000]
mov rcx, qword [0x100019a28]
xor r8d, r8d
sub rbx, r14
lea r9d, [rcx - 1]
sub r14d, r13d
test r9d, r9d
lea ebp, [r14 + r10]
js 0x1003a0c26
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x19a2c]
and r10d, 0xfffffff
cmp r14d, r10d
jae 0x1003a0c1b
lea r9d, [rdx - 1]
jmp 0x1003a0c21
jbe 0x1003a0c2e
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x1003a0bf5
movsxd r11, r8d
jmp 0x1003a0caf
mov r11, rdx
jmp 0x1003a0caf
mov edx, dword [r15 + r11*4 + 0x19a2c]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x10039a120
mov r8d, edx
mov r9, rdx
sar edx, 0x1e
shl r8d, 2
and r9d, 0xfffffff
and edx, 3
sar r8d, 0x1e
add r9, r13
xor r10d, r10d
and r8d, 3
sub r8d, 1
je 0x1003a0c8b
sub r8d, 1
je 0x1003a0c86
cmp r8d, 1
jne 0x1003a0c91
mov r10, rsi
jmp 0x1003a0c91
mov r10, rdi
jmp 0x1003a0c91
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x1003a0ca1
cmp edx, 1
jne 0x1003a0cac
add qword [r9 + rbx], r10
jmp 0x1003a0ca5
add dword [r9 + rbx], r10d
mov rcx, qword [0x100019a28]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x1003a0c33
jmp 0x10039a120
mov eax, 0x4fd1df3a
lea r11, section..data
cmp rsi, r11
jb 0x1003a0d0c
mov eax, dword [0x100015964]
mov ecx, dword [0x10028bf00]
imul ecx, eax
mov eax, ecx
add rax, r11
cmp rsi, rax
jae 0x1003a0d0c
mov ecx, dword [0x100015964]
mov rax, rsi
sub rax, r11
cqo
idiv rcx
mov rcx, rax
mov eax, dword [0x100015964]
imul rax, rcx
add rax, r11
jmp 0x1003a0d0f
mov rax, rbp
cmp rax, rbp
je 0x1003a0d3b
sub rsi, r11
mov ecx, dword [0x100015964]
mov rax, rsi
cqo
idiv rcx
mov rcx, rax
mov eax, dword [0x10028bf00]
mov dword [rbx + rcx*4 + 0x4059e0], 0xef0b
jmp 0x1003a0d69
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rsi
or rcx, 3
mov ebx, eax
call qword [sym.imp.ntdll.dll_RtlDeleteFunctionTable]
xor edx, edx
mov r8d, 0x8000
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rdi
mov rcx, qword [rsp + 0x1d8]
xor rcx, rsp
call fcn.1003005f0
add rsp, 0x1e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret