Function at 0x100399174
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 [0x1003fe1f8]
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 0x100399e18
movsxd rdx, dword [0x10000003c]
mov ecx, dword [rdx + r13 + 0x50]
add rcx, r13
cmp r9, rcx
jae 0x100399e1e
mov ecx, dword [0x10038b4a8]
mov r8d, r9d
mov r9d, ebp
sub r8d, r13d
sub ecx, r11d
js 0x100399236
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x47d78]
shr eax, 1
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x100399227
lea ecx, [rdx - 1]
jmp 0x100399231
jbe 0x1003993c1
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x100399202
mov rdx, rbp
cmp rdx, rbp
je 0x100399e18
mov r14d, dword [rdx + 4]
mov r8, rbp
mov eax, dword [rdx]
shr rax, 2
and r14, r15
and eax, 7
mov r11d, dword [0x100015b94]
mov qword [rsp + 0x70], r14
sub r11, r14
lea rbx, [rax + rdx + 8]
mov qword [rsp + 0x30], rbx
mov r9d, ebx
inc r11
sub r9d, r13d
mov r10, r11
mov dword [rsp + 0x48], r9d
cmp r11, rbp
je 0x1003992b9
mov rax, qword [0x1003feeb8]
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 0x10039928b
mov qword [0x1003feeb8], rax
mov ecx, r9d
xor edx, edx
mov rax, r8
div r11
lea r12, [rsi + rdx]
mov qword [rsp + 0x80], r12
mov rdx, r14
mov r8, r12
mov eax, 0x98107f40
lea rcx, [rsp + 0x168]
mov r11, qword [rbx + r14]
mov bl, bpl
mov qword [rsp + 0x168], r11
mov eax, 0x8e24a58e
mov rax, qword [0x10014d838]
mov rdi, qword [rsp + 0x168]
mov rcx, r13
mov r9d, dword [rsp + 0x16c]
mov qword [rsp + 0xc0], rbp
and rdi, r15
mov ebp, 4
and r9, r15
mov r15, 0xfffffffffffff000
add rdi, r13
sub rcx, rax
mov qword [rsp + 0x60], rcx
lea r13d, [rbp + 4]
jne 0x1003993e2
xor r10d, r10d
test r9, r9
je 0x100399729
mov r8d, dword [rsp + 0xc0]
mov ecx, dword [rsp + 0xc4]
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
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
add r8d, ecx
cmp r10, r9
mov dword [rsp + 0xc4], ecx
mov dword [rsp + 0xc0], r8d
jb 0x10039935b
jmp 0x100399729
mov eax, dword [rbx + r10*8 + 0x47d7c]
mov edx, dword [rbx + rdx*8 + 0x47d78]
shr edx, 1
and eax, r12d
and edx, r15d
add edx, eax
add rdx, r13
jmp 0x100399239
lea rax, [rdi + r9]
lea rdx, [0x100000000]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x68], 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
mov qword [rsp + 0x40], rax
sub rcx, rax
mov qword [rsp + 0x78], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x50], rcx
jmp 0x10039944f
mov eax, dword [r8]
cmp rax, r11
jae 0x100399454
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x100399440
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x100399495
mov eax, dword [r8]
cmp rax, r11
jne 0x100399495
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x100399495
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x100399495
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039947e
mov r11d, dword [rsp + 0xc0]
lea r15, [0x100000000]
mov r9d, dword [rsp + 0xc4]
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x40]
mov ecx, 0xf000
mov r14, qword [rsp + 0x50]
cmp r8, r14
je 0x10039969e
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039969e
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x100399502
add r8, r12
cmp r8, r14
je 0x10039969e
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039969e
xor esi, esi
jmp 0x1003994d5
mov eax, dword [r8]
cmp rax, rdx
jne 0x10039951e
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x10039969e
mov rax, rsi
inc rsi
mov qword [rsp + 0x60], rax
test word [r8 + rax*2 + 8], cx
je 0x1003994c0
xor r14d, r14d
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, r15
mov qword [rsp + 0x58], rax
mov rcx, rax
sub rcx, rdi
je 0x1003995bf
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
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 r14, r12
jb 0x100399553
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 0x1003995e9
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x1003995ee
mov edx, 2
mov rdi, rbx
neg rdi
sub edx, 2
je 0x100399614
cmp edx, 1
je 0x100399604
or rdi, 0xffffffffffffffff
jmp 0x10039961e
add rax, rdi
mov rdi, r13
mov qword [rsp + 0x128], rax
jmp 0x10039961e
add dword [rsp + 0x128], edi
mov rdi, rbp
xor r14d, r14d
test rdi, rdi
je 0x100399691
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
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 r14, rdi
jb 0x100399626
mov dword [rsp + 0xc4], r9d
mov dword [rsp + 0xc0], r11d
mov rax, qword [rsp + 0x58]
add rdi, rax
jmp 0x1003994b1
mov r12, qword [rsp + 0x80]
mov r14, qword [rsp + 0x70]
mov r10, qword [rsp + 0x68]
mov r15, 0xfffffffffffff000
xor r8d, r8d
mov bl, r8b
sub r10, rdi
je 0x100399729
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
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 + 0xc4], r9d
add r11d, r9d
mov dword [rsp + 0xc0], r11d
cmp r8, r10
jb 0x1003996c2
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, r13
mov al, byte [rsp + rax + 0xc0]
mov byte [rsp + rcx + 0x187], al
jb 0x10039972b
mov eax, 0x86eccff0
mov ecx, dword [rsp + 0x48]
mov rax, qword [rsp + 0x188]
mov r11, qword [rsp + 0x30]
mov qword [rsp + 0x40], r11
mov r9, r14
mov qword [rsp + 0x50], r12
and r9d, 7
mov qword [rsp + 0x28], r9
je 0x100399cd9
xor r10d, r10d
mov dword [rsp + 0x24], r10d
mov esi, ecx
not esi
xor edi, edi
xor r11d, r11d
test r9d, r9d
mov dword [rsp + 0x38], edi
jle 0x1003997de
mov rax, qword [rsp + 0x40]
lea r8d, [r10 + 0x38]
cmp r11d, ebp
movzx edx, byte [rax]
jge 0x1003997ae
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x1003997b6
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x10039979c
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
mov edx, dword [rsp + 0x18c]
mov r14d, esi
sub r14d, dword [rsp + 0x18c]
movzx r11d, word [rsp + 0x18c]
movzx r9d, word [rsp + 0x18e]
mov r8d, r9d
movzx r10d, word [rsp + 0x18a]
movzx edi, ax
sub r14d, edi
xor r14d, ecx
xor edx, r14d
mov ecx, eax
sub ecx, edx
xor esi, ecx
mov ecx, esi
sub ecx, r11d
xor ecx, eax
xor r14d, ecx
mov edx, r14d
xor r8d, r14d
mov ecx, r10d
rol r8d, 7
rol edx, 0xf
imul ecx, r8d
add edx, ecx
mov r8d, dword [rsp + 0x18c]
mov ecx, edi
xor esi, edx
sub r8d, esi
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
rol r8d, 5
mov ecx, r9d
ror edx, 1
imul ecx, r8d
mov r8d, dword [rsp + 0x18c]
sub ecx, edx
mov edx, r11d
xor esi, ecx
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
mov ecx, edi
xor esi, edx
xor r8d, esi
mov edx, 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
xor esi, edx
mov r8d, esi
mov ecx, r11d
sub r8d, eax
mov edx, esi
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
xor edx, r8d
xor r14d, edx
mov rcx, qword [rsp + 0x28]
mov r8d, esi
test ecx, ecx
mov edx, r14d
jle 0x10039996c
mov rax, r12
cmp r9d, ebp
jge 0x10039994a
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x100399957
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x100399939
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x188]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x100399cbf
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 rdi, qword [rsp + 0x70]
mov rcx, rdi
shr rcx, 3
test rcx, rcx
je 0x100399c0b
mov rdi, qword [rsp + 0x50]
mov r15, rcx
mov r11, qword [rsp + 0x40]
movzx r8d, word [rsp + 0x18c]
mov r12d, dword [rsp + 0x38]
movzx edx, ax
mov dword [rsp + 0x24], edx
movzx r10d, byte [r11]
movzx r9d, byte [r11 + 4]
movzx ecx, byte [r11 + 1]
shl r10d, 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
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
mov ecx, eax
xor edx, r14d
sub ecx, edx
xor esi, ecx
mov ecx, esi
sub ecx, r8d
movzx r8d, word [rsp + 0x18e]
xor ecx, eax
xor r14d, ecx
xor r8d, r14d
rol r8d, 7
movzx ecx, word [rsp + 0x18a]
mov edx, r14d
rol edx, 0xf
imul ecx, r8d
add edx, ecx
xor esi, edx
mov r8d, dword [rsp + 0x18c]
mov ecx, dword [rsp + 0x24]
mov edx, esi
sub r8d, esi
rol r8d, 6
ror edx, 9
imul ecx, r8d
sub ecx, edx
mov r8d, dword [rsp + 0x24]
xor r14d, ecx
mov edx, r14d
xor r8d, r14d
movzx ecx, word [rsp + 0x18e]
rol r8d, 5
ror edx, 1
imul ecx, r8d
movzx r8d, word [rsp + 0x18e]
sub ecx, edx
xor esi, ecx
mov ecx, esi
ror ecx, 2
movzx edx, word [rsp + 0x18c]
sub ecx, edx
imul ecx, r8d
mov r8d, dword [rsp + 0x18c]
xor r14d, ecx
movzx ecx, word [rsp + 0x18a]
xor edx, r14d
imul edx, ecx
mov ecx, r14d
shr ecx, 0xc
xor edx, ecx
xor esi, edx
mov edx, esi
xor r8d, esi
ror r8d, 6
mov ecx, dword [rsp + 0x24]
rol edx, 4
imul ecx, r8d
movzx r8d, word [rsp + 0x18e]
add edx, ecx
mov ecx, dword [rsp + 0x24]
xor r14d, edx
xor ecx, r14d
mov edx, r14d
ror edx, 3
imul ecx, r8d
add edx, ecx
movzx ecx, word [rsp + 0x18c]
xor esi, edx
mov r8d, esi
mov edx, esi
sub r8d, eax
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
mov ebp, r9d
ror edx, 0xc
rol ecx, 7
imul edx, dword [rsp + 0x24]
add ecx, edx
xor ecx, r12d
mov edx, dword [rsp + 0x24]
mov r12d, r10d
xor r14d, ecx
mov byte [rdi + 3], r14b
xor bl, r14b
xor bl, sil
mov byte [rdi + 7], sil
ror r14d, 8
mov byte [rdi + 2], r14b
ror esi, 8
xor bl, r14b
mov byte [rdi + 6], sil
ror r14d, 8
xor bl, sil
ror esi, 8
mov byte [rdi + 1], r14b
mov byte [rdi + 5], sil
xor bl, r14b
ror r14d, 8
xor bl, sil
mov byte [rdi], r14b
ror esi, 8
mov cl, sil
xor cl, r14b
mov byte [rdi + 4], sil
add rdi, r13
xor bl, cl
ror r14d, 8
ror esi, 8
sub r15, 1
jne 0x1003999c2
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 0x100399d00
call fcn.1000024bc
lea r12, [0x100059e28]
mov r8d, 0xffff
mov rbx, rax
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x10], r12
and rbx, r15
lea r10, [rax + 0x18]
mov rax, qword [0x1003feeb8]
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 0x100399c56
mov qword [0x1003feeb8], 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 0x100399cf6
xor esi, esi
test ecx, ecx
jns 0x100399982
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x100399982
mov dword [rsp + 0x38], ecx
xor esi, esi
mov ebp, ecx
not ebp
xor r14d, r14d
jmp 0x10039998b
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x100399ceb
jmp 0x100399e10
mov rsi, r11
mov rax, qword [0x10014d838]
lea r13, [0x100000000]
sub rsi, r12
mov rbp, r13
sub rbp, rax
jne 0x100399d25
test rsi, rsi
je 0x100399e05
lea r15, [0x100000000]
mov rcx, qword [0x1000199f8]
lea r9d, [rcx - 1]
mov rbx, r12
xor r8d, r8d
sub rbx, r11
sub r11d, r13d
add edi, r11d
test r9d, r9d
js 0x100399d7c
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp r11d, r10d
jae 0x100399d71
lea r9d, [rdx - 1]
jmp 0x100399d77
jbe 0x100399d81
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x100399d4b
movsxd r11, r8d
jmp 0x100399dfe
mov r11, rdx
jmp 0x100399dfe
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, edi
jae 0x100399e05
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 0x100399dda
sub r8d, 1
je 0x100399dd5
cmp r8d, 1
jne 0x100399de0
mov r10, rbp
jmp 0x100399de0
mov r10, rsi
jmp 0x100399de0
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x100399df0
cmp edx, 1
jne 0x100399dfb
add qword [r9 + rbx], r10
jmp 0x100399df4
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x100399d86
mov eax, dword [0x100015b94]
mov eax, 0x4fe0ff2
mov rax, r12
jmp 0x1003a0a48
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039a9ba
mov r9d, ebp
mov ecx, dword [0x10003d76c]
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x100399e81
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x32c864]
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x100399e72
lea ecx, [rdx - 1]
jmp 0x100399e7c
jbe 0x10039a009
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x100399e4f
mov rdx, rbp
cmp rdx, rbp
je 0x10039a9b4
mov r8, rbp
mov r14d, dword [rdx]
mov rax, r14
shr r14, 1
mov r11d, dword [0x100015b94]
and r14, r15
shr rax, 0x1d
lea rbx, [rax + rdx + 8]
sub r11, r14
inc r11
mov r9d, ebx
mov r10, r11
sub r9d, r13d
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x48], r9d
cmp r11, rbp
je 0x100399f04
mov rax, qword [0x1003feeb8]
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 0x100399ed6
mov qword [0x1003feeb8], rax
mov rax, r8
mov ecx, r9d
xor edx, edx
div r11
lea r12, [rsi + rdx]
mov r8, r12
mov rdx, r14
mov qword [rsp + 0x80], r12
mov eax, 0x113b436f
mov r11, qword [rbx + r14]
lea rcx, [rsp + 0x158]
mov bl, bpl
mov qword [rsp + 0x158], r11
mov byte [rsp + 0x20], bl
mov eax, 0xc5e5a36b
mov rdi, qword [rsp + 0x158]
mov rax, qword [0x10014d838]
mov rcx, r13
mov r9d, dword [rsp + 0x15c]
and rdi, r15
mov qword [rsp + 0xc8], rbp
mov ebp, 4
add rdi, r13
lea r13d, [rbp + 4]
and r9, r15
mov r15, 0xfffffffffffff000
sub rcx, rax
mov qword [rsp + 0x60], rcx
jne 0x10039a02a
xor r10d, r10d
test r9, r9
je 0x10039a35f
mov ecx, dword [rsp + 0xcc]
mov r8d, dword [rsp + 0xc8]
mov ebx, 0xaba54d66
movzx eax, byte [rdi + r10]
inc r10
sub eax, 0x545ab29a
add r8d, eax
add eax, ecx
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 ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
add r8d, ecx
cmp r10, r9
mov dword [rsp + 0xcc], ecx
mov dword [rsp + 0xc8], r8d
jb 0x100399faf
jmp 0x10039a35b
mov edx, dword [rbx + rdx*8 + 0x32c860]
mov eax, dword [rbx + r10*8 + 0x32c864]
shr edx, 1
and eax, r15d
and edx, r12d
add edx, eax
add rdx, r13
jmp 0x100399e84
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
sub rcx, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x78], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x30], rcx
jmp 0x10039a097
mov eax, dword [r8]
cmp rax, r11
jae 0x10039a09c
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039a088
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x10039a0dd
mov eax, dword [r8]
cmp rax, r11
jne 0x10039a0dd
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039a0dd
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039a0dd
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039a0c6
mov r9d, dword [rsp + 0xcc]
mov r14, qword [rsp + 0x60]
mov r11d, dword [rsp + 0xc8]
mov rdx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x30]
mov ebx, 0xaba54d66
mov ecx, 0xf000
cmp r8, r15
je 0x10039a2d7
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039a2d7
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039a148
add r8, r12
cmp r8, r15
je 0x10039a2d7
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039a2d7
xor esi, esi
jmp 0x10039a11b
mov eax, dword [r8]
cmp rax, rdx
jne 0x10039a164
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x10039a2d7
mov rax, rsi
mov qword [rsp + 0x60], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039a106
xor r15d, r15d
lea rcx, [0x100000000]
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, rcx
mov rcx, rax
mov qword [rsp + 0x58], rax
sub rcx, rdi
je 0x10039a200
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
add r11d, r9d
cmp r15, r12
mov dword [rsp + 0xcc], r9d
mov dword [rsp + 0xc8], r11d
jb 0x10039a1a0
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 0x10039a22a
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x10039a22f
mov edx, 2
mov rdi, r14
neg rdi
sub edx, 2
je 0x10039a255
cmp edx, 1
je 0x10039a245
or rdi, 0xffffffffffffffff
jmp 0x10039a25f
add rax, rdi
mov rdi, r13
mov qword [rsp + 0x118], rax
jmp 0x10039a25f
add dword [rsp + 0x118], edi
mov rdi, rbp
xor ebx, ebx
test rdi, rdi
je 0x10039a2ca
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 0x10039a26c
mov dword [rsp + 0xcc], r9d
mov dword [rsp + 0xc8], r11d
mov rax, qword [rsp + 0x58]
add rdi, rax
jmp 0x10039a0f2
mov r10, qword [rsp + 0x68]
xor r8d, r8d
mov bl, r8b
sub r10, rdi
mov r14, qword [rsp + 0x50]
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
je 0x10039a35f
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
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 + 0xcc], r9d
add r11d, r9d
cmp r8, r10
mov dword [rsp + 0xc8], r11d
jb 0x10039a300
mov bl, byte [rsp + 0x20]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, r13
mov al, byte [rsp + rax + 0xc8]
mov byte [rsp + rcx + 0x1b7], al
jb 0x10039a361
mov eax, 0xdf9ff061
mov ecx, dword [rsp + 0x48]
mov r10, qword [rsp + 0x70]
mov r9, r14
and r9d, 7
mov r11, r10
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x30], r10
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x28], r9
je 0x10039a878
mov edx, ecx
xor r10d, r10d
mov dword [rsp + 0x24], r10d
xor esi, esi
not edx
xor edi, edi
mov dword [rsp + 0x78], edx
test r9d, r9d
mov dword [rsp + 0x38], esi
jle 0x10039a410
lea r8d, [r10 + 0x38]
movzx edx, byte [r11]
cmp edi, ebp
jge 0x10039a3e5
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x10039a3ed
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039a3d3
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 r9d, ax
movzx r11d, word [rsp + 0x1be]
mov esi, ecx
movzx r10d, word [rsp + 0x1bc]
sub esi, r11d
movzx r8d, word [rsp + 0x1ba]
xor esi, edx
xor esi, eax
mov edi, esi
not edi
ror edi, 5
add edi, r10d
imul edi, r11d
xor edi, ecx
mov edx, edi
mov ecx, eax
xor edx, dword [rsp + 0x1bc]
sub ecx, edx
xor esi, ecx
mov ecx, esi
mov edx, dword [rsp + 0x1bc]
sub edx, esi
rol edx, 0xe
ror ecx, 0xb
imul edx, r9d
add ecx, edx
xor edi, ecx
mov edx, edi
mov ecx, edi
xor edx, eax
rol edx, 7
rol ecx, 0xd
imul edx, r11d
xor ecx, edx
xor esi, ecx
mov ecx, esi
mov edx, esi
xor edx, r11d
shr ecx, 0xc
rol edx, 2
imul edx, r10d
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, 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 ecx, edi
mov edx, edi
sub edx, r10d
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 r8d, dword [rsp + 0x38]
mov edx, esi
xor edx, r11d
imul edx, r9d
mov ecx, esi
xor esi, dword [rsp + 0x24]
shr ecx, 7
xor r9d, r9d
add edx, ecx
mov rcx, qword [rsp + 0x28]
xor edx, r8d
xor edi, edx
mov edx, edi
test ecx, ecx
mov r8d, esi
jle 0x10039a55d
mov rax, r12
cmp r9d, ebp
jge 0x10039a53b
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039a548
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039a52a
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1b8]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039a860
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov r11, qword [rsp + 0x30]
mov r10, qword [rsp + 0x70]
mov ebp, dword [rsp + 0x24]
mov rcx, r14
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039a7ac
movzx r14d, word [rsp + 0x1be]
movzx edx, word [rsp + 0x1bc]
movzx ecx, word [rsp + 0x1ba]
mov r15, qword [rsp + 0x28]
mov r12d, dword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x68], edx
movzx ecx, ax
mov dword [rsp + 0x48], ecx
movzx r8d, byte [r11 + 4]
movzx ecx, byte [r11 + 1]
movzx r9d, byte [r11]
shl r9d, 8
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
xor edx, dword [rsp + 0x1bc]
mov ecx, eax
sub ecx, edx
xor esi, ecx
mov edx, dword [rsp + 0x1bc]
sub edx, esi
rol edx, 0xe
mov ecx, esi
ror ecx, 0xb
imul edx, dword [rsp + 0x48]
add ecx, edx
xor edi, ecx
mov edx, edi
xor edx, eax
mov ecx, edi
rol edx, 7
rol ecx, 0xd
imul edx, r14d
xor ecx, edx
xor esi, ecx
mov edx, esi
movzx ecx, word [rsp + 0x1bc]
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
mov edx, esi
movzx ecx, word [rsp + 0x1bc]
xor edx, ecx
mov ecx, esi
rol edx, 1
rol ecx, 1
imul edx, dword [rsp + 0x48]
sub edx, ecx
movzx ecx, word [rsp + 0x1bc]
xor edi, edx
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
mov ecx, edi
movzx edx, word [rsp + 0x1ba]
ror ecx, 6
sub ecx, edx
imul ecx, r14d
xor esi, ecx
mov edx, esi
mov ecx, esi
xor esi, ebp
xor edx, r14d
mov ebp, r8d
shr ecx, 7
imul edx, dword [rsp + 0x48]
add edx, ecx
xor edx, r12d
xor edi, edx
mov r12d, r9d
xor bl, dil
xor bl, sil
movzx edx, word [rsp + 0x1bc]
mov byte [r10 + 3], dil
ror edi, 8
mov byte [r10 + 7], sil
mov byte [r10 + 2], dil
ror esi, 8
xor bl, dil
mov byte [r10 + 6], sil
ror edi, 8
mov byte [r10 + 1], dil
xor bl, sil
ror esi, 8
mov byte [r10 + 5], sil
xor bl, dil
ror edi, 8
mov byte [r10], dil
xor bl, sil
ror esi, 8
mov cl, sil
mov byte [r10 + 4], sil
xor cl, dil
add r10, r13
xor bl, cl
ror edi, 8
ror esi, 8
sub r15, 1
jne 0x10039a5cd
mov r14, qword [rsp + 0x50]
mov r15, 0xfffffffffffff000
mov r10, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
xor bl, byte [r10 + r14 + 8]
je 0x10039a89e
call fcn.1000024bc
mov r8d, 0xffff
lea r12, [0x100059e28]
mov rbx, rax
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
and rbx, r15
mov rax, qword [0x1003feeb8]
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 0x10039a7f7
mov qword [0x1003feeb8], 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 0x10039a894
xor esi, esi
test ecx, ecx
jns 0x10039a573
neg ecx
shl ecx, 3
shr edi, cl
shl edi, cl
jmp 0x10039a573
mov dword [rsp + 0x38], ecx
mov ebp, ecx
not ebp
xor esi, esi
xor edi, edi
jmp 0x10039a581
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039a889
jmp 0x100399e10
mov rdi, r10
sub rdi, r12
lea r13, [0x100000000]
mov rsi, r13
mov rax, qword [0x10014d838]
sub rsi, rax
jne 0x10039a8c3
test rdi, rdi
je 0x100399e05
mov rbx, r12
lea r15, [0x100000000]
xor r8d, r8d
sub rbx, r10
mov rcx, qword [0x1000199f8]
lea r9d, [rcx - 1]
sub r10d, r13d
lea ebp, [r14 + r10]
test r9d, r9d
js 0x10039a91b
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r11d, dword [r15 + rdx*4 + 0x199fc]
and r11d, 0xfffffff
cmp r10d, r11d
jae 0x10039a910
lea r9d, [rdx - 1]
jmp 0x10039a916
jbe 0x10039a923
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039a8ea
movsxd r11, r8d
jmp 0x10039a9a4
mov r11, rdx
jmp 0x10039a9a4
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x100399e05
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 0x10039a980
sub r8d, 1
je 0x10039a97b
cmp r8d, 1
jne 0x10039a986
mov r10, rsi
jmp 0x10039a986
mov r10, rdi
jmp 0x10039a986
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039a996
cmp edx, 1
jne 0x10039a9a1
add qword [r9 + rbx], r10
jmp 0x10039a99a
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039a928
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039b5af
mov ecx, dword [0x10003f98c]
mov r9d, ebp
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039aa1d
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0x312e00]
and eax, r15d
cmp r8d, eax
jae 0x10039aa0e
lea ecx, [rdx - 1]
jmp 0x10039aa18
jbe 0x10039ab9c
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039a9eb
mov rdx, rbp
cmp rdx, rbp
je 0x10039b5a9
mov r11d, dword [0x100015b94]
mov r8, rbp
mov r14d, dword [rdx]
mov eax, dword [rdx + 4]
and eax, 7
lea rdi, [rax + rdx + 8]
shr r14, 2
and r14, r15
sub r11, r14
mov qword [rsp + 0x30], rdi
inc r11
mov r9d, edi
mov r10, r11
sub r9d, r13d
mov qword [rsp + 0x70], r14
mov dword [rsp + 0x48], r9d
cmp r11, rbp
je 0x10039aaa0
mov rax, qword [0x1003feeb8]
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 0x10039aa72
mov qword [0x1003feeb8], 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, 0x9c8974d
mov r11, qword [rdi + r14]
mov bl, bpl
mov qword [rsp + 0x178], r11
lea rcx, [rsp + 0x178]
mov eax, 0x840890aa
mov rax, qword [0x10014d838]
mov rcx, r13
mov r9d, dword [rsp + 0x17c]
mov r11, qword [rsp + 0x178]
mov qword [rsp + 0x90], 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 0x10039abbb
xor r8d, r8d
test r9, r9
je 0x10039aef2
mov edx, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x94]
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
mov dword [rsp + 0x94], ecx
add edx, ecx
mov dword [rsp + 0x90], edx
cmp r8, r9
jb 0x10039ab41
jmp 0x10039aef2
mov eax, dword [rbx + r10*8 + 0x312e00]
mov edx, dword [rbx + rdx*8 + 0x312e04]
and edx, r12d
and eax, r15d
add edx, eax
add rdx, r13
jmp 0x10039aa20
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 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 + 0x40], rax
sub rcx, rax
mov qword [rsp + 0x68], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x78], rcx
jmp 0x10039ac2e
mov eax, dword [r8]
cmp rax, r10
jae 0x10039ac33
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039ac1f
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x10039ac76
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039ac76
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039ac76
mov r9, qword [rsp + 0x60]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039ac76
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039ac5f
mov r9d, dword [rsp + 0x90]
lea rbx, [0x100000000]
mov edx, dword [rsp + 0x94]
mov rdi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x78]
mov ecx, 0xf000
cmp r8, r14
je 0x10039ae77
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039ae77
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039ace1
add r8, r12
cmp r8, r14
je 0x10039ae77
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039ae77
xor esi, esi
jmp 0x10039acb2
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
jne 0x10039acff
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x68]
jae 0x10039ae77
mov rax, rsi
mov qword [rsp + 0x60], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039ac9b
movzx eax, word [r8 + rax*2 + 8]
xor r14d, r14d
and eax, r10d
add eax, dword [r8]
add rax, rbx
mov rcx, rax
mov qword [rsp + 0x50], rax
sub rcx, r11
je 0x10039ad92
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
mov dword [rsp + 0x94], edx
cmp r14, r12
mov dword [rsp + 0x90], r9d
jb 0x10039ad34
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0x100], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039adbe
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039adc4
mov r11d, 2
mov rcx, rdi
neg rcx
mov qword [rsp + 0x58], rcx
sub r11d, 2
je 0x10039adf6
cmp r11d, 1
je 0x10039ade1
or r11, 0xffffffffffffffff
jmp 0x10039ae05
mov r11, r13
mov rcx, qword [rsp + 0x58]
add rax, rcx
mov qword [rsp + 0x100], rax
jmp 0x10039ae05
mov r11, rbp
mov rcx, qword [rsp + 0x58]
add dword [rsp + 0x100], ecx
xor r14d, r14d
test r11, r11
je 0x10039ae6a
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 0x10039ae0d
mov dword [rsp + 0x94], edx
mov dword [rsp + 0x90], r9d
mov rax, qword [rsp + 0x50]
add r11, rax
jmp 0x10039ac91
mov r14, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
xor r8d, r8d
mov bl, r8b
mov rdi, qword [rsp + 0x30]
mov r10, qword [rsp + 0x38]
sub r10, r11
je 0x10039aef2
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
cmp r8, r10
mov dword [rsp + 0x90], r9d
jb 0x10039ae99
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x90]
mov byte [rsp + rcx + 0x19f], al
cmp rcx, r13
jb 0x10039aef4
mov eax, 0x20d5bcfd
mov r9, r14
and r9d, 7
mov rax, qword [rsp + 0x1a0]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x28], r9
je 0x10039b467
xor r10d, r10d
mov esi, dword [rsp + 0x48]
xor edi, edi
not esi
xor r11d, r11d
mov dword [rsp + 0x24], r10d
mov dword [rsp + 0x38], edi
test r9d, r9d
jle 0x10039af9c
lea r8d, [r10 + 0x38]
mov rax, qword [rsp + 0x40]
movzx edx, byte [rax]
cmp r11d, ebp
jge 0x10039af70
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x10039af78
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x10039af5e
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1a0]
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x24], r10d
movzx r11d, word [rsp + 0x1a6]
mov r10d, dword [rsp + 0x1a4]
movzx edi, r10w
mov ecx, r11d
mov r8d, edi
mov r9d, dword [rsp + 0x48]
xor r8d, r9d
mov r14d, r11d
mov edx, r9d
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 r9d, word [rsp + 0x1a2]
mov ecx, r9d
movzx r10d, ax
imul ecx, r8d
add edx, ecx
mov r8d, eax
xor esi, edx
mov edx, dword [rsp + 0x1a4]
mov ecx, esi
ror ecx, 8
sub ecx, r10d
imul ecx, edi
xor r14d, ecx
mov ecx, eax
xor edx, r14d
sub ecx, edx
xor esi, ecx
mov edx, esi
sub r8d, esi
mov ecx, edi
rol r8d, 3
ror edx, 0xf
imul ecx, r8d
xor edx, ecx
xor r14d, edx
mov r8d, r9d
mov ecx, r14d
sub ecx, r9d
sub ecx, dword [rsp + 0x1a4]
xor esi, ecx
mov edx, esi
mov ecx, r11d
xor ecx, esi
ror edx, 9
imul ecx, r10d
xor edx, ecx
mov ecx, r11d
xor r14d, edx
mov edx, r14d
xor r8d, r14d
rol r8d, 3
rol edx, 0xb
imul ecx, r8d
xor edx, ecx
xor esi, edx
mov edx, r10d
xor edx, esi
mov ecx, esi
shr ecx, 7
imul edx, edi
xor edx, ecx
xor r14d, edx
mov ecx, r14d
mov edx, dword [rsp + 0x38]
sub ecx, r11d
rol ecx, 6
imul r9d, ecx
mov ecx, r14d
shr ecx, 9
xor r9d, ecx
xor esi, r9d
mov ecx, esi
xor r9d, r9d
xor edi, esi
xor esi, dword [rsp + 0x24]
mov r8d, esi
shr ecx, 7
rol edi, 4
imul r10d, edi
add r10d, ecx
mov rcx, qword [rsp + 0x28]
xor r10d, edx
xor r14d, r10d
mov edx, r14d
test ecx, ecx
jle 0x10039b112
mov rax, r12
cmp r9d, ebp
jge 0x10039b0f0
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039b0fd
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039b0df
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x1a0]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039b44d
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov ebp, dword [rsp + 0x24]
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x70]
mov rcx, r11
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039b397
mov r12d, dword [rsp + 0x38]
movzx edx, word [rsp + 0x1a6]
mov ecx, edx
movzx r8d, word [rsp + 0x1a4]
mov rdi, qword [rsp + 0x40]
neg ecx
mov r15, qword [rsp + 0x28]
mov r11, qword [rsp + 0x50]
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x78], ecx
movzx ecx, ax
mov dword [rsp + 0x24], ecx
movzx ecx, byte [rdi + 1]
movzx r10d, byte [rdi]
movzx r9d, byte [rdi + 4]
shl r10d, 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
xor r14d, r10d
xor r8d, r14d
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, r14d
rol r8d, 3
rol ecx, 8
imul edx, r8d
sub edx, ecx
xor edx, r9d
movzx ecx, word [rsp + 0x1a4]
xor esi, edx
mov edx, dword [rsp + 0x48]
xor edx, esi
imul edx, ecx
mov ecx, esi
shr ecx, 7
add edx, ecx
movzx ecx, word [rsp + 0x1a2]
xor r14d, edx
mov r8d, r14d
mov edx, dword [rsp + 0x1a4]
add edx, r14d
ror edx, 1
rol r8d, 7
imul ecx, edx
movzx edx, word [rsp + 0x1a4]
add r8d, ecx
xor esi, r8d
mov ecx, esi
mov r8d, eax
ror ecx, 8
sub ecx, dword [rsp + 0x24]
imul ecx, edx
mov edx, dword [rsp + 0x1a4]
xor r14d, ecx
mov ecx, eax
xor edx, r14d
sub ecx, edx
xor esi, ecx
movzx ecx, word [rsp + 0x1a4]
mov edx, esi
sub r8d, esi
rol r8d, 3
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
rol r8d, 3
mov edx, r14d
rol edx, 0xb
mov ecx, dword [rsp + 0x48]
imul ecx, r8d
movzx r8d, word [rsp + 0x1a4]
xor edx, ecx
xor esi, edx
mov edx, dword [rsp + 0x24]
mov ecx, esi
xor edx, esi
shr ecx, 7
imul edx, r8d
xor edx, ecx
mov ecx, dword [rsp + 0x78]
xor r14d, edx
add ecx, r14d
movzx edx, word [rsp + 0x1a2]
rol ecx, 6
imul edx, ecx
mov ecx, r14d
shr ecx, 9
xor edx, ecx
mov ecx, r8d
xor esi, edx
xor ecx, esi
mov edx, dword [rsp + 0x24]
rol ecx, 4
imul edx, ecx
mov ecx, esi
xor esi, ebp
shr ecx, 7
add edx, ecx
mov ebp, r9d
xor edx, r12d
mov r12d, r10d
xor r14d, edx
xor bl, r14b
mov edx, dword [rsp + 0x48]
xor bl, sil
mov byte [r11 + 3], r14b
mov byte [r11 + 7], sil
ror r14d, 8
ror esi, 8
mov byte [r11 + 2], r14b
xor bl, r14b
mov byte [r11 + 6], sil
ror r14d, 8
mov byte [r11 + 1], r14b
xor bl, sil
ror esi, 8
xor bl, r14b
ror r14d, 8
xor bl, sil
mov byte [r11 + 5], sil
ror esi, 8
mov cl, sil
mov byte [r11], r14b
mov byte [r11 + 4], sil
xor cl, r14b
add r11, r13
xor bl, cl
ror r14d, 8
ror esi, 8
sub r15, 1
jne 0x10039b183
mov r11, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x30]
mov r15, 0xfffffffffffff000
mov r12, qword [rsp + 0x80]
mov al, byte [rdi + r11 + 8]
xor al, bl
je 0x10039b492
call fcn.1000024bc
mov rbx, rax
mov r8d, 0xffff
lea r12, [0x100059e28]
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x10], r12
lea r10, [rax + 0x18]
and rbx, r15
mov rax, qword [0x1003feeb8]
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 0x10039b3e4
mov qword [0x1003feeb8], 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 0x10039b488
xor esi, esi
test ecx, ecx
jns 0x10039b128
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x10039b128
xor esi, esi
xor r14d, r14d
mov ecx, dword [rsp + 0x48]
mov ebp, ecx
mov dword [rsp + 0x38], ecx
not ebp
jmp 0x10039b131
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039b47d
jmp 0x100399e10
lea r14, [0x100000000]
mov rsi, rdi
sub rsi, r12
mov rbp, r14
mov rax, qword [0x10014d838]
sub rbp, rax
jne 0x10039b4b7
test rsi, rsi
je 0x100399e05
xor r8d, r8d
mov rcx, qword [0x1000199f8]
lea r9d, [rcx - 1]
lea r15, [0x100000000]
mov rbx, r12
sub rbx, rdi
sub edi, r14d
test r9d, r9d
lea r13d, [r11 + rdi]
js 0x10039b50f
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039b504
lea r9d, [rdx - 1]
jmp 0x10039b50a
jbe 0x10039b517
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039b4de
movsxd r11, r8d
jmp 0x10039b599
mov r11, rdx
jmp 0x10039b599
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x100399e05
mov r8d, edx
mov r9, rdx
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 0x10039b575
sub r8d, 1
je 0x10039b570
cmp r8d, 1
jne 0x10039b57b
mov r10, rbp
jmp 0x10039b57b
mov r10, rsi
jmp 0x10039b57b
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x10039b58b
cmp edx, 1
jne 0x10039b596
add qword [r9 + rbx], r10
jmp 0x10039b58f
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039b51c
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039c1fb
mov ecx, dword [0x10031dbcc]
mov r8d, edi
mov r9d, ebp
sub r8d, r13d
sub ecx, r11d
js 0x10039b612
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0xe805c]
mov r10, rdx
and eax, r15d
cmp r8d, eax
jae 0x10039b603
lea ecx, [rdx - 1]
jmp 0x10039b60d
jbe 0x10039b7ba
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039b5e0
mov rdx, rbp
cmp rdx, rbp
je 0x10039c1f5
mov edi, dword [rdx]
mov r11d, dword [0x100015b94]
mov r8, rbp
mov eax, dword [rdx + 4]
and eax, 7
lea r14, [rax + rdx + 8]
mov r9d, r14d
shr rdi, 1
mov qword [rsp + 0x60], r14
and rdi, r15
mov qword [rsp + 0x50], rdi
sub r11, rdi
inc r11
sub r9d, r13d
mov dword [rsp + 0x38], r9d
cmp r11, rbp
mov r10, r11
je 0x10039b693
mov rax, qword [0x1003feeb8]
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 0x10039b665
mov qword [0x1003feeb8], rax
xor edx, edx
mov rax, r8
mov ecx, r9d
div r11
lea r12, [rsi + rdx]
mov r8, r12
mov qword [rsp + 0x80], r12
mov rdx, rdi
mov eax, 0xaaf344de
mov r11, qword [rdi + r14]
mov bl, bpl
mov qword [rsp + 0x140], r11
lea rcx, [rsp + 0x140]
mov eax, 0x32f7b706
mov rax, qword [0x10014d838]
mov r9d, dword [rsp + 0x144]
mov rcx, r13
mov r11, qword [rsp + 0x140]
mov qword [rsp + 0xa0], rbp
mov ebp, 4
and r11, r15
and r9, r15
add r11, r13
mov r15, 0xfffffffffffff000
sub rcx, rax
lea r13d, [rbp + 4]
mov qword [rsp + 0x30], rcx
jne 0x10039b7db
xor r10d, r10d
test r9, r9
je 0x10039bb7f
mov ecx, dword [rsp + 0xa4]
mov edi, 0xb0d52e05
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
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
mov ecx, dword [rsp + 0x30]
shr rax, 0x20
add ecx, eax
add r8d, ecx
cmp r10, r9
mov dword [rsp + 0xa4], ecx
mov dword [rsp + 0xa0], r8d
jb 0x10039b73a
jmp 0x10039bb7a
mov edx, dword [rbx + rdx*8 + 0xe805c]
mov eax, dword [rbx + r10*8 + 0xe8058]
shr eax, 1
and edx, r15d
and eax, r12d
add edx, eax
add rdx, r13
jmp 0x10039b615
lea rdx, [0x100000000]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
lea rax, [r11 + r9]
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 0x10039b848
mov eax, dword [r8]
cmp rax, rdi
jae 0x10039b84d
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039b839
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x10039b88e
mov eax, dword [r8]
cmp rax, rdi
jne 0x10039b88e
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039b88e
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039b88e
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039b877
mov edi, 0xb0d52e05
mov edx, dword [rsp + 0xa4]
mov rbx, qword [rsp + 0x30]
lea r15, [0x100000000]
mov r9d, dword [rsp + 0xa0]
mov ecx, 0xf000
cmp r8, qword [rsp + 0x58]
je 0x10039badb
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039badb
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039b8fd
add r8, r12
cmp r8, qword [rsp + 0x58]
je 0x10039badb
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039badb
xor esi, esi
jmp 0x10039b8cc
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
jne 0x10039b91b
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x10039badb
mov rax, rsi
mov qword [rsp + 0x68], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039b8b3
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, r11
mov qword [rsp + 0x70], rax
je 0x10039b9d4
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
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
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
mov dword [rsp + 0xa4], edx
add r9d, edx
cmp r14, r12
mov dword [rsp + 0xa0], r9d
jb 0x10039b954
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
movzx ecx, word [r8 + rcx*2 + 8]
shr ecx, 0xc
mov rax, qword [rax]
mov qword [rsp + 0x110], rax
cmp ecx, 3
je 0x10039ba00
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039ba06
mov r11d, 2
mov rcx, rbx
neg rcx
mov qword [rsp + 0x30], rcx
sub r11d, 2
je 0x10039ba38
cmp r11d, 1
je 0x10039ba23
or r11, 0xffffffffffffffff
jmp 0x10039ba47
mov rcx, qword [rsp + 0x30]
add rax, rcx
mov qword [rsp + 0x110], rax
mov r11, r13
jmp 0x10039ba47
mov rcx, qword [rsp + 0x30]
add dword [rsp + 0x110], ecx
mov r11, rbp
xor r14d, r14d
test r11, r11
je 0x10039bace
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
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
mov edx, dword [rsp + 0x30]
shr rax, 0x20
add edx, eax
add r9d, edx
cmp r14, r11
jb 0x10039ba4f
mov dword [rsp + 0xa4], edx
mov dword [rsp + 0xa0], r9d
mov rax, qword [rsp + 0x70]
add r11, rax
jmp 0x10039b8ae
mov r14, qword [rsp + 0x60]
mov r15, 0xfffffffffffff000
xor r8d, r8d
mov bl, r8b
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x48]
sub r10, r11
je 0x10039bb7a
movzx eax, byte [r8 + r11]
inc r8
sub eax, 0x4f2ad1fb
add r9d, eax
add eax, edx
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
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
mov dword [rsp + 0xa0], r9d
cmp r8, r10
jb 0x10039baff
mov rdi, qword [rsp + 0x50]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, r13
mov al, byte [rsp + rax + 0xa0]
mov byte [rsp + rcx + 0x1cf], al
jb 0x10039bb81
mov eax, 0xaecfe727
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x40], r14
mov r9, rdi
mov rsi, r12
and r9d, 7
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x30], r12
je 0x10039c0b6
xor r10d, r10d
xor edi, edi
mov r8d, dword [rsp + 0x38]
mov dword [rsp + 0x24], r10d
xor r11d, r11d
test r9d, r9d
mov dword [rsp + 0x48], edi
mov esi, r8d
not esi
jle 0x10039bc33
mov rax, r14
lea r8d, [r10 + 0x38]
cmp r11d, ebp
movzx edx, byte [rax]
jge 0x10039bc02
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x10039bc0a
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x10039bbf0
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 r9d, dword [rsp + 0x1d4]
mov ecx, r8d
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
lea edx, [r9 + rdi]
movzx r8d, word [rsp + 0x1d2]
ror edx, 4
mov ecx, edi
ror ecx, 0xf
imul edx, r8d
sub edx, ecx
xor esi, edx
mov ecx, esi
mov edx, r9d
sub edx, esi
ror edx, 2
rol ecx, 7
movzx r9d, ax
imul edx, r9d
xor ecx, edx
xor edi, ecx
mov edx, eax
sub edx, edi
mov ecx, edi
rol edx, 0xc
ror ecx, 4
imul edx, r10d
add ecx, edx
mov edx, eax
xor esi, ecx
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
mov ecx, edi
sub edx, edi
ror edx, 1
ror ecx, 6
imul edx, r10d
sub edx, ecx
xor esi, edx
mov ecx, esi
mov edx, r8d
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 r8d, edi
mov rcx, qword [rsp + 0x28]
test ecx, ecx
jle 0x10039bd8a
mov rdx, r12
cmp r11d, ebp
jge 0x10039bd70
rol r8d, 8
mov byte [rdx], r8b
inc rdx
xor bl, r8b
jmp 0x10039bd7d
rol r9d, 8
mov byte [rdx], r9b
inc rdx
xor bl, r9b
inc r11d
cmp r11d, ecx
jl 0x10039bd5c
mov qword [rsp + 0x30], rdx
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039c09d
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr r10d, cl
shl r10d, cl
mov ebp, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x50]
mov rcx, r11
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039bfe9
mov r15d, dword [rsp + 0x1d4]
mov r14, qword [rsp + 0x28]
movzx ecx, word [rsp + 0x1d2]
mov r11, qword [rsp + 0x40]
mov r12d, dword [rsp + 0x48]
mov dword [rsp + 0x78], ecx
mov ecx, dword [rsp + 0x1d4]
movzx edx, cx
mov dword [rsp + 0x38], edx
xor ecx, eax
movzx edx, word [rsp + 0x1d6]
mov dword [rsp + 0x70], ecx
movzx ecx, ax
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x24], ecx
movzx r8d, byte [r11 + 4]
movzx ecx, byte [r11 + 1]
movzx r9d, byte [r11]
shl r9d, 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 edi, r9d
movzx ecx, byte [r11 + 6]
mov edx, edi
shl r8d, 8
xor edx, dword [rsp + 0x38]
or r8d, ecx
movzx ecx, byte [r11 + 7]
shl r8d, 8
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
mov ecx, edi
lea edx, [r15 + rdi]
ror edx, 4
ror ecx, 0xf
imul edx, dword [rsp + 0x78]
sub edx, ecx
xor r10d, edx
mov edx, r15d
mov ecx, r10d
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 ecx, r10d
mov edx, eax
xor edx, r10d
rol edx, 0xb
ror ecx, 8
imul edx, dword [rsp + 0x38]
xor ecx, edx
xor edi, ecx
mov ecx, edi
mov edx, edi
xor ecx, dword [rsp + 0x24]
ror edx, 4
imul ecx, dword [rsp + 0x78]
sub ecx, edx
xor r10d, ecx
mov ecx, r10d
mov edx, eax
sub ecx, r15d
sub ecx, dword [rsp + 0x24]
xor edi, ecx
sub edx, edi
ror edx, 1
mov ecx, edi
ror ecx, 6
imul edx, dword [rsp + 0x68]
sub edx, ecx
xor r10d, edx
mov ecx, r10d
movzx edx, word [rsp + 0x1d6]
not ecx
ror ecx, 0xe
add ecx, dword [rsp + 0x38]
imul ecx, edx
xor edi, ecx
mov edx, r15d
xor r10d, edi
xor r10d, dword [rsp + 0x70]
mov ecx, r10d
xor edx, r10d
xor r10d, ebp
mov ebp, r8d
rol edx, 0xf
ror ecx, 8
imul edx, dword [rsp + 0x24]
add ecx, edx
xor ecx, r12d
xor edi, ecx
mov byte [rsi + 3], dil
mov byte [rsi + 7], r10b
xor bl, dil
mov r12d, r9d
xor bl, r10b
ror edi, 8
mov byte [rsi + 2], dil
ror r10d, 8
xor bl, dil
mov byte [rsi + 6], r10b
ror edi, 8
mov byte [rsi + 1], dil
xor bl, r10b
ror r10d, 8
xor bl, dil
ror edi, 8
mov byte [rsi + 5], r10b
mov byte [rsi], dil
xor bl, r10b
ror r10d, 8
mov byte [rsi + 4], r10b
mov cl, r10b
xor cl, dil
add rsi, r13
xor bl, cl
ror edi, 8
ror r10d, 8
sub r14, 1
jne 0x10039be0f
mov r14, qword [rsp + 0x60]
mov r15, 0xfffffffffffff000
mov r11, qword [rsp + 0x50]
mov r12, qword [rsp + 0x80]
xor bl, byte [r14 + r11 + 8]
je 0x10039c0df
call fcn.1000024bc
mov rbx, rax
lea r12, [0x100059e28]
and rbx, r15
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x10], r12
lea r10, [rax + 0x18]
and r10, 0xfffffffffffffff8
mov r8d, 0xffff
mov rax, qword [0x1003feeb8]
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 0x10039c034
mov qword [0x1003feeb8], 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 0x10039c0d5
xor r10d, r10d
test ecx, ecx
jns 0x10039bda2
neg ecx
shl ecx, 3
shr edi, cl
shl edi, cl
jmp 0x10039bda2
mov ebp, dword [rsp + 0x38]
xor r10d, r10d
mov dword [rsp + 0x48], ebp
not ebp
xor edi, edi
jmp 0x10039bdab
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039c0ca
jmp 0x100399e10
mov rax, qword [0x10014d838]
mov rdi, r14
sub rdi, r12
lea r13, [0x100000000]
mov rsi, r13
sub rsi, rax
jne 0x10039c104
test rdi, rdi
je 0x100399e05
mov rbx, r12
xor r8d, r8d
lea r15, [0x100000000]
sub rbx, r14
sub r14d, r13d
mov rcx, qword [0x1000199f8]
lea ebp, [r11 + r14]
lea r9d, [rcx - 1]
test r9d, r9d
js 0x10039c15c
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp r14d, r10d
jae 0x10039c151
lea r9d, [rdx - 1]
jmp 0x10039c157
jbe 0x10039c164
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039c12b
movsxd r11, r8d
jmp 0x10039c1e5
mov r11, rdx
jmp 0x10039c1e5
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x100399e05
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 0x10039c1c1
sub r8d, 1
je 0x10039c1bc
cmp r8d, 1
jne 0x10039c1c7
mov r10, rsi
jmp 0x10039c1c7
mov r10, rdi
jmp 0x10039c1c7
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039c1d7
cmp edx, 1
jne 0x10039c1e2
add qword [r9 + rbx], r10
jmp 0x10039c1db
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039c169
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039ce1c
mov r8d, edi
mov ecx, dword [0x100042830]
mov r9d, ebp
sub r8d, r13d
sub ecx, r11d
js 0x10039c25e
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x369e30]
and eax, r15d
cmp r8d, eax
mov r10, rdx
jae 0x10039c24f
lea ecx, [rdx - 1]
jmp 0x10039c259
jbe 0x10039c3ed
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039c22c
mov rdx, rbp
cmp rdx, rbp
je 0x10039ce16
mov r11d, dword [0x100015b94]
mov r14d, dword [rdx]
mov r8, rbp
and r14, r15
mov eax, dword [rdx + 4]
and eax, 7
lea rbx, [rax + rdx + 8]
mov r9d, ebx
sub r11, r14
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x30], rbx
inc r11
sub r9d, r13d
mov dword [rsp + 0x78], r9d
cmp r11, rbp
mov r10, r11
je 0x10039c2dd
mov rax, qword [0x1003feeb8]
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 0x10039c2af
mov qword [0x1003feeb8], rax
mov ecx, r9d
mov rax, r8
xor edx, edx
div r11
lea r12, [rsi + rdx]
mov r8, r12
mov rdx, r14
mov qword [rsp + 0x80], r12
mov eax, 0x3f9426ab
lea rcx, [rsp + 0x150]
mov r11, qword [rbx + r14]
mov qword [rsp + 0x150], r11
mov bl, bpl
mov eax, 0xb35ec2d8
mov rax, qword [0x10014d838]
mov rcx, r13
mov r9d, dword [rsp + 0x154]
mov rdi, qword [rsp + 0x150]
mov qword [rsp + 0xb0], rbp
and rdi, r15
and r9, r15
mov r15, 0xfffffffffffff000
add rdi, r13
sub rcx, rax
mov ebp, 4
mov qword [rsp + 0x60], rcx
lea r13d, [rbp + 4]
jne 0x10039c40c
xor r10d, r10d
test r9, r9
je 0x10039c76b
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
add r8d, eax
cmp r10, r9
mov dword [rsp + 0xb4], eax
mov dword [rsp + 0xb0], r8d
jb 0x10039c37f
jmp 0x10039c76b
mov edx, dword [rbx + rdx*8 + 0x369e34]
mov eax, dword [rbx + r10*8 + 0x369e30]
and edx, r12d
and eax, r15d
add edx, eax
add rdx, r13
jmp 0x10039c261
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
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 + 0x58], rax
sub rcx, rax
mov qword [rsp + 0x50], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x40], rcx
jmp 0x10039c479
mov eax, dword [r8]
cmp rax, r11
jae 0x10039c47e
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039c46a
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x10039c4bf
mov eax, dword [r8]
cmp rax, r11
jne 0x10039c4bf
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039c4bf
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039c4bf
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039c4a8
lea r15, [0x100000000]
mov r11d, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0xb4]
mov rbx, qword [rsp + 0x60]
mov ecx, 0xf000
mov rdx, qword [rsp + 0x58]
mov r14, qword [rsp + 0x40]
cmp r8, r14
je 0x10039c6d8
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039c6d8
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039c52c
add r8, r12
cmp r8, r14
je 0x10039c6d8
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039c6d8
xor esi, esi
jmp 0x10039c4ff
mov eax, dword [r8]
cmp rax, rdx
jne 0x10039c548
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x50]
jae 0x10039c6d8
mov rax, rsi
inc rsi
mov qword [rsp + 0x68], rax
test word [r8 + rax*2 + 8], cx
je 0x10039c4ea
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 0x10039c5f1
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 0x10039c57d
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rax]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0x120], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039c61b
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x10039c620
mov edx, 2
mov rdi, rbx
neg rdi
sub edx, 2
je 0x10039c646
cmp edx, 1
je 0x10039c636
or rdi, 0xffffffffffffffff
jmp 0x10039c650
add rax, rdi
mov rdi, r13
mov qword [rsp + 0x120], rax
jmp 0x10039c650
add dword [rsp + 0x120], edi
mov rdi, rbp
xor r14d, r14d
test rdi, rdi
je 0x10039c6cb
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 0x10039c658
mov dword [rsp + 0xb4], r9d
mov dword [rsp + 0xb0], r11d
mov rax, qword [rsp + 0x60]
add rdi, rax
jmp 0x10039c4db
mov r15, 0xfffffffffffff000
xor r8d, r8d
mov r12, qword [rsp + 0x80]
mov r14, qword [rsp + 0x70]
mov bl, r8b
mov r10, qword [rsp + 0x48]
sub r10, rdi
je 0x10039c76b
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
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
mov dword [rsp + 0xb4], r9d
mov dword [rsp + 0xb0], r11d
cmp r8, r10
jb 0x10039c6fc
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 0x10039c76d
mov eax, 0xd165daa7
mov r11, qword [rsp + 0x30]
mov rax, qword [rsp + 0x1a8]
mov qword [rsp + 0x50], r11
mov rdi, r11
mov qword [rsp + 0x40], r12
mov r9, r14
and r9d, 7
mov qword [rsp + 0x28], r9
je 0x10039ccd4
mov r11d, dword [rsp + 0x78]
xor r10d, r10d
xor r14d, r14d
mov esi, r11d
not esi
and dword [rsp + 0x24], r10d
mov dword [rsp + 0x48], r10d
test r9d, r9d
jle 0x10039c811
lea r8d, [r10 + 0x38]
movzx edx, byte [rdi]
cmp r14d, ebp
jge 0x10039c7f1
lea ecx, [r8 - 0x20]
shl edx, cl
or dword [rsp + 0x24], edx
jmp 0x10039c7f9
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r14d
inc rdi
sub r8d, r13d
cmp r14d, r9d
jl 0x10039c7dd
mov dword [rsp + 0x48], r10d
mov qword [rsp + 0x50], rdi
movzx edi, word [rsp + 0x1aa]
movzx r9d, word [rsp + 0x1ae]
mov ecx, eax
mov r8d, dword [rsp + 0x1ac]
movzx r10d, r8w
mov edx, r8d
xor edx, r11d
sub ecx, edx
xor esi, ecx
mov edx, esi
mov r14d, esi
sub edx, eax
ror edx, 1
mov ecx, r10d
ror r14d, 1
imul ecx, edx
add r14d, ecx
xor r14d, r11d
mov ecx, r14d
movzx r11d, ax
sub ecx, edi
xor ecx, r8d
xor esi, ecx
mov r8d, r9d
mov edx, esi
xor r8d, esi
mov ecx, r11d
rol r8d, 7
rol edx, 0xc
imul ecx, r8d
sub ecx, edx
mov r8d, eax
xor r14d, ecx
sub r8d, r14d
mov ecx, r9d
ror r8d, 0xf
mov edx, r14d
ror edx, 1
imul ecx, r8d
add edx, ecx
mov r8d, dword [rsp + 0x1ac]
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
sub ecx, edx
mov r8d, dword [rsp + 0x24]
xor esi, ecx
mov ecx, r10d
mov edx, esi
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 ecx, esi
mov edx, edi
xor edx, esi
shr ecx, 0xa
imul edx, r10d
xor edx, ecx
xor r14d, edx
mov ecx, r11d
xor ecx, r14d
rol ecx, 4
imul edi, ecx
mov ecx, r14d
shr ecx, 8
xor r9d, r9d
add edi, ecx
xor esi, edi
mov ecx, dword [rsp + 0x1ac]
mov edx, esi
xor ecx, 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
test ecx, ecx
mov edx, r14d
jle 0x10039c97f
mov rax, r12
cmp r9d, ebp
jge 0x10039c95d
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039c96a
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039c94c
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1a8]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039ccba
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov rdi, qword [rsp + 0x50]
mov r11, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x70]
mov rcx, rbp
shr rcx, 3
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x10039cc04
mov r12d, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov edx, dword [rsp + 0x1ac]
movzx ecx, dx
mov r15, qword [rsp + 0x28]
mov dword [rsp + 0x68], ecx
movzx ecx, ax
mov dword [rsp + 0x38], ecx
movzx r10d, byte [rdi + 1]
movzx ecx, byte [rdi]
shl ecx, 8
movzx r9d, byte [rdi + 4]
shl r9d, 8
or r10d, ecx
movzx ecx, byte [rdi + 2]
shl r10d, 8
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
mov ecx, edx
xor ecx, r14d
mov edx, eax
sub edx, ecx
xor edx, r9d
mov ecx, dword [rsp + 0x68]
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
mov ecx, r14d
movzx edx, word [rsp + 0x1aa]
sub ecx, edx
mov edx, dword [rsp + 0x1ac]
xor ecx, edx
xor esi, ecx
mov ecx, dword [rsp + 0x38]
mov edx, esi
xor r8d, esi
rol r8d, 7
rol edx, 0xc
imul ecx, r8d
mov r8d, eax
sub ecx, edx
xor r14d, ecx
movzx ecx, word [rsp + 0x1ae]
mov edx, r14d
sub r8d, r14d
ror r8d, 0xf
ror edx, 1
imul ecx, r8d
add edx, ecx
xor esi, edx
mov r8d, dword [rsp + 0x1ac]
movzx edx, word [rsp + 0x1ae]
mov ecx, esi
ror ecx, 0xa
xor ecx, dword [rsp + 0x68]
imul ecx, edx
xor r14d, ecx
movzx ecx, word [rsp + 0x1aa]
add r8d, r14d
mov edx, r14d
rol r8d, 9
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
movzx edx, word [rsp + 0x1aa]
mov ecx, esi
xor edx, esi
shr ecx, 0xa
imul edx, r8d
xor edx, ecx
xor r14d, edx
mov ecx, dword [rsp + 0x38]
xor ecx, r14d
rol ecx, 4
movzx edx, word [rsp + 0x1aa]
imul edx, ecx
mov ecx, r14d
shr ecx, 8
add edx, ecx
mov ecx, dword [rsp + 0x38]
xor esi, edx
mov edx, dword [rsp + 0x1ac]
xor edx, esi
mov r8d, esi
xor esi, ebp
mov ebp, r9d
ror edx, 1
ror r8d, 0xb
imul ecx, edx
mov edx, dword [rsp + 0x1ac]
xor r8d, ecx
xor r8d, r12d
xor r14d, r8d
xor bl, r14b
mov byte [r11 + 3], r14b
xor bl, sil
mov byte [r11 + 7], sil
ror r14d, 8
mov r12d, r10d
ror esi, 8
mov byte [r11 + 2], r14b
xor bl, r14b
ror r14d, 8
xor bl, sil
mov byte [r11 + 6], sil
mov byte [r11 + 1], r14b
ror esi, 8
xor bl, r14b
ror r14d, 8
mov byte [r11 + 5], sil
mov byte [r11], r14b
xor bl, sil
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 0x10039c9e1
mov r15, 0xfffffffffffff000
mov rbp, qword [rsp + 0x70]
mov r11, qword [rsp + 0x30]
mov r12, qword [rsp + 0x80]
mov al, byte [r11 + rbp + 8]
xor al, bl
je 0x10039cd01
call fcn.1000024bc
lea r12, [0x100059e28]
mov r8d, 0xffff
mov rbx, rax
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
and rbx, r15
mov rax, qword [0x1003feeb8]
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 0x10039cc51
mov qword [0x1003feeb8], 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 0x10039ccf7
xor esi, esi
test ecx, ecx
jns 0x10039c995
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x10039c995
xor esi, esi
mov ecx, dword [rsp + 0x78]
mov dword [rsp + 0x24], ecx
xor r14d, r14d
not ecx
mov dword [rsp + 0x48], ecx
jmp 0x10039c99f
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039ccec
jmp 0x100399e10
mov rax, qword [0x10014d838]
mov rdi, r11
lea r13, [0x100000000]
mov rsi, r13
sub rdi, r12
sub rsi, rax
jne 0x10039cd26
test rdi, rdi
je 0x100399e05
mov rcx, qword [0x1000199f8]
lea r9d, [rcx - 1]
lea r15, [0x100000000]
mov rbx, r12
xor r8d, r8d
sub rbx, r11
sub r11d, r13d
add ebp, r11d
test r9d, r9d
js 0x10039cd7d
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp r11d, r10d
jae 0x10039cd72
lea r9d, [rdx - 1]
jmp 0x10039cd78
jbe 0x10039cd85
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039cd4c
movsxd r11, r8d
jmp 0x10039ce06
mov r11, rdx
jmp 0x10039ce06
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x100399e05
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 0x10039cde2
sub r8d, 1
je 0x10039cddd
cmp r8d, 1
jne 0x10039cde8
mov r10, rsi
jmp 0x10039cde8
mov r10, rdi
jmp 0x10039cde8
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039cdf8
cmp edx, 1
jne 0x10039ce03
add qword [r9 + rbx], r10
jmp 0x10039cdfc
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039cd8a
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039d99e
mov ecx, dword [0x100246988]
mov r9d, ebp
mov r8d, edi
sub r8d, r13d
sub ecx, r11d
js 0x10039ce7f
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0x15f34]
and eax, r15d
cmp r8d, eax
jae 0x10039ce70
lea ecx, [rdx - 1]
jmp 0x10039ce7a
jbe 0x10039cfe7
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039ce4d
mov rdx, rbp
cmp rdx, rbp
je 0x10039d998
mov r8, rbp
mov r14d, dword [rdx + 4]
and r14, r15
mov eax, dword [rdx]
and eax, 7
mov r10d, dword [0x100015b94]
lea rdi, [rax + rdx + 8]
mov ecx, edi
sub r10, r14
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x30], rdi
inc r10
mov r9, r10
sub ecx, r13d
mov dword [rsp + 0x48], ecx
cmp r10, rbp
je 0x10039cefc
mov rax, qword [0x1003feeb8]
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 0x10039cece
mov qword [0x1003feeb8], rax
xor edx, edx
mov rax, r8
div r10
lea r12, [rsi + rdx]
mov esi, dword [rsp + 0x48]
mov qword [rsp + 0x80], r12
mov r8, r12
mov rdx, r14
mov ecx, esi
mov eax, 0xe0ba63f7
mov bl, bpl
mov r11, qword [rdi + r14]
mov qword [rsp + 0x160], r11
lea rcx, [rsp + 0x160]
mov eax, 0x677684d9
mov rcx, r13
mov r11, qword [rsp + 0x160]
mov r9d, dword [rsp + 0x164]
and r11, r15
mov rax, qword [0x10014d838]
mov qword [rsp + 0x88], rbp
mov ebp, 4
and r9, r15
add r11, r13
sub rcx, rax
lea r13d, [rbp + 4]
mov qword [rsp + 0x58], rcx
mov r15, 0xfffffffffffff000
jne 0x10039d006
xor r8d, r8d
test r9, r9
je 0x10039d2fe
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
cmp r8, r9
mov dword [rsp + 0x88], edx
jb 0x10039cfa0
jmp 0x10039d2fe
mov edx, dword [rbx + rdx*8 + 0x15f34]
and edx, r15d
mov eax, dword [rbx + r10*8 + 0x15f30]
and eax, r12d
add edx, eax
add rdx, r13
jmp 0x10039ce82
lea rdx, [0x100000000]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
lea rax, [r11 + r9]
mov qword [rsp + 0x78], rax
mov eax, r11d
sub eax, edx
add r8, rdx
mov r10d, eax
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
sub rcx, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x70], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x50], rcx
jmp 0x10039d079
mov eax, dword [r8]
cmp rax, r10
jae 0x10039d07e
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039d06a
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039d0c1
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039d0c1
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039d0c1
lea rdx, [r8 + 8]
mov r9, qword [rsp + 0x60]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039d0c1
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039d0aa
mov r9d, dword [rsp + 0x88]
mov r12, qword [rsp + 0x58]
mov edx, dword [rsp + 0x8c]
lea rbx, [0x100000000]
mov r14, qword [rsp + 0x50]
mov ecx, 0xf000
cmp r8, r14
je 0x10039d295
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039d295
mov edi, dword [r8 + 4]
lea rax, [rdi - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039d12b
add r8, rdi
cmp r8, r14
je 0x10039d295
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
ja 0x10039d295
xor esi, esi
jmp 0x10039d0fd
mov eax, dword [r8]
cmp rax, qword [rsp + 0x40]
jne 0x10039d149
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x70]
jae 0x10039d295
mov rax, rsi
mov qword [rsp + 0x60], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039d0e6
movzx ecx, word [r8 + rax*2 + 8]
xor r14d, r14d
and ecx, r10d
add ecx, dword [r8]
add rcx, rbx
mov qword [rsp + 0x58], rcx
mov rax, rcx
sub rax, r11
je 0x10039d1c3
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
mov dword [rsp + 0x8c], edx
cmp r14, rdi
mov dword [rsp + 0x88], r9d
jb 0x10039d17e
mov rax, qword [rcx]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
shr ecx, 0xc
mov qword [rsp + 0x130], rax
cmp ecx, 3
je 0x10039d1ef
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039d1f5
mov r11d, 2
mov rcx, r12
neg rcx
sub r11d, 2
mov qword [rsp + 0x60], rcx
je 0x10039d227
cmp r11d, 1
je 0x10039d212
or rcx, 0xffffffffffffffff
jmp 0x10039d236
mov rcx, qword [rsp + 0x60]
add rax, rcx
mov qword [rsp + 0x130], rax
mov rcx, r13
jmp 0x10039d236
mov rcx, qword [rsp + 0x60]
add dword [rsp + 0x130], ecx
mov rcx, rbp
xor r11d, r11d
test rcx, rcx
je 0x10039d287
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 0x10039d23e
mov dword [rsp + 0x8c], edx
mov dword [rsp + 0x88], r9d
mov rax, qword [rsp + 0x58]
lea r11, [rcx + rax]
jmp 0x10039d0dc
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x68]
mov r8, qword [rsp + 0x78]
xor ecx, ecx
mov bl, cl
sub r8, r11
mov r12, qword [rsp + 0x80]
je 0x10039d2fa
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
mov dword [rsp + 0x8c], edx
add r9d, edx
mov dword [rsp + 0x88], r9d
cmp rcx, r8
jb 0x10039d2b5
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 0x10039d300
mov eax, 0x5183e96e
mov rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x50], rdi
mov r9, r14
and r9d, 7
mov r11, rdi
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x40], r12
je 0x10039d85c
mov r14d, esi
not r14d
xor r10d, r10d
xor edi, edi
and dword [rsp + 0x38], r10d
mov dword [rsp + 0x24], r10d
test r9d, r9d
jle 0x10039d399
lea r8d, [r10 + 0x38]
movzx edx, byte [r11]
cmp edi, ebp
jge 0x10039d37a
lea ecx, [r8 - 0x20]
shl edx, cl
or dword [rsp + 0x38], edx
jmp 0x10039d382
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039d366
mov dword [rsp + 0x24], r10d
mov qword [rsp + 0x50], r11
movzx r9d, word [rsp + 0x1ce]
mov ecx, esi
mov edx, esi
mov r8d, dword [rsp + 0x1cc]
movzx r10d, word [rsp + 0x1ca]
movzx r11d, r8w
shr ecx, 0xa
movzx edi, ax
sub edx, r11d
imul edx, r9d
mov esi, edi
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
mov r8d, r10d
xor r14d, ecx
mov edx, r14d
xor r8d, r14d
rol r8d, 2
ror edx, 6
mov ecx, edi
imul ecx, r8d
xor edx, ecx
mov r8d, r9d
xor esi, edx
mov edx, r9d
mov ecx, eax
xor ecx, esi
rol ecx, 6
imul edx, ecx
mov ecx, esi
shr ecx, 1
sub edx, ecx
mov ecx, r11d
xor r14d, edx
mov edx, r14d
xor r8d, r14d
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 r8d, r14d
mov ecx, edi
sub r8d, dword [rsp + 0x1cc]
rol r8d, 3
ror edx, 0xd
imul ecx, r8d
mov r8d, dword [rsp + 0x1cc]
add edx, ecx
xor esi, edx
mov ecx, edi
mov edx, esi
xor ecx, esi
ror edx, 0xc
imul ecx, r9d
add edx, ecx
xor r14d, edx
mov ecx, r14d
mov edx, edi
xor edx, r14d
rol edx, 6
shr ecx, 3
imul edx, r11d
add edx, ecx
xor esi, edx
mov ecx, esi
lea edx, [r8 + rsi]
xor r9d, r9d
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
mov r8d, r14d
test ecx, ecx
mov edx, r10d
jle 0x10039d50b
mov rax, r12
cmp r9d, ebp
jge 0x10039d4e9
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039d4f6
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039d4d8
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x1c8]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039d841
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr r14d, cl
shl r14d, cl
mov rdi, qword [rsp + 0x30]
mov ebp, dword [rsp + 0x24]
mov r11, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x68]
mov rcx, rsi
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039d78c
movzx ecx, word [rsp + 0x1ce]
mov r15d, dword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x28]
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 ecx, byte [r11]
shl ecx, 8
movzx r9d, byte [r11 + 1]
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 r10d, r9d
movzx ecx, byte [r11 + 6]
shl r8d, 8
mov edx, r10d
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
mov ecx, dword [rsp + 0x24]
xor edx, r8d
xor r14d, edx
mov edx, r14d
xor ecx, r14d
ror edx, 7
imul ecx, dword [rsp + 0x48]
sub ecx, edx
movzx edx, word [rsp + 0x1ca]
xor r10d, ecx
mov ecx, r10d
sub ecx, edx
sub ecx, r12d
xor r14d, ecx
mov ecx, r14d
xor edx, r14d
rol edx, 2
ror ecx, 6
imul edx, dword [rsp + 0x24]
xor ecx, edx
mov edx, eax
xor r10d, ecx
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
movzx edx, word [rsp + 0x1ce]
mov ecx, r14d
xor edx, r14d
rol edx, 1
ror ecx, 6
imul edx, dword [rsp + 0x48]
sub edx, ecx
xor r10d, edx
mov ecx, r10d
movzx edx, word [rsp + 0x1ca]
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 ecx, r14d
mov edx, dword [rsp + 0x24]
xor edx, r14d
shr ecx, 3
rol edx, 6
imul edx, dword [rsp + 0x48]
add edx, ecx
xor r10d, edx
lea edx, [r10 + r12]
mov ecx, r10d
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
xor r10d, r12d
xor bl, r10b
mov ebp, r8d
mov r15d, r9d
mov byte [rdi + 3], r10b
mov byte [rdi + 7], r14b
xor bl, r14b
ror r10d, 8
mov byte [rdi + 2], r10b
ror r14d, 8
xor bl, r10b
mov byte [rdi + 6], r14b
ror r10d, 8
xor bl, r14b
mov byte [rdi + 1], r10b
ror r14d, 8
xor bl, r10b
ror r10d, 8
mov byte [rdi + 5], r14b
mov byte [rdi], r10b
xor bl, r14b
ror r14d, 8
mov cl, r14b
xor cl, r10b
mov byte [rdi + 4], r14b
add rdi, r13
xor bl, cl
ror r10d, 8
ror r14d, 8
sub rsi, 1
jne 0x10039d589
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x30]
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
mov al, byte [rdi + rsi + 8]
xor al, bl
je 0x10039d884
call fcn.1000024bc
lea r12, [0x100059e28]
mov r8d, 0xffff
mov rbx, rax
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x10], r12
lea r10, [rax + 0x18]
mov rax, qword [0x1003feeb8]
and rbx, r15
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 0x10039d7d8
mov qword [0x1003feeb8], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov rax, qword [rsp + 0xe0]
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039d87a
xor r14d, r14d
test ecx, ecx
jns 0x10039d523
neg ecx
shl ecx, 3
shr r10d, cl
shl r10d, cl
jmp 0x10039d523
xor r14d, r14d
mov ebp, esi
not ebp
xor r10d, r10d
mov dword [rsp + 0x38], esi
jmp 0x10039d531
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039d86f
jmp 0x100399e10
lea r14, [0x100000000]
mov rbp, rdi
mov r13, r14
sub rbp, r12
mov rax, qword [0x10014d838]
sub r13, rax
jne 0x10039d8a9
test rbp, rbp
je 0x100399e05
mov rbx, r12
lea r15, [0x100000000]
xor r8d, r8d
mov rcx, qword [0x1000199f8]
sub rbx, rdi
lea r9d, [rcx - 1]
sub edi, r14d
add esi, edi
test r9d, r9d
js 0x10039d8ff
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039d8f4
lea r9d, [rdx - 1]
jmp 0x10039d8fa
jbe 0x10039d907
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039d8ce
movsxd r11, r8d
jmp 0x10039d988
mov r11, rdx
jmp 0x10039d988
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, esi
jae 0x100399e05
mov r8d, edx
mov r9, rdx
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 0x10039d964
sub r8d, 1
je 0x10039d95f
cmp r8d, 1
jne 0x10039d96a
mov r10, r13
jmp 0x10039d96a
mov r10, rbp
jmp 0x10039d96a
mov r10, r13
sub r10, rbp
sub edx, 2
je 0x10039d97a
cmp edx, 1
jne 0x10039d985
add qword [r9 + rbx], r10
jmp 0x10039d97e
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039d90c
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039e561
mov r9d, ebp
mov r8d, edi
sub r8d, r13d
mov ecx, dword [0x1000572e4]
sub ecx, r11d
js 0x10039da01
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x249dfc]
and eax, r15d
mov r10, rdx
cmp r8d, eax
jae 0x10039d9f2
lea ecx, [rdx - 1]
jmp 0x10039d9fc
jbe 0x10039db7c
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039d9cf
mov rdx, rbp
cmp rdx, rbp
je 0x10039e55b
mov r8, rbp
mov eax, dword [rdx + 4]
and eax, 7
mov r11d, dword [0x100015b94]
mov r14d, dword [rdx]
lea rdi, [rax + rdx + 8]
mov qword [rsp + 0x30], rdi
mov r9d, edi
shr r14, 1
and r14, r15
sub r11, r14
mov qword [rsp + 0x40], r14
inc r11
sub r9d, r13d
mov dword [rsp + 0x68], r9d
cmp r11, rbp
mov r10, r11
je 0x10039da83
mov rax, qword [0x1003feeb8]
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 0x10039da55
mov qword [0x1003feeb8], rax
xor edx, edx
mov ecx, r9d
mov rax, r8
div r11
lea r12, [rsi + rdx]
mov r8, r12
mov rdx, r14
mov qword [rsp + 0x80], r12
mov eax, 0x40596cb1
lea rcx, [rsp + 0x170]
mov bl, bpl
mov r11, qword [rdi + r14]
mov qword [rsp + 0x170], r11
mov eax, 0x2c01077c
mov rax, qword [0x10014d838]
mov r9d, dword [rsp + 0x174]
mov rcx, r13
mov r11, qword [rsp + 0x170]
and r11, r15
mov qword [rsp + 0xd0], rbp
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 0x10039db9b
xor r10d, r10d
test r9, r9
je 0x10039dec8
mov r8d, dword [rsp + 0xd0]
mov edx, dword [rsp + 0xd4]
mov esi, 0xb0053e08
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
mov edx, dword [rsp + 0x28]
shr rax, 0x20
add edx, eax
add r8d, edx
cmp r10, r9
mov dword [rsp + 0xd4], edx
mov dword [rsp + 0xd0], r8d
jb 0x10039db2a
jmp 0x10039dec8
mov eax, dword [rbx + r10*8 + 0x249df8]
mov edx, dword [rbx + rdx*8 + 0x249dfc]
and edx, r15d
and eax, r12d
add edx, eax
add rdx, r13
jmp 0x10039da04
movsxd rcx, dword [0x10000003c]
lea rax, [r11 + r9]
lea rdx, [0x100000000]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x48], rax
mov eax, r11d
sub eax, edx
add r8, rdx
mov r10d, eax
mov edx, dword [rcx + rdx + 0xb4]
and r10, r15
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
sub rcx, rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x78], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x70], rcx
jmp 0x10039dc0e
mov eax, dword [r8]
cmp rax, r10
jae 0x10039dc13
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039dbff
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039dc56
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039dc56
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039dc56
mov r9, qword [rsp + 0x60]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039dc56
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039dc3f
mov r9d, dword [rsp + 0xd0]
mov edx, dword [rsp + 0xd4]
lea r15, [0x100000000]
mov r12, qword [rsp + 0x58]
mov ecx, 0xf000
mov rdi, qword [rsp + 0x70]
mov r14d, 0xb0053e08
cmp r8, rdi
je 0x10039de48
mov eax, dword [r8]
cmp rax, qword [rsp + 0x50]
ja 0x10039de48
mov ebx, dword [r8 + 4]
lea rax, [rbx - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039dcc6
add r8, rbx
cmp r8, rdi
je 0x10039de48
mov eax, dword [r8]
cmp rax, qword [rsp + 0x50]
ja 0x10039de48
xor esi, esi
jmp 0x10039dc98
mov eax, dword [r8]
cmp rax, qword [rsp + 0x50]
jne 0x10039dce4
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x78]
jae 0x10039de48
mov rax, rsi
mov qword [rsp + 0x60], rax
inc rsi
test word [r8 + rax*2 + 8], cx
je 0x10039dc81
movzx eax, word [r8 + rax*2 + 8]
xor edi, edi
and eax, r10d
add eax, dword [r8]
add rax, r15
mov qword [rsp + 0x58], rax
mov rcx, rax
sub rcx, r11
je 0x10039dd6a
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
shr rax, 0x20
mov edx, dword [rsp + 0x28]
add edx, eax
add r9d, edx
mov dword [rsp + 0xd4], edx
cmp rdi, rbx
mov dword [rsp + 0xd0], r9d
jb 0x10039dd18
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0xf8], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039dd96
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039dd9c
mov r11d, 2
mov rcx, r12
neg rcx
mov qword [rsp + 0x60], rcx
sub r11d, 2
je 0x10039ddce
cmp r11d, 1
je 0x10039ddb9
or r11, 0xffffffffffffffff
jmp 0x10039dddd
mov r11, r13
mov rcx, qword [rsp + 0x60]
add rax, rcx
mov qword [rsp + 0xf8], rax
jmp 0x10039dddd
mov r11, rbp
mov rcx, qword [rsp + 0x60]
add dword [rsp + 0xf8], ecx
xor r14d, r14d
test r11, r11
je 0x10039de3b
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 0x10039ddea
mov dword [rsp + 0xd4], edx
mov dword [rsp + 0xd0], r9d
mov rax, qword [rsp + 0x58]
add r11, rax
jmp 0x10039dc71
xor r8d, r8d
mov r15, 0xfffffffffffff000
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
sub r10, r11
mov rdi, qword [rsp + 0x30]
mov bl, r8b
je 0x10039dec8
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 0x10039de76
mov rdi, qword [rsp + 0x30]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xd0]
mov byte [rsp + rcx + 0x1af], al
cmp rcx, r13
jb 0x10039deca
mov eax, 0x91e7ad48
mov rax, qword [rsp + 0x1b0]
mov r11, rdi
mov ecx, dword [rsp + 0x68]
mov qword [rsp + 0x50], rdi
mov r9, r14
and r9d, 7
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x28], r9
je 0x10039e41d
mov r14d, ecx
not r14d
xor r10d, r10d
mov dword [rsp + 0x38], r10d
xor esi, esi
mov dword [rsp + 0x48], esi
xor edi, edi
test r9d, r9d
jle 0x10039df6e
lea r8d, [r10 + 0x38]
cmp edi, ebp
movzx edx, byte [r11]
jge 0x10039df47
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x10039df4f
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039df35
mov ecx, dword [rsp + 0x68]
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x38], r10d
mov qword [rsp + 0x50], r11
mov r8d, eax
mov esi, r14d
movzx r11d, word [rsp + 0x1b2]
movzx r10d, word [rsp + 0x1b6]
movzx edi, ax
sub esi, dword [rsp + 0x1b4]
movzx r9d, word [rsp + 0x1b4]
sub esi, edi
xor esi, ecx
mov ecx, esi
ror ecx, 6
xor ecx, r10d
imul ecx, r11d
xor r14d, ecx
mov ecx, r9d
mov edx, r14d
sub r8d, r14d
ror r8d, 7
rol edx, 0xe
imul ecx, r8d
add edx, ecx
mov r8d, eax
xor esi, edx
mov edx, esi
mov ecx, edi
xor ecx, 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
xor r8d, esi
ror r8d, 2
mov ecx, r10d
mov edx, esi
rol edx, 5
imul ecx, r8d
xor edx, ecx
xor r14d, edx
mov edx, r14d
sub edx, eax
rol edx, 2
mov ecx, r14d
ror ecx, 0xc
imul r9d, edx
mov edx, r11d
add ecx, r9d
mov r9d, dword [rsp + 0x1b4]
xor esi, ecx
mov ecx, edi
xor ecx, esi
rol ecx, 6
imul edx, ecx
mov ecx, esi
shr ecx, 0xe
add edx, ecx
xor r14d, edx
mov edx, r14d
mov r8d, r14d
mov ecx, edi
sub r8d, r9d
ror r8d, 1
ror edx, 0xd
imul ecx, r8d
sub ecx, edx
xor esi, ecx
mov edx, esi
sub edx, eax
ror edx, 0xa
mov ecx, esi
ror ecx, 3
imul r10d, edx
mov edx, eax
xor ecx, r10d
mov r10d, eax
xor r14d, ecx
xor edx, r14d
mov ecx, r9d
sub ecx, edx
xor esi, ecx
xor r10d, r9d
mov edx, dword [rsp + 0x48]
xor r9d, r9d
xor r10d, r14d
xor r10d, esi
mov ecx, r10d
xor r10d, dword [rsp + 0x38]
mov r8d, r10d
ror ecx, 0xf
sub ecx, edi
imul ecx, r11d
xor ecx, edx
xor esi, ecx
mov rcx, qword [rsp + 0x28]
mov edx, esi
test ecx, ecx
jle 0x10039e0db
mov rax, r12
cmp r9d, ebp
jge 0x10039e0b9
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039e0c6
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039e0a8
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x1b0]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039e404
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr r10d, cl
shl r10d, cl
mov r11, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov ebp, dword [rsp + 0x38]
mov rcx, r14
shr rcx, 3
test rcx, rcx
mov qword [rsp + 0x28], rcx
je 0x10039e350
mov rdi, qword [rsp + 0x58]
mov r14, qword [rsp + 0x28]
mov r15d, dword [rsp + 0x48]
movzx ecx, word [rsp + 0x1b4]
movzx edx, ax
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 ecx, byte [r11]
shl ecx, 8
movzx r9d, byte [r11 + 1]
movzx r8d, byte [r11 + 4]
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
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
mov ecx, esi
movzx edx, word [rsp + 0x1b6]
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]
xor ecx, esi
mov edx, esi
ror edx, 1
imul ecx, dword [rsp + 0x24]
xor edx, ecx
xor r10d, edx
mov edx, eax
mov ecx, r10d
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
mov edx, dword [rsp + 0x38]
xor esi, ecx
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 ecx, dword [rsp + 0x1b4]
mov edx, eax
xor edx, r10d
xor r10d, r12d
sub ecx, edx
xor esi, ecx
mov edx, dword [rsp + 0x38]
xor r10d, esi
mov ecx, r10d
xor r10d, ebp
mov ebp, r8d
ror ecx, 0xf
sub ecx, edx
imul ecx, dword [rsp + 0x24]
xor ecx, r15d
xor esi, ecx
mov byte [rdi + 3], sil
mov r15d, r9d
xor bl, sil
xor bl, r10b
mov byte [rdi + 7], r10b
ror esi, 8
ror r10d, 8
xor bl, sil
mov byte [rdi + 2], sil
mov byte [rdi + 6], r10b
ror esi, 8
mov byte [rdi + 1], sil
xor bl, r10b
ror r10d, 8
mov byte [rdi + 5], r10b
xor bl, sil
ror esi, 8
xor bl, r10b
ror r10d, 8
xor bl, r10b
mov byte [rdi], sil
xor bl, sil
ror esi, 8
mov byte [rdi + 4], r10b
ror r10d, 8
add rdi, r13
sub r14, 1
jne 0x10039e167
mov r12, qword [rsp + 0x80]
mov r14, qword [rsp + 0x40]
mov r15, 0xfffffffffffff000
mov rdi, qword [rsp + 0x30]
xor bl, byte [rdi + r14 + 8]
je 0x10039e444
call fcn.1000024bc
mov rbx, rax
mov r8d, 0xffff
mov rax, qword [rsp + 0xd8]
lea r12, [0x100059e28]
lea r10, [rax + 0x18]
and rbx, r15
mov qword [rax + 0x10], r12
mov rax, qword [0x1003feeb8]
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 0x10039e39b
mov qword [0x1003feeb8], 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 0x10039e43a
xor r10d, r10d
test ecx, ecx
jns 0x10039e0f3
neg ecx
shl ecx, 3
shr esi, cl
shl esi, cl
jmp 0x10039e0f3
xor r10d, r10d
mov dword [rsp + 0x48], ecx
mov ebp, ecx
not ebp
xor esi, esi
jmp 0x10039e106
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039e42f
jmp 0x100399e10
mov rax, qword [0x10014d838]
mov rsi, rdi
sub rsi, r12
lea r15, [0x100000000]
mov rbp, r15
sub rbp, rax
jne 0x10039e469
test rsi, rsi
je 0x100399e05
xor r8d, r8d
mov rbx, r12
sub rbx, rdi
mov rcx, qword [0x1000199f8]
lea r9d, [rcx - 1]
sub edi, r15d
test r9d, r9d
lea r13d, [r14 + rdi]
lea r14, [0x100000000]
js 0x10039e4c1
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r14 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039e4b6
lea r9d, [rdx - 1]
jmp 0x10039e4bc
jbe 0x10039e4c9
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039e490
movsxd r11, r8d
jmp 0x10039e54b
mov r11, rdx
jmp 0x10039e54b
mov edx, dword [r14 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x100399e05
mov r9, rdx
mov r8d, edx
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 0x10039e527
sub r8d, 1
je 0x10039e522
cmp r8d, 1
jne 0x10039e52d
mov r10, rbp
jmp 0x10039e52d
mov r10, rsi
jmp 0x10039e52d
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x10039e53d
cmp edx, 1
jne 0x10039e548
add qword [r9 + rbx], r10
jmp 0x10039e541
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039e4ce
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039f174
mov r8d, edi
mov ecx, dword [0x1003c6378]
sub r8d, r13d
sub ecx, r11d
mov r9d, ebp
js 0x10039e5c6
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov eax, dword [rbx + rdx*8 + 0x2688a8]
shr eax, 1
and eax, r15d
mov r10, rdx
cmp r8d, eax
jae 0x10039e5b7
lea ecx, [rdx - 1]
jmp 0x10039e5c1
jbe 0x10039e754
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039e592
mov rdx, rbp
cmp rdx, rbp
je 0x10039f16e
mov r8, rbp
mov ebx, dword [rdx]
mov r11d, dword [0x100015b94]
and rbx, r15
mov eax, dword [rdx + 4]
and eax, 7
lea r14, [rax + rdx + 8]
sub r11, rbx
inc r11
mov r10, r11
mov r9d, r14d
sub r9d, r13d
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x30], r14
cmp r11, rbp
mov dword [rsp + 0x68], r9d
je 0x10039e644
mov rax, qword [0x1003feeb8]
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 0x10039e616
mov qword [0x1003feeb8], rax
mov rax, r8
xor edx, edx
div r11
mov ecx, r9d
lea r12, [rsi + rdx]
mov qword [rsp + 0x80], r12
mov rdx, rbx
mov r8, r12
mov eax, 0xd873ad9c
lea rcx, [rsp + 0x180]
mov r11, qword [rbx + r14]
mov bl, bpl
mov qword [rsp + 0x180], r11
mov eax, 0xfcc0eff3
mov rax, qword [0x10014d838]
mov rdi, qword [rsp + 0x180]
mov rcx, r13
mov r9d, dword [rsp + 0x184]
and rdi, r15
and r9, r15
mov r15, 0xfffffffffffff000
mov qword [rsp + 0x98], rbp
mov ebp, 4
add rdi, r13
lea r13d, [rbp + 4]
sub rcx, rax
mov qword [rsp + 0x60], rcx
jne 0x10039e775
xor r10d, r10d
test r9, r9
je 0x10039ead4
mov eax, dword [rsp + 0x9c]
mov r8d, dword [rsp + 0x98]
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
mov ecx, dword [rsp + 0x28]
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
mov dword [rsp + 0x9c], eax
add r8d, eax
mov dword [rsp + 0x98], r8d
cmp r10, r9
jb 0x10039e6e6
jmp 0x10039ead4
mov edx, dword [rbx + rdx*8 + 0x2688a8]
mov eax, dword [rbx + r10*8 + 0x2688ac]
shr edx, 1
and eax, r12d
and edx, r15d
add edx, eax
add rdx, r13
jmp 0x10039e5c9
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 edx, dword [rcx + rdx + 0xb4]
mov ecx, eax
mov r11d, 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 0x10039e7e2
mov eax, dword [r8]
cmp rax, r11
jae 0x10039e7e7
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039e7d3
xor esi, esi
mov r10d, 0xfff
cmp r8, rcx
je 0x10039e828
mov eax, dword [r8]
cmp rax, r11
jne 0x10039e828
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039e828
mov r9, qword [rsp + 0x28]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039e828
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039e811
mov r9d, dword [rsp + 0x9c]
lea r15, [0x100000000]
mov rbx, qword [rsp + 0x60]
mov r11d, dword [rsp + 0x98]
mov ecx, 0xf000
mov r14, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x58]
cmp r8, r14
je 0x10039ea41
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039ea41
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039e895
add r8, r12
cmp r8, r14
je 0x10039ea41
mov eax, dword [r8]
cmp rax, rdx
ja 0x10039ea41
xor esi, esi
jmp 0x10039e868
mov eax, dword [r8]
cmp rax, rdx
jne 0x10039e8b1
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x70]
jae 0x10039ea41
mov rax, rsi
inc rsi
mov qword [rsp + 0x78], rax
test word [r8 + rax*2 + 8], cx
je 0x10039e853
movzx eax, word [r8 + rax*2 + 8]
xor r14d, r14d
and eax, r10d
add eax, dword [r8]
add rax, r15
mov qword [rsp + 0x60], rax
mov rcx, rax
sub rcx, rdi
je 0x10039e95a
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
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
cmp r14, r12
mov dword [rsp + 0x98], r11d
jb 0x10039e8e6
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 0x10039e984
sub ecx, 0xa
neg ecx
sbb edx, edx
add edx, 3
jmp 0x10039e989
mov edx, 2
mov rdi, rbx
neg rdi
sub edx, 2
je 0x10039e9af
cmp edx, 1
je 0x10039e99f
or rdi, 0xffffffffffffffff
jmp 0x10039e9b9
add rax, rdi
mov qword [rsp + 0x108], rax
mov rdi, r13
jmp 0x10039e9b9
add dword [rsp + 0x108], edi
mov rdi, rbp
xor r14d, r14d
test rdi, rdi
je 0x10039ea34
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 0x10039e9c1
mov dword [rsp + 0x9c], r9d
mov dword [rsp + 0x98], r11d
mov rax, qword [rsp + 0x60]
add rdi, rax
jmp 0x10039e844
mov r10, qword [rsp + 0x48]
mov r14, qword [rsp + 0x30]
mov r12, qword [rsp + 0x80]
xor r8d, r8d
mov r15, 0xfffffffffffff000
mov bl, r8b
sub r10, rdi
je 0x10039ead4
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
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 + 0x9c], r9d
add r11d, r9d
mov dword [rsp + 0x98], r11d
cmp r8, r10
jb 0x10039ea65
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x98]
cmp rcx, r13
mov byte [rsp + rcx + 0x18f], al
jb 0x10039ead6
mov eax, 0xc05f4137
mov r9, qword [rsp + 0x50]
mov rax, qword [rsp + 0x190]
mov qword [rsp + 0x40], r14
mov r11, r14
and r9d, 7
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x58], r12
je 0x10039f02d
xor r10d, r10d
xor esi, esi
mov edx, dword [rsp + 0x68]
not edx
mov dword [rsp + 0x48], r10d
mov dword [rsp + 0x70], edx
xor edi, edi
mov dword [rsp + 0x24], esi
test r9d, r9d
jle 0x10039eb7c
lea r8d, [r10 + 0x38]
cmp edi, ebp
movzx edx, byte [r11]
jge 0x10039eb55
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x10039eb5d
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x10039eb43
mov edx, dword [rsp + 0x70]
mov dword [rsp + 0x24], esi
mov dword [rsp + 0x48], r10d
mov qword [rsp + 0x40], r11
movzx r11d, ax
movzx r10d, word [rsp + 0x194]
mov ecx, eax
mov edi, dword [rsp + 0x194]
movzx r9d, word [rsp + 0x192]
xor edi, eax
xor ecx, edx
mov esi, dword [rsp + 0x194]
xor edi, edx
sub esi, ecx
mov r8d, dword [rsp + 0x194]
mov edx, r11d
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
sub r8d, esi
ror r8d, 3
mov edx, esi
mov ecx, r9d
ror edx, 8
imul ecx, r8d
mov r8d, dword [rsp + 0x194]
add edx, ecx
mov ecx, r11d
xor edi, edx
xor r8d, edi
mov edx, edi
ror r8d, 6
rol edx, 5
imul ecx, r8d
add edx, ecx
movzx r8d, word [rsp + 0x196]
xor esi, edx
mov ecx, esi
ror ecx, 0xa
sub ecx, r8d
imul ecx, r10d
xor edi, ecx
mov edx, edi
mov ecx, r8d
xor ecx, edi
ror edx, 0xf
imul ecx, r10d
sub ecx, edx
xor esi, ecx
mov ecx, esi
mov edx, r10d
xor edx, esi
shr ecx, 0xb
imul edx, r9d
xor edx, ecx
mov ecx, r9d
xor edi, edx
mov edx, r11d
xor ecx, edi
rol ecx, 4
imul edx, ecx
mov ecx, edi
shr ecx, 0xc
add edx, ecx
xor esi, edx
mov edx, esi
lea ecx, [rax + rsi]
rol ecx, 0xf
ror edx, 0xe
imul r8d, ecx
add edx, r8d
xor edi, edx
mov edx, dword [rsp + 0x24]
mov ecx, edi
sub ecx, r10d
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
rol ecx, 0xe
imul r11d, r10d
add ecx, r11d
mov r8d, edi
xor ecx, edx
xor esi, ecx
mov edx, esi
mov rcx, qword [rsp + 0x28]
test ecx, ecx
jle 0x10039ece5
mov rax, r12
cmp r9d, ebp
jge 0x10039ecc3
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039ecd0
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039ecb2
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x190]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039f015
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
mov qword [rsp + 0x28], rcx
test rcx, rcx
je 0x10039ef5f
mov r14, qword [rsp + 0x28]
mov r15, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x194]
movzx ecx, ax
xor r8d, eax
mov r12d, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x48]
mov dword [rsp + 0x70], r8d
mov dword [rsp + 0x38], ecx
movzx ecx, byte [r11]
mov edx, dword [rsp + 0x194]
shl ecx, 8
movzx r10d, byte [r11 + 1]
movzx r9d, byte [r11 + 4]
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 edi, r9d
mov ecx, eax
xor ecx, edi
xor edi, r8d
mov r8d, dword [rsp + 0x194]
sub edx, ecx
xor edx, r10d
xor esi, edx
xor edi, esi
mov edx, dword [rsp + 0x38]
movzx ecx, word [rsp + 0x194]
xor edx, edi
imul edx, ecx
mov ecx, edi
shr ecx, 8
add edx, ecx
movzx ecx, word [rsp + 0x192]
xor esi, edx
mov edx, esi
sub r8d, esi
ror r8d, 3
ror edx, 8
imul ecx, r8d
mov r8d, dword [rsp + 0x194]
add edx, ecx
mov ecx, dword [rsp + 0x38]
xor edi, edx
mov edx, edi
xor r8d, edi
ror r8d, 6
rol edx, 5
imul ecx, r8d
add edx, ecx
xor esi, edx
movzx r8d, word [rsp + 0x194]
movzx edx, word [rsp + 0x196]
mov ecx, esi
ror ecx, 0xa
sub ecx, edx
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
shr ecx, 0xb
movzx r8d, word [rsp + 0x192]
imul edx, r8d
xor edx, ecx
mov ecx, r8d
xor edi, edx
mov edx, dword [rsp + 0x38]
xor ecx, edi
rol ecx, 4
imul edx, ecx
mov ecx, edi
shr ecx, 0xc
add edx, ecx
xor esi, edx
movzx ecx, word [rsp + 0x196]
lea edx, [rax + rsi]
mov r8d, esi
rol edx, 0xf
ror r8d, 0xe
imul ecx, edx
add r8d, ecx
xor edi, r8d
movzx r8d, word [rsp + 0x192]
mov ecx, edi
movzx edx, word [rsp + 0x194]
sub ecx, edx
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
rol edx, 6
mov ebp, r9d
rol r8d, 0xe
mov ecx, dword [rsp + 0x38]
imul ecx, edx
add r8d, ecx
xor r8d, r12d
xor esi, r8d
mov r8d, dword [rsp + 0x70]
mov r12d, r10d
xor bl, sil
mov byte [r15 + 3], sil
xor bl, dil
mov byte [r15 + 7], dil
ror esi, 8
ror edi, 8
xor bl, sil
mov byte [r15 + 2], sil
mov byte [r15 + 6], dil
ror esi, 8
xor bl, dil
mov byte [r15 + 1], sil
ror edi, 8
mov byte [r15 + 5], dil
xor bl, sil
ror esi, 8
xor bl, dil
mov byte [r15], sil
ror edi, 8
mov cl, dil
xor cl, sil
mov byte [r15 + 4], dil
add r15, r13
xor bl, cl
ror esi, 8
ror edi, 8
sub r14, 1
jne 0x10039ed44
mov rbp, qword [rsp + 0x50]
mov r12, qword [rsp + 0x80]
mov r15, 0xfffffffffffff000
mov r14, qword [rsp + 0x30]
mov al, byte [r14 + rbp + 8]
xor al, bl
je 0x10039f059
call fcn.1000024bc
lea r12, [0x100059e28]
mov rbx, rax
and rbx, r15
mov rax, qword [rsp + 0xd8]
mov r8d, 0xffff
mov qword [rax + 0x10], r12
lea r10, [rax + 0x18]
mov rax, qword [0x1003feeb8]
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 0x10039efac
mov qword [0x1003feeb8], rax
movabs rax, 0x8000800080008001
mul r9
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
inc r9
mov rax, qword [rsp + 0xe0]
mov qword [rax + 0xb0], r9
mov qword [rax + 0x98], rbx
mov qword [rsp + 0x28], r8
jmp 0x10039f04f
xor edi, edi
test ecx, ecx
jns 0x10039ecfb
neg ecx
shl ecx, 3
shr esi, cl
shl esi, cl
jmp 0x10039ecfb
mov ecx, dword [rsp + 0x68]
xor edi, edi
mov dword [rsp + 0x24], ecx
xor esi, esi
not ecx
mov dword [rsp + 0x48], ecx
jmp 0x10039ed00
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039f044
jmp 0x100399e10
mov rax, qword [0x10014d838]
lea r13, [0x100000000]
mov rsi, r13
mov rdi, r14
sub rdi, r12
sub rsi, rax
jne 0x10039f07e
test rdi, rdi
je 0x100399e05
lea r15, [0x100000000]
xor r8d, r8d
mov rcx, qword [0x1000199f8]
mov rbx, r12
sub rbx, r14
sub r14d, r13d
lea r9d, [rcx - 1]
add ebp, r14d
test r9d, r9d
js 0x10039f0d5
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp r14d, r10d
jae 0x10039f0ca
lea r9d, [rdx - 1]
jmp 0x10039f0d0
jbe 0x10039f0dd
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039f0a4
movsxd r11, r8d
jmp 0x10039f15e
mov r11, rdx
jmp 0x10039f15e
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x100399e05
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 0x10039f13a
sub r8d, 1
je 0x10039f135
cmp r8d, 1
jne 0x10039f140
mov r10, rsi
jmp 0x10039f140
mov r10, rdi
jmp 0x10039f140
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x10039f150
cmp edx, 1
jne 0x10039f15b
add qword [r9 + rbx], r10
jmp 0x10039f154
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039f0e2
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x10039fd75
mov ecx, dword [0x100046e00]
mov r8d, edi
mov r9d, ebp
sub r8d, r13d
sub ecx, r11d
js 0x10039f1d7
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0x2cee8c]
and eax, r15d
cmp r8d, eax
jae 0x10039f1c8
lea ecx, [rdx - 1]
jmp 0x10039f1d2
jbe 0x10039f352
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039f1a5
mov rdx, rbp
cmp rdx, rbp
je 0x10039fd6f
mov r14d, dword [rdx]
mov r8, rbp
mov rax, r14
shr r14, 4
mov r11d, dword [0x100015b94]
mov qword [rsp + 0x30], r14
shr rax, 1
sub r11, r14
and eax, 7
inc r11
lea rdi, [rax + rdx + 8]
mov r10, r11
mov r9d, edi
sub r9d, r13d
cmp r11, rbp
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x68], r9d
je 0x10039f25a
mov rax, qword [0x1003feeb8]
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 0x10039f22c
mov qword [0x1003feeb8], 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, 0x71befa62
lea rcx, [rsp + 0x148]
mov r11, qword [rdi + r14]
mov bl, bpl
mov qword [rsp + 0x148], r11
mov eax, 0x29b63a8f
mov r9d, dword [rsp + 0x14c]
mov r11, qword [rsp + 0x148]
and r11, r15
mov rcx, r13
and r9, r15
mov rax, qword [0x10014d838]
add r11, r13
mov qword [rsp + 0xb8], rbp
mov ebp, 4
lea r13d, [rbp + 4]
sub rcx, rax
mov r15, 0xfffffffffffff000
mov qword [rsp + 0x50], rcx
jne 0x10039f373
xor r8d, r8d
test r9, r9
je 0x10039f6aa
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
shr rax, 0x20
mov ecx, dword [rsp + 0x58]
add ecx, eax
mov dword [rsp + 0xbc], ecx
add edx, ecx
cmp r8, r9
mov dword [rsp + 0xb8], edx
jb 0x10039f2fb
jmp 0x10039f6aa
mov eax, dword [rbx + r10*8 + 0x2cee8c]
mov edx, dword [rbx + rdx*8 + 0x2cee88]
shr edx, 1
and eax, r15d
and edx, r12d
add edx, eax
add rdx, r13
jmp 0x10039f1da
lea rax, [r11 + r9]
movsxd rcx, dword [0x10000003c]
lea rdx, [0x100000000]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x38], rax
mov eax, r11d
sub eax, edx
add r8, rdx
mov r10d, eax
mov edx, dword [rcx + rdx + 0xb4]
and r10, r15
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 + 0x58], rax
sub rcx, rax
mov qword [rsp + 0x48], rcx
lea rcx, [rdx + r8]
mov qword [rsp + 0x78], rcx
jmp 0x10039f3e6
mov eax, dword [r8]
cmp rax, r10
jae 0x10039f3eb
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039f3d7
mov r10d, 0xfff
xor esi, esi
cmp r8, rcx
je 0x10039f42e
mov eax, dword [r8]
cmp rax, qword [rsp + 0x28]
jne 0x10039f42e
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x10039f42e
mov r9, qword [rsp + 0x60]
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x10039f42e
inc rsi
add rdx, 2
cmp rsi, rcx
jne 0x10039f417
mov r9d, dword [rsp + 0xb8]
mov edx, dword [rsp + 0xbc]
lea rbx, [0x100000000]
mov rdi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x78]
mov ecx, 0xf000
cmp r8, r14
je 0x10039f633
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x10039f633
mov r12d, dword [r8 + 4]
lea rax, [r12 - 8]
shr rax, 1
cmp rsi, rax
jne 0x10039f499
add r8, r12
cmp r8, r14
je 0x10039f633
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x10039f633
xor esi, esi
jmp 0x10039f46a
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
jne 0x10039f4b7
movzx eax, word [r8 + rsi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x48]
jae 0x10039f633
mov rax, rsi
inc rsi
mov qword [rsp + 0x60], rax
test word [r8 + rax*2 + 8], cx
je 0x10039f453
xor r14d, r14d
movzx eax, word [r8 + rax*2 + 8]
and eax, r10d
add eax, dword [r8]
add rax, rbx
mov qword [rsp + 0x70], rax
mov rcx, rax
sub rcx, r11
je 0x10039f552
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
mov edx, dword [rsp + 0xf0]
shr rax, 0x20
add edx, eax
mov dword [rsp + 0xbc], edx
add r9d, edx
cmp r14, r12
mov dword [rsp + 0xb8], r9d
jb 0x10039f4ec
mov rax, qword [rsp + 0x70]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x60]
movzx ecx, word [r8 + rcx*2 + 8]
mov qword [rsp + 0xf0], rax
shr ecx, 0xc
cmp ecx, 3
je 0x10039f57e
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x10039f584
mov r11d, 2
mov rcx, rdi
neg rcx
mov qword [rsp + 0x60], rcx
sub r11d, 2
je 0x10039f5b6
cmp r11d, 1
je 0x10039f5a1
or r11, 0xffffffffffffffff
jmp 0x10039f5c5
mov r11, r13
mov rcx, qword [rsp + 0x60]
add rax, rcx
mov qword [rsp + 0xf0], rax
jmp 0x10039f5c5
mov rcx, qword [rsp + 0x60]
mov r11, rbp
add dword [rsp + 0xf0], ecx
xor r14d, r14d
test r11, r11
je 0x10039f626
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 0x10039f5cd
mov dword [rsp + 0xbc], edx
mov dword [rsp + 0xb8], r9d
mov rax, qword [rsp + 0x70]
add r11, rax
jmp 0x10039f449
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x38]
mov r14, qword [rsp + 0x30]
xor r8d, r8d
mov rdi, qword [rsp + 0x40]
mov bl, r8b
sub r10, r11
je 0x10039f6aa
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
shr rax, 0x20
mov ecx, dword [rsp + 0x58]
add eax, ecx
imul rax, rax, 0x7028c642
mov qword [rsp + 0x58], rax
shr rax, 0x20
mov edx, dword [rsp + 0x58]
add edx, eax
add r9d, edx
cmp r8, r10
mov dword [rsp + 0xbc], edx
mov dword [rsp + 0xb8], r9d
jb 0x10039f655
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, r13
mov al, byte [rsp + rax + 0xb8]
mov byte [rsp + rcx + 0x197], al
jb 0x10039f6ac
mov eax, 0x5d53895a
mov rax, qword [rsp + 0x198]
mov r9, r14
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r12
and r9d, 7
mov qword [rsp + 0x28], r9
je 0x10039fc27
mov r8d, dword [rsp + 0x68]
mov esi, r8d
not esi
xor r10d, r10d
mov dword [rsp + 0x38], r10d
xor edi, edi
mov dword [rsp + 0x48], edi
xor r11d, r11d
test r9d, r9d
jle 0x10039f75d
mov rax, qword [rsp + 0x50]
lea r8d, [r10 + 0x38]
movzx edx, byte [rax]
cmp r11d, ebp
jge 0x10039f72c
lea ecx, [r8 - 0x20]
shl edx, cl
or edi, edx
jmp 0x10039f734
mov ecx, r8d
shl edx, cl
or r10d, edx
inc r11d
inc rax
sub r8d, r13d
cmp r11d, r9d
jl 0x10039f71a
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
movzx r9d, ax
movzx r10d, word [rsp + 0x19e]
movzx r11d, word [rsp + 0x19c]
mov ecx, r8d
mov edx, r10d
movzx edi, word [rsp + 0x19a]
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 edx, esi
xor edx, eax
mov r14d, esi
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
mov ecx, r11d
xor esi, r14d
xor esi, dword [rsp + 0x19c]
xor esi, eax
mov edx, esi
mov r8d, esi
xor r8d, r9d
rol r8d, 7
rol edx, 0xe
imul ecx, r8d
xor edx, ecx
mov ecx, edi
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
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 edx, esi
xor edx, eax
rol edx, 0xb
mov r10d, dword [rsp + 0x19c]
mov ecx, esi
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
xor esi, dword [rsp + 0x38]
mov r8d, esi
mov edx, r10d
xor ecx, eax
sub edx, ecx
mov ecx, dword [rsp + 0x48]
xor edx, ecx
mov rcx, qword [rsp + 0x28]
xor r14d, edx
test ecx, ecx
mov edx, r14d
jle 0x10039f8c8
mov rax, r12
cmp r9d, ebp
jge 0x10039f8a6
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x10039f8b3
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x10039f895
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x198]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x10039fc0d
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 0x10039fb59
mov r12d, dword [rsp + 0x48]
mov r15, qword [rsp + 0x28]
movzx edx, word [rsp + 0x19a]
movzx r8d, word [rsp + 0x19e]
movzx ecx, ax
neg edx
mov rdi, qword [rsp + 0x50]
mov r11, qword [rsp + 0x58]
mov dword [rsp + 0x68], ecx
movzx ecx, r10w
mov dword [rsp + 0x70], edx
mov dword [rsp + 0x38], ecx
movzx ecx, byte [rdi]
shl ecx, 8
movzx r9d, byte [rdi + 4]
shl r9d, 8
movzx r10d, byte [rdi + 1]
or r10d, ecx
movzx ecx, byte [rdi + 2]
shl r10d, 8
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]
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
mov ecx, dword [rsp + 0x38]
xor edx, r9d
xor esi, edx
mov r8d, esi
xor r8d, eax
mov edx, esi
rol r8d, 0xa
rol edx, 3
imul ecx, r8d
xor edx, ecx
xor r14d, edx
mov ecx, r14d
movzx edx, word [rsp + 0x19a]
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
xor esi, r14d
mov ecx, dword [rsp + 0x38]
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
xor r14d, edx
mov r8d, r14d
mov edx, r14d
sub r8d, dword [rsp + 0x19c]
ror r8d, 2
movzx ecx, word [rsp + 0x19a]
rol edx, 5
imul ecx, r8d
xor edx, ecx
xor esi, edx
movzx ecx, word [rsp + 0x19a]
mov edx, esi
mov r8d, esi
xor r8d, ecx
rol r8d, 7
mov ecx, dword [rsp + 0x68]
ror edx, 0xd
imul ecx, r8d
sub ecx, edx
xor r14d, ecx
mov edx, r14d
movzx ecx, word [rsp + 0x19e]
xor edx, dword [rsp + 0x38]
imul edx, ecx
mov ecx, r14d
shr ecx, 1
xor edx, ecx
xor esi, edx
mov r8d, esi
mov ecx, dword [rsp + 0x38]
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]
lea r8d, [r14 + rcx]
mov edx, r14d
ror r8d, 6
movzx ecx, word [rsp + 0x19a]
ror edx, 0xa
imul ecx, r8d
movzx r8d, word [rsp + 0x19e]
sub ecx, edx
xor esi, ecx
mov ecx, esi
xor esi, ebp
mov ebp, r9d
mov edx, dword [rsp + 0x19c]
xor ecx, eax
sub edx, ecx
xor edx, r12d
mov r12d, r10d
xor r14d, edx
mov edx, dword [rsp + 0x70]
xor bl, r14b
xor bl, sil
mov byte [r11 + 3], r14b
mov byte [r11 + 7], sil
ror r14d, 8
ror esi, 8
mov byte [r11 + 2], r14b
xor bl, r14b
mov byte [r11 + 6], sil
ror r14d, 8
mov byte [r11 + 1], r14b
xor bl, sil
ror esi, 8
mov byte [r11 + 5], sil
xor bl, r14b
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 0x10039f93b
mov rdi, qword [rsp + 0x40]
mov r15, 0xfffffffffffff000
mov r11, qword [rsp + 0x30]
mov r12, qword [rsp + 0x80]
xor bl, byte [r11 + rdi + 8]
je 0x10039fc58
call fcn.1000024bc
mov r8d, 0xffff
lea r12, [0x100059e28]
mov rbx, rax
mov rax, qword [rsp + 0xd8]
lea r10, [rax + 0x18]
mov qword [rax + 0x10], r12
and rbx, r15
and r10, 0xfffffffffffffff8
lea r11, [r10 + 0xfff]
mov rax, qword [0x1003feeb8]
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 0x10039fba4
mov qword [0x1003feeb8], 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 0x10039fc4e
xor esi, esi
test ecx, ecx
jns 0x10039f8de
neg ecx
shl ecx, 3
shr r14d, cl
shl r14d, cl
jmp 0x10039f8de
mov ebp, dword [rsp + 0x68]
mov r10d, dword [rsp + 0x19c]
xor esi, esi
xor r14d, r14d
mov dword [rsp + 0x48], ebp
not ebp
jmp 0x10039f8e7
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x10039fc43
jmp 0x100399e10
mov rsi, rdi
sub rsi, r12
mov rax, qword [0x10014d838]
lea r14, [0x100000000]
mov rbp, r14
sub rbp, rax
jne 0x10039fc7d
test rsi, rsi
je 0x100399e05
lea r15, [0x100000000]
mov rcx, qword [0x1000199f8]
mov rbx, r12
xor r8d, r8d
lea r9d, [rcx - 1]
sub rbx, rdi
sub edi, r14d
test r9d, r9d
lea r13d, [r11 + rdi]
js 0x10039fcd5
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp edi, r10d
jae 0x10039fcca
lea r9d, [rdx - 1]
jmp 0x10039fcd0
jbe 0x10039fcdd
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10039fca4
movsxd r11, r8d
jmp 0x10039fd5f
mov r11, rdx
jmp 0x10039fd5f
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, r13d
jae 0x100399e05
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 0x10039fd3b
sub r8d, 1
je 0x10039fd36
cmp r8d, 1
jne 0x10039fd41
mov r10, rbp
jmp 0x10039fd41
mov r10, rsi
jmp 0x10039fd41
mov r10, rbp
sub r10, rsi
sub edx, 2
je 0x10039fd51
cmp edx, 1
jne 0x10039fd5c
add qword [r9 + rbx], r10
jmp 0x10039fd55
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10039fce2
jmp 0x100399e05
mov edx, dword [0x10000003c]
cmp rdi, r13
jb 0x1003a099b
movsxd rax, edx
mov ecx, dword [rax + r13 + 0x50]
add rcx, r13
cmp rdi, rcx
jae 0x1003a099b
mov r8d, edi
mov r9d, ebp
sub r8d, r13d
mov ecx, dword [0x1001f0b5c]
sub ecx, r11d
js 0x10039fdd8
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0x3854ec]
and eax, r15d
cmp r8d, eax
jae 0x10039fdc9
lea ecx, [rdx - 1]
jmp 0x10039fdd3
jbe 0x10039ff7e
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10039fda6
mov rdx, rbp
cmp rdx, rbp
je 0x1003a099b
mov edi, dword [rdx]
mov rax, rdi
shr rdi, 4
mov r11d, dword [0x100015b94]
mov qword [rsp + 0x50], rdi
mov r8, rbp
shr rax, 1
sub r11, rdi
and eax, 7
inc r11
lea r14, [rax + rdx + 8]
mov r9d, r14d
mov qword [rsp + 0x28], r14
mov r10, r11
sub r9d, r13d
mov dword [rsp + 0x68], r9d
cmp r11, rbp
je 0x10039fe5a
mov rax, qword [0x1003feeb8]
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 0x10039fe2c
mov qword [0x1003feeb8], rax
mov ecx, r9d
mov rax, r8
xor edx, edx
div r11
lea r12, [rsi + rdx]
mov qword [rsp + 0x80], r12
mov rdx, rdi
mov r8, r12
mov eax, 0x52b505e0
lea rcx, [rsp + 0x138]
mov bl, bpl
mov r11, qword [rdi + r14]
mov qword [rsp + 0x138], r11
mov eax, 0x41c77ef7
mov r9d, dword [rsp + 0x13c]
mov rcx, r13
mov r11, qword [rsp + 0x138]
and r11, r15
and r9, r15
mov rax, qword [0x10014d838]
add r11, r13
mov r15, 0xfffffffffffff000
mov qword [rsp + 0xa8], rbp
mov ebp, 4
lea r13d, [rbp + 4]
sub rcx, rax
mov qword [rsp + 0x30], rcx
jne 0x10039ff9f
xor r10d, r10d
test r9, r9
je 0x1003a0346
mov esi, 0x8532a4bd
mov r8d, dword [rsp + 0xa8]
mov ecx, dword [rsp + 0xac]
movzx eax, byte [r11 + r10]
inc r10
sub eax, 0x7acd5b43
add r8d, eax
add eax, ecx
imul rax, rsi
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x58]
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 + 0x58], rax
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
add ecx, eax
mov dword [rsp + 0xac], ecx
add r8d, ecx
cmp r10, r9
mov dword [rsp + 0xa8], r8d
jb 0x10039ff01
jmp 0x1003a0346
mov eax, dword [rbx + r10*8 + 0x3854ec]
mov edx, dword [rbx + rdx*8 + 0x3854e8]
shr edx, 1
and eax, r15d
and edx, r12d
add edx, eax
add rdx, r13
jmp 0x10039fddb
movsxd rcx, dword [0x10000003c]
lea rax, [r11 + r9]
lea rdx, [0x100000000]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x78], rax
mov eax, r11d
sub eax, edx
add r8, rdx
mov esi, eax
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 0x1003a000c
mov eax, dword [r8]
cmp rax, rsi
jae 0x1003a0011
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rcx
jne 0x10039fffd
xor edi, edi
mov r10d, 0xfff
cmp r8, rcx
je 0x1003a0052
mov eax, dword [r8]
cmp rax, rsi
jne 0x1003a0052
mov ecx, dword [r8 + 4]
sub rcx, r13
shr rcx, 1
je 0x1003a0052
lea rdx, [r8 + 8]
mov r9, qword [rsp + 0x40]
movzx eax, word [rdx]
and rax, r10
cmp rax, r9
jae 0x1003a0052
inc rdi
add rdx, 2
cmp rdi, rcx
jne 0x1003a003b
mov r9d, dword [rsp + 0xa8]
mov r12, qword [rsp + 0x30]
mov esi, 0x8532a4bd
mov edx, dword [rsp + 0xac]
lea r15, [0x100000000]
mov ecx, 0xf000
cmp r8, qword [rsp + 0x60]
je 0x1003a02a5
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x1003a02a5
mov ebx, dword [r8 + 4]
lea rax, [rbx - 8]
shr rax, 1
cmp rdi, rax
jne 0x1003a00c0
add r8, rbx
cmp r8, qword [rsp + 0x60]
je 0x1003a02a5
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
ja 0x1003a02a5
xor edi, edi
jmp 0x1003a0090
mov eax, dword [r8]
cmp rax, qword [rsp + 0x58]
jne 0x1003a00de
movzx eax, word [r8 + rdi*2 + 8]
and rax, r10
cmp rax, qword [rsp + 0x70]
jae 0x1003a02a5
mov rax, rdi
inc rdi
mov qword [rsp + 0x40], rax
test word [r8 + rax*2 + 8], cx
je 0x1003a0077
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 0x1003a01a3
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
mov ecx, dword [rsp + 0xe8]
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 + 0xe8], rax
shr rax, 0x20
mov edx, dword [rsp + 0xe8]
add edx, eax
add r9d, edx
cmp rbx, r14
mov dword [rsp + 0xac], edx
mov dword [rsp + 0xa8], r9d
jb 0x1003a0116
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 0x1003a01cf
sub ecx, 0xa
neg ecx
sbb r11d, r11d
add r11d, 3
jmp 0x1003a01d5
mov r11d, 2
mov rcx, r12
neg rcx
sub r11d, 2
mov qword [rsp + 0x40], rcx
je 0x1003a0207
cmp r11d, 1
je 0x1003a01f2
or r11, 0xffffffffffffffff
jmp 0x1003a0216
mov rcx, qword [rsp + 0x40]
add rax, rcx
mov r11, r13
mov qword [rsp + 0xe8], rax
jmp 0x1003a0216
mov r11, rbp
mov rcx, qword [rsp + 0x40]
add dword [rsp + 0xe8], ecx
xor ebx, ebx
test r11, r11
je 0x1003a0298
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
shr rax, 0x20
mov ecx, dword [rsp + 0x40]
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
mov edx, dword [rsp + 0x40]
shr rax, 0x20
add edx, eax
add r9d, edx
cmp rbx, r11
jb 0x1003a021d
mov dword [rsp + 0xac], edx
mov dword [rsp + 0xa8], r9d
mov rax, qword [rsp + 0x30]
add r11, rax
jmp 0x1003a0072
mov r10, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
mov r14, qword [rsp + 0x28]
xor r8d, r8d
mov bl, r8b
sub r10, r11
mov r15, 0xfffffffffffff000
je 0x1003a0341
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
shr rax, 0x20
mov edx, dword [rsp + 0x58]
add edx, eax
mov dword [rsp + 0xac], edx
add r9d, edx
mov dword [rsp + 0xa8], r9d
cmp r8, r10
jb 0x1003a02c9
mov rdi, qword [rsp + 0x50]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0xa8]
mov byte [rsp + rcx + 0x1bf], al
cmp rcx, r13
jb 0x1003a0348
mov eax, 0x8ef70db5
mov r9, rdi
and r9d, 7
mov rax, qword [rsp + 0x1c0]
mov r11, r14
mov ecx, dword [rsp + 0x68]
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r9
je 0x1003a085f
mov edx, ecx
not edx
xor r10d, r10d
mov dword [rsp + 0x38], r10d
xor esi, esi
mov dword [rsp + 0x70], edx
xor edi, edi
test r9d, r9d
mov dword [rsp + 0x48], esi
jle 0x1003a03f2
lea r8d, [r10 + 0x38]
movzx edx, byte [r11]
cmp edi, ebp
jge 0x1003a03c7
lea ecx, [r8 - 0x20]
shl edx, cl
or esi, edx
jmp 0x1003a03cf
mov ecx, r8d
shl edx, cl
or r10d, edx
inc edi
inc r11
sub r8d, r13d
cmp edi, r9d
jl 0x1003a03b5
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
mov esi, ecx
movzx r8d, word [rsp + 0x1c4]
movzx r11d, word [rsp + 0x1c2]
movzx r10d, ax
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 edx, edi
sub edx, r9d
mov ecx, edi
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
mov ecx, esi
rol edx, 6
rol ecx, 4
imul edx, r8d
xor ecx, edx
xor edi, ecx
mov edx, edi
mov ecx, edi
xor edx, r10d
rol edx, 3
ror ecx, 8
imul edx, r11d
xor ecx, edx
xor esi, ecx
mov ecx, esi
mov edx, esi
xor edx, dword [rsp + 0x1c4]
shr ecx, 7
rol edx, 7
imul edx, r10d
sub edx, ecx
xor edi, edx
mov ecx, edi
mov edx, edi
ror edx, 0xe
xor ecx, r10d
imul ecx, r9d
sub ecx, edx
xor esi, ecx
mov edx, esi
mov ecx, esi
sub edx, eax
ror edx, 0xb
ror ecx, 4
imul edx, r8d
xor ecx, edx
mov r8d, dword [rsp + 0x48]
xor edi, ecx
mov edx, edi
mov ecx, edi
xor edx, dword [rsp + 0x1c4]
rol edx, 0xa
rol ecx, 0xa
imul edx, r11d
sub edx, ecx
xor esi, edx
mov ecx, esi
mov edx, esi
ror edx, 3
xor esi, dword [rsp + 0x38]
xor ecx, r11d
xor r9d, r9d
imul ecx, r10d
add edx, ecx
xor edx, r8d
mov r8d, esi
xor edi, edx
mov rcx, qword [rsp + 0x60]
test ecx, ecx
mov edx, edi
jle 0x1003a0543
mov rax, r12
cmp r9d, ebp
jge 0x1003a0521
rol edx, 8
mov byte [rax], dl
inc rax
xor bl, dl
jmp 0x1003a052e
rol r8d, 8
mov byte [rax], r8b
inc rax
xor bl, r8b
inc r9d
cmp r9d, ecx
jl 0x1003a0510
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x1c0]
add ecx, 0xfffffffc
test ecx, ecx
jle 0x1003a0847
sub ebp, ecx
shl ebp, 3
mov ecx, ebp
shr esi, cl
shl esi, cl
mov r11, qword [rsp + 0x40]
mov ebp, dword [rsp + 0x38]
mov r10, qword [rsp + 0x50]
mov rcx, r10
shr rcx, 3
mov qword [rsp + 0x60], rcx
test rcx, rcx
je 0x1003a0791
movzx edx, word [rsp + 0x1c6]
mov r12d, edx
neg r12d
mov r14d, dword [rsp + 0x48]
movzx ecx, word [rsp + 0x1c4]
mov r10, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
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 r8d, byte [r11 + 4]
movzx r9d, byte [r11]
shl r9d, 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 edi, r9d
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
mov ecx, edi
sub ecx, edx
xor ecx, r8d
xor esi, ecx
movzx ecx, word [rsp + 0x1c2]
xor esi, eax
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
movzx edx, word [rsp + 0x1c4]
mov ecx, esi
ror ecx, 0xd
sub ecx, dword [rsp + 0x38]
imul ecx, edx
xor edi, ecx
mov ecx, edi
mov edx, edi
sub edx, eax
ror edx, 9
ror ecx, 0xd
imul edx, dword [rsp + 0x24]
sub edx, ecx
xor esi, edx
mov ecx, esi
mov edx, eax
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
mov ecx, esi
xor edx, dword [rsp + 0x1c4]
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 ecx, esi
mov edx, esi
xor esi, ebp
xor ecx, dword [rsp + 0x68]
ror edx, 3
imul ecx, dword [rsp + 0x38]
add edx, ecx
xor edx, r14d
mov ebp, r8d
xor edi, edx
mov r14d, r9d
xor bl, dil
mov edx, dword [rsp + 0x24]
mov byte [r10 + 3], dil
mov byte [r10 + 7], sil
xor bl, sil
ror edi, 8
ror esi, 8
mov byte [r10 + 2], dil
xor bl, dil
ror edi, 8
xor bl, sil
mov byte [r10 + 6], sil
mov byte [r10 + 1], dil
ror esi, 8
mov byte [r10 + 5], sil
xor bl, dil
ror edi, 8
xor bl, sil
ror esi, 8
mov cl, sil
mov byte [r10], dil
mov byte [r10 + 4], sil
xor cl, dil
add r10, r13
xor bl, cl
ror edi, 8
ror esi, 8
sub r15, 1
jne 0x1003a05bc
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x50]
mov r14, qword [rsp + 0x28]
mov r15, 0xfffffffffffff000
mov al, byte [r14 + r10 + 8]
xor al, bl
je 0x1003a0885
call fcn.1000024bc
lea r12, [0x100059e28]
mov r8d, 0xffff
mov rbx, rax
mov rax, qword [rsp + 0xd8]
mov qword [rax + 0x10], r12
and rbx, r15
lea r10, [rax + 0x18]
mov rax, qword [0x1003feeb8]
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 0x1003a07de
mov qword [0x1003feeb8], 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 0x1003a087b
xor esi, esi
test ecx, ecx
jns 0x1003a0559
neg ecx
shl ecx, 3
shr edi, cl
shl edi, cl
jmp 0x1003a0559
mov ebp, ecx
mov dword [rsp + 0x48], ecx
not ebp
xor esi, esi
xor edi, edi
jmp 0x1003a0562
mov rax, qword [rsp + 0x28]
mov qword [r10], rax
add r10, r13
cmp r10, r11
jb 0x1003a0870
jmp 0x100399e10
mov rdi, r14
sub rdi, r12
lea r13, [0x100000000]
mov rax, qword [0x10014d838]
mov rsi, r13
sub rsi, rax
jne 0x1003a08aa
test rdi, rdi
je 0x100399e05
mov rbx, r12
xor r8d, r8d
lea r15, [0x100000000]
mov rcx, qword [0x1000199f8]
sub rbx, r14
sub r14d, r13d
lea ebp, [r14 + r10]
lea r9d, [rcx - 1]
test r9d, r9d
js 0x1003a0902
lea eax, [r9 + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r15 + rdx*4 + 0x199fc]
and r10d, 0xfffffff
cmp r14d, r10d
jae 0x1003a08f7
lea r9d, [rdx - 1]
jmp 0x1003a08fd
jbe 0x1003a090a
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x1003a08d1
movsxd r11, r8d
jmp 0x1003a098b
mov r11, rdx
jmp 0x1003a098b
mov edx, dword [r15 + r11*4 + 0x199fc]
mov eax, edx
and eax, 0xfffffff
cmp eax, ebp
jae 0x100399e05
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 0x1003a0967
sub r8d, 1
je 0x1003a0962
cmp r8d, 1
jne 0x1003a096d
mov r10, rsi
jmp 0x1003a096d
mov r10, rdi
jmp 0x1003a096d
mov r10, rsi
sub r10, rdi
sub edx, 2
je 0x1003a097d
cmp edx, 1
jne 0x1003a0988
add qword [r9 + rbx], r10
jmp 0x1003a0981
add dword [r9 + rbx], r10d
mov rcx, qword [0x1000199f8]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x1003a090f
jmp 0x100399e05
mov eax, 0xa8bc8d5a
lea r11, section..data
cmp rsi, r11
jb 0x1003a09e8
mov eax, dword [0x100015b94]
mov ecx, dword [0x10028bffc]
imul ecx, eax
mov eax, ecx
add rax, r11
cmp rsi, rax
jae 0x1003a09e8
mov ecx, dword [0x100015b94]
mov rax, rsi
sub rax, r11
cqo
idiv rcx
mov rcx, rax
mov eax, dword [0x100015b94]
imul rax, rcx
add rax, r11
jmp 0x1003a09eb
mov rax, rbp
cmp rax, rbp
je 0x1003a0a17
sub rsi, r11
mov rax, rsi
mov ecx, dword [0x100015b94]
cqo
idiv rcx
mov rcx, rax
mov eax, dword [0x10028bffc]
mov dword [rbx + rcx*4 + 0x41a130], 0xef0b
jmp 0x1003a0a45
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.1002d7828
add rsp, 0x1e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret