Function at 0x10003a238
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x288
mov rax, qword [0x100083348]
xor rax, rsp
mov qword [rsp + 0x270], rax
lea rbx, [0x100000000]
mov rbp, rdx
mov qword [rsp + 0x130], rdx
mov rdi, r8
mov r12, rcx
mov qword [rsp + 0xa0], rcx
mov r11d, 0xfffffff
lea r14, [0x100000000]
mov rsi, r9
cmp r9, r14
jb 0x10003ae39
movsxd rdx, dword [0x10000003c]
mov ecx, dword [rdx + r14 + 0x50]
add rcx, r14
cmp r9, rcx
jae 0x10003ae3f
mov ecx, dword [0x100026e94]
mov r8d, r9d
xor r9d, r9d
sub r8d, r14d
sub ecx, 1
js 0x10003a2f6
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0xff68]
shr eax, 1
and eax, r11d
cmp r8d, eax
jae 0x10003a2e7
lea ecx, [rdx - 1]
jmp 0x10003a2f1
jbe 0x10003a488
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10003a2c2
xor edx, edx
test rdx, rdx
je 0x10003ae39
mov eax, dword [rdx + 4]
mov r13d, dword [rdx]
xor r8d, r8d
and r13, r11
and eax, 7
lea rsi, [rax + rdx + 8]
mov r11d, dword [0x10000dfa4]
mov qword [rsp + 0x80], r13
sub r11, r13
mov r10d, esi
sub r10d, r14d
mov qword [rsp + 0x70], rsi
inc r11
mov r9, r11
je 0x10003a36f
mov rax, qword [0x100082270]
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
test r9, r9
jne 0x10003a341
mov qword [0x100082270], rax
xor edx, edx
mov rax, r8
mov ecx, r10d
div r11
lea r15, [rdi + rdx]
mov r8, r15
mov qword [rsp + 0x90], r15
mov rdx, r13
mov eax, 0x1a238aaf
mov r11, qword [rsi + r13]
xor bl, bl
mov rdi, 0xfffffffffffff000
mov byte [rsp + 0x20], bl
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x78], rsi
test r13, r13
mov qword [rsp + 0x138], r11
mov qword [rsp + 0x60], r15
je 0x10003ac63
lea rcx, [rsp + 0x138]
mov eax, 0xe1696a44
mov r9, qword [rsp + 0x138]
mov r10d, dword [rsp + 0x13c]
mov rcx, r14
mov eax, 0xfffffff
and qword [rsp + 0x40], 0
and r9, rax
and r10, rax
add r9, r14
mov rax, qword [0x100033ac0]
sub rcx, rax
mov qword [rsp + 0x68], rcx
jne 0x10003a4a9
xor r11d, r11d
test r10, r10
je 0x10003a7b7
mov r8d, dword [rsp + 0x40]
mov edx, dword [rsp + 0x44]
movzx ecx, byte [r11 + r9]
inc r11
add ecx, 0x637ce67c
add r8d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0x3041
rol eax, 0xc
ror ecx, 0xc
xor eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
add eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov edx, dword [rsp + 0x28]
add edx, eax
add r8d, edx
cmp r11, r10
jb 0x10003a423
mov dword [rsp + 0x44], edx
mov dword [rsp + 0x40], r8d
jmp 0x10003a7b7
mov edx, dword [rbx + rdx*8 + 0xff68]
mov eax, dword [rbx + r10*8 + 0xff6c]
shr edx, 1
and eax, 0x3f
and edx, r11d
add edx, eax
add rdx, r14
jmp 0x10003a2f8
lea rax, [r9 + r10]
movsxd rcx, dword [0x10000003c]
mov edx, dword [rcx + r14 + 0xb4]
mov r8d, dword [rcx + r14 + 0xb0]
add r8, r14
mov qword [rsp + 0x98], rax
mov eax, r9d
sub eax, r14d
mov r11d, eax
mov ebp, eax
add rax, r10
and r11, rdi
mov r12, rax
and r12, rdi
sub rbp, r11
sub rax, r12
add rdx, r8
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x50], rax
jmp 0x10003a50f
mov eax, dword [r8]
cmp rax, r11
jae 0x10003a514
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rdx
jne 0x10003a500
xor edi, edi
mov r14d, 0xfff
cmp r8, rdx
je 0x10003a556
mov eax, dword [r8]
cmp rax, r11
jne 0x10003a556
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x10003a556
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r14
cmp rax, rbp
jae 0x10003a551
inc rdi
add rdx, 2
cmp rdi, rcx
jne 0x10003a53a
mov rdx, qword [rsp + 0x30]
lea r15, [0x100000000]
mov r10d, dword [rsp + 0x44]
mov r11d, dword [rsp + 0x40]
mov rsi, qword [rsp + 0x68]
mov ebp, 0xf000
cmp r8, rdx
je 0x10003a737
mov eax, dword [r8]
cmp rax, r12
ja 0x10003a737
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp rdi, rax
jne 0x10003a5b2
add r8, rcx
cmp r8, rdx
je 0x10003a737
mov eax, dword [r8]
cmp rax, r12
ja 0x10003a737
xor edi, edi
jmp 0x10003a586
mov eax, dword [r8]
cmp rax, r12
jne 0x10003a5ce
movzx eax, word [r8 + rdi*2 + 8]
and rax, r14
cmp rax, qword [rsp + 0x50]
jae 0x10003a737
mov rax, rdi
inc rdi
test word [r8 + rax*2 + 8], bp
je 0x10003a571
movzx edx, word [r8 + rax*2 + 8]
mov ebp, edx
and ebp, r14d
xor r14d, r14d
add ebp, dword [r8]
add rbp, r15
mov r12, rbp
sub r12, r9
je 0x10003a65c
movzx ecx, byte [r14 + r9]
inc r14
add ecx, 0x637ce67c
add r11d, ecx
add ecx, r10d
mov eax, ecx
imul eax, eax, 0x3041
rol eax, 0xc
ror ecx, 0xc
xor eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x58], rax
mov ecx, dword [rsp + 0x58]
shr rax, 0x20
add eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x58], rax
mov r10d, dword [rsp + 0x58]
shr rax, 0x20
add r10d, eax
add r11d, r10d
cmp r14, r12
jb 0x10003a5f8
mov dword [rsp + 0x44], r10d
mov dword [rsp + 0x40], r11d
mov rax, qword [rbp]
shr edx, 0xc
mov qword [rsp + 0x58], rax
cmp edx, 3
je 0x10003a67b
sub edx, 0xa
neg edx
sbb r9d, r9d
add r9d, 3
jmp 0x10003a681
mov r9d, 2
mov rdx, rsi
neg rdx
sub r9d, 2
je 0x10003a6a8
cmp r9d, 1
je 0x10003a699
or rdx, 0xffffffffffffffff
jmp 0x10003a6b1
add rax, rdx
mov edx, 8
mov qword [rsp + 0x58], rax
jmp 0x10003a6b1
add dword [rsp + 0x58], edx
mov edx, 4
xor r9d, r9d
test rdx, rdx
je 0x10003a71e
movzx ecx, byte [rsp + r9 + 0x58]
inc r9
add ecx, 0x637ce67c
add r11d, ecx
add ecx, r10d
mov eax, ecx
imul eax, eax, 0x3041
rol eax, 0xc
ror ecx, 0xc
xor eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
add eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov r10d, dword [rsp + 0x28]
add r10d, eax
add r11d, r10d
cmp r9, rdx
jb 0x10003a6b9
mov dword [rsp + 0x44], r10d
mov dword [rsp + 0x40], r11d
mov r14d, 0xfff
mov r12, qword [rsp + 0x38]
lea r9, [rdx + rbp]
mov rdx, qword [rsp + 0x30]
jmp 0x10003a56c
mov r8, qword [rsp + 0x98]
mov r15, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x70]
xor edx, edx
sub r8, r9
je 0x10003a7b7
movzx ecx, byte [rdx + r9]
inc rdx
add ecx, 0x637ce67c
add r11d, ecx
add ecx, r10d
mov eax, ecx
imul eax, eax, 0x3041
rol eax, 0xc
ror ecx, 0xc
xor eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
add eax, ecx
imul rax, rax, 0x637ce67c
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov r10d, dword [rsp + 0x28]
add r10d, eax
add r11d, r10d
cmp rdx, r8
jb 0x10003a753
mov dword [rsp + 0x44], r10d
mov dword [rsp + 0x40], r11d
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x40]
cmp rcx, 0x10
mov byte [rsp + rcx + 0x1cf], al
jb 0x10003a7b9
mov eax, 0xee05fa45
mov eax, dword [rsp + 0x1dc]
mov rbp, r15
mov ecx, dword [rsp + 0x1d8]
mov edx, dword [rsp + 0x1d4]
mov r14, rsi
mov r11d, dword [rsp + 0x1d0]
and dword [rsp + 0x168], 0
and dword [rsp + 0x16c], 0
mov dword [rsp + 0x160], eax
mov dword [rsp + 0x188], eax
xor r12d, r12d
lea edi, [r12 + 0x40]
mov eax, dword [0x10006a908]
and dword [rsp + 0x174], r12d
mov dword [rsp + 0x150], eax
mov eax, dword [0x10006a90c]
mov dword [rsp + 0x164], eax
mov eax, dword [0x10006a910]
mov dword [rsp + 0x178], eax
mov eax, dword [0x10006a914]
mov dword [rsp + 0x154], r11d
mov dword [rsp + 0x18c], eax
mov dword [rsp + 0x158], edx
lea rax, [rsp + 0x1f0]
sub rbp, rax
sub r14, r15
mov dword [rsp + 0x15c], ecx
mov dword [rsp + 0x17c], r11d
mov dword [rsp + 0x180], edx
mov dword [rsp + 0x184], ecx
mov qword [rsp + 0x98], r14
mov dword [rsp + 0x170], r12d
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xf0]
mov qword [rsp + 0x68], rbp
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x104]
mov ecx, dword [rsp + 0x12c]
mov r15d, dword [rsp + 0x110]
mov edx, dword [rsp + 0x128]
mov r10d, dword [rsp + 0x11c]
mov ebx, dword [rsp + 0xf8]
mov esi, dword [rsp + 0x10c]
mov r11d, dword [rsp + 0x118]
mov r13d, dword [rsp + 0x114]
mov r9d, dword [rsp + 0x120]
mov r12d, dword [rsp + 0x100]
mov r14d, dword [rsp + 0x108]
mov r8d, dword [rsp + 0x124]
mov ebp, dword [rsp + 0xfc]
mov dword [rsp + 0x28], eax
mov edi, dword [rsp + 0x28]
mov eax, dword [rsp + 0xf4]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x50], 2
add eax, r9d
rol eax, 7
xor r12d, eax
mov eax, dword [rsp + 0x30]
add eax, r12d
rol eax, 9
xor r15d, eax
lea eax, [r12 + r15]
rol eax, 0xd
xor r9d, eax
lea eax, [r15 + r9]
mov dword [rsp + 0x28], r9d
ror eax, 0xe
xor dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x38]
add eax, edi
rol eax, 7
mov r9d, dword [rsp + 0x30]
xor r13d, eax
lea eax, [rdi + r13]
rol eax, 9
xor r8d, eax
lea eax, [r8 + r13]
rol eax, 0xd
xor dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x38]
add eax, r8d
ror eax, 0xe
xor edi, eax
lea eax, [r11 + r14]
rol eax, 7
xor edx, eax
lea eax, [r11 + rdx]
rol eax, 9
xor ebx, eax
lea eax, [rbx + rdx]
rol eax, 0xd
xor r14d, eax
lea eax, [r14 + rbx]
ror eax, 0xe
xor r11d, eax
lea eax, [r10 + rcx]
rol eax, 7
xor ebp, eax
lea eax, [rcx + rbp]
rol eax, 9
xor esi, eax
lea eax, [rsi + rbp]
rol eax, 0xd
xor r10d, eax
lea eax, [rsi + r10]
ror eax, 0xe
xor ecx, eax
mov eax, dword [rsp + 0x30]
add eax, ebp
rol eax, 7
xor dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0xf4], eax
add eax, r9d
rol eax, 9
xor ebx, eax
mov eax, dword [rsp + 0x38]
add eax, ebx
rol eax, 0xd
xor ebp, eax
lea eax, [rbp + rbx]
ror eax, 0xe
xor r9d, eax
mov eax, r9d
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0xf0], eax
lea eax, [rdi + r12]
rol eax, 7
mov r9d, dword [rsp + 0x28]
xor r14d, eax
lea eax, [r14 + rdi]
rol eax, 9
xor esi, eax
lea eax, [r14 + rsi]
rol eax, 0xd
xor r12d, eax
lea eax, [r12 + rsi]
ror eax, 0xe
xor edi, eax
lea eax, [r11 + r13]
rol eax, 7
xor r10d, eax
lea eax, [r10 + r11]
rol eax, 9
xor r15d, eax
lea eax, [r10 + r15]
rol eax, 0xd
xor r13d, eax
lea eax, [r13 + r15]
ror eax, 0xe
xor r11d, eax
lea eax, [rcx + rdx]
rol eax, 7
xor r9d, eax
lea eax, [rcx + r9]
mov dword [rsp + 0x120], r9d
rol eax, 9
xor r8d, eax
lea eax, [r8 + r9]
rol eax, 0xd
xor edx, eax
lea eax, [rdx + r8]
ror eax, 0xe
xor ecx, eax
sub qword [rsp + 0x50], 1
mov eax, dword [rsp + 0x30]
jne 0x10003a955
mov dword [rsp + 0x12c], ecx
xor ecx, ecx
mov dword [rsp + 0x108], r14d
mov r14, qword [rsp + 0x98]
mov dword [rsp + 0x104], edi
mov dword [rsp + 0x100], r12d
mov edi, 0x40
mov r12d, dword [rsp + 0x170]
mov dword [rsp + 0xfc], ebp
mov rbp, qword [rsp + 0x68]
mov dword [rsp + 0xf8], ebx
mov bl, byte [rsp + 0x20]
mov dword [rsp + 0x128], edx
mov dword [rsp + 0x124], r8d
mov dword [rsp + 0x11c], r10d
mov dword [rsp + 0x118], r11d
mov dword [rsp + 0x114], r13d
mov dword [rsp + 0x110], r15d
mov dword [rsp + 0x10c], esi
mov eax, dword [rsp + rcx + 0x150]
add rcx, 4
add dword [rsp + rcx + 0xec], eax
cmp rcx, rdi
jl 0x10003ab56
lea rdx, [rsp + 0xf0]
mov r8, rdi
lea rcx, [rsp + 0x1f0]
call sub.msvcrt.dll_memcpy
mov r9, qword [rsp + 0x88]
inc r12d
cmp r9, rdi
mov dword [rsp + 0x170], r12d
jbe 0x10003abe1
lea r8, [r14 + rbp]
mov rdx, rdi
lea rcx, [rsp + 0x1f0]
mov al, byte [r8 + rcx]
xor al, byte [rcx]
mov byte [rcx + rbp], al
inc rcx
xor bl, al
sub rdx, 1
jne 0x10003abac
add qword [rsp + 0x60], rdi
sub r9, rdi
add rbp, rdi
add qword [rsp + 0x78], rdi
mov byte [rsp + 0x20], bl
mov qword [rsp + 0x88], r9
jmp 0x10003a8a7
xor edx, edx
mov r15, qword [rsp + 0x90]
test r9, r9
mov rsi, qword [rsp + 0x70]
mov r13, qword [rsp + 0x80]
je 0x10003ac45
lea rcx, [rsp + 0x1f0]
mov r15, qword [rsp + 0x78]
lea rax, [rsp + 0x1f0]
sub r15, rax
lea rax, [rsp + 0x1f0]
mov r8, qword [rsp + 0x60]
sub r8, rax
inc edx
mov al, byte [rcx + r15]
xor al, byte [rcx]
mov byte [rcx + r8], al
xor bl, al
mov eax, edx
inc rcx
cmp rax, r9
jb 0x10003ac25
mov r15, qword [rsp + 0x90]
lea r14, [0x100000000]
mov r12, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x130]
mov rdi, 0xfffffffffffff000
cmp bl, byte [rsi + r13 + 8]
je 0x10003ad25
call fcn.1000749ec
lea r9, [r12 + 0x18]
mov r10d, 0xffff
lea r15, [0x100010fb8]
mov qword [r12 + 0x10], r15
mov rbx, rax
and r9, 0xfffffffffffffff8
lea r11, [r9 + 0xfff]
mov rax, qword [0x100082270]
and rbx, rdi
and r11, rdi
xor r8d, r8d
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
test r10, r10
jne 0x10003aca8
mov qword [0x100082270], rax
movabs rax, 0x8000800080008001
mul r8
mov qword [rbp + 0x98], rbx
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r8, rdx
inc r8
mov qword [rbp + 0xb0], r8
mov qword [rsp + 0x80], r10
jmp 0x10003ad1b
mov rax, qword [rsp + 0x80]
mov qword [r9], rax
add r9, 8
cmp r9, r11
jb 0x10003ad0c
jmp 0x10003ae31
mov rax, qword [0x100033ac0]
mov rdi, rsi
mov rbp, r14
sub rdi, r15
sub rbp, rax
jne 0x10003ad43
test rdi, rdi
je 0x10003ae26
mov rbx, r15
mov rcx, qword [0x10004bc78]
lea r9d, [rcx - 1]
xor r8d, r8d
sub rbx, rsi
sub esi, r14d
lea r12d, [r13 + rsi]
test r9d, r9d
lea r13, [0x100000000]
js 0x10003ad9c
lea eax, [r8 + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r13 + rdx*4 + 0x4bc7c]
and r10d, 0xfffffff
cmp esi, r10d
jae 0x10003ad91
lea r9d, [rdx - 1]
jmp 0x10003ad97
jbe 0x10003ada1
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10003ad6b
movsxd r11, r8d
jmp 0x10003ae1f
mov r11, rdx
jmp 0x10003ae1f
mov edx, dword [r13 + r11*4 + 0x4bc7c]
mov eax, edx
and eax, 0xfffffff
cmp eax, r12d
jae 0x10003ae26
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 0x10003adfb
sub r8d, 1
je 0x10003adf6
cmp r8d, 1
jne 0x10003ae01
mov r10, rbp
jmp 0x10003ae01
mov r10, rdi
jmp 0x10003ae01
mov r10, rbp
sub r10, rdi
sub edx, 2
je 0x10003ae11
cmp edx, 1
jne 0x10003ae1c
add qword [r9 + rbx], r10
jmp 0x10003ae15
add dword [r9 + rbx], r10d
mov rcx, qword [0x10004bc78]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10003ada6
mov eax, dword [0x10000dfa4]
mov eax, 0xc6c04daf
mov rax, r15
jmp 0x10003b9db
mov edx, dword [0x10000003c]
cmp rsi, r14
jb 0x10003b930
movsxd rax, edx
mov ecx, dword [rax + r14 + 0x50]
add rcx, r14
cmp rsi, rcx
jae 0x10003b930
xor r9d, r9d
mov ecx, dword [0x10001074c]
mov r8d, esi
sub r8d, r14d
sub ecx, 1
js 0x10003aea2
lea eax, [rcx + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10, rdx
mov eax, dword [rbx + rdx*8 + 0x5e20c]
and eax, r11d
cmp r8d, eax
jae 0x10003ae93
lea ecx, [rdx - 1]
jmp 0x10003ae9d
jbe 0x10003b019
lea r9d, [rdx + 1]
cmp ecx, r9d
jge 0x10003ae70
xor edx, edx
test rdx, rdx
je 0x10003b930
mov eax, dword [rdx]
mov r14d, dword [rdx + 4]
xor r8d, r8d
and r14, r11
and eax, 7
mov r11d, dword [0x10000dfa4]
lea rsi, [rax + rdx + 8]
mov r10d, esi
sub r11, r14
mov qword [rsp + 0x78], rsi
lea rax, [0x100000000]
mov qword [rsp + 0x140], r14
sub r10d, eax
inc r11
mov r9, r11
je 0x10003af22
mov rax, qword [0x100082270]
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
test r9, r9
jne 0x10003aef4
mov qword [0x100082270], rax
xor edx, edx
mov rax, r8
mov ecx, r10d
div r11
lea r15, [rdi + rdx]
mov r8, r15
mov qword [rsp + 0x90], r15
mov rdx, r14
mov eax, 0x4bbff1e
mov r11, qword [r14 + rsi]
mov r13, 0xfffffffffffff000
xor bl, bl
mov byte [rsp + 0x20], bl
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x148], r11
mov qword [rsp + 0x60], r15
test r14, r14
je 0x10003b74f
lea rcx, [rsp + 0x148]
mov eax, 0x3822afe9
lea rdx, [0x100000000]
mov eax, 0xfffffff
mov r10d, dword [rsp + 0x14c]
mov rcx, rdx
mov r9, qword [rsp + 0x148]
and qword [rsp + 0x48], 0
and r9, rax
and r10, rax
add r9, rdx
mov rax, qword [0x100033ac0]
sub rcx, rax
mov qword [rsp + 0x80], rcx
jne 0x10003b038
xor r8d, r8d
test r10, r10
je 0x10003b2da
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
movzx eax, byte [r8 + r9]
inc r8
sub eax, 0x1bbd2d76
add edx, eax
add eax, ecx
mov ecx, eax
imul ecx, ecx, 0xfb82
rol ecx, 0xa
ror eax, 0xa
xor ecx, eax
imul ecx, ecx, 0xe442d28a
ror ecx, 2
add edx, ecx
cmp r8, r10
jb 0x10003afdb
mov dword [rsp + 0x4c], ecx
mov dword [rsp + 0x48], edx
jmp 0x10003b2da
mov edx, dword [rbx + rdx*8 + 0x5e20c]
and edx, r11d
mov eax, dword [rbx + r10*8 + 0x5e208]
and eax, 0x3f
add edx, eax
add rdx, r14
jmp 0x10003aea4
lea rax, [r9 + r10]
movsxd rcx, dword [0x10000003c]
mov r8d, dword [rcx + rdx + 0xb0]
mov qword [rsp + 0x50], rax
mov eax, r9d
sub eax, edx
mov edi, eax
mov r12d, eax
add r8, rdx
mov edx, dword [rcx + rdx + 0xb4]
add rax, r10
mov rcx, rax
and rdi, r13
and rcx, r13
lea r13, [rdx + r8]
sub r12, rdi
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x28], rcx
sub rax, rcx
mov qword [rsp + 0x98], rax
jmp 0x10003b09d
mov eax, dword [r8]
cmp rax, rdi
jae 0x10003b0a2
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r13
jne 0x10003b08e
xor r11d, r11d
cmp r8, r13
je 0x10003b0e1
mov eax, dword [r8]
cmp rax, rdi
jne 0x10003b0e1
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x10003b0dc
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, r12
jae 0x10003b0dc
inc r11
add rdx, 2
cmp r11, rcx
jne 0x10003b0c3
mov rcx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x80]
mov r10d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x4c]
lea rbx, [0x100000000]
mov r12d, 0xf000
cmp r8, r13
je 0x10003b28d
mov eax, dword [r8]
cmp rax, rcx
ja 0x10003b28d
mov rdi, qword [rsp + 0x28]
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x10003b146
add r8, rcx
cmp r8, r13
je 0x10003b28d
mov eax, dword [r8]
cmp rax, rdi
ja 0x10003b28d
xor r11d, r11d
jmp 0x10003b119
mov eax, dword [r8]
mov rcx, rdi
cmp rax, rcx
jne 0x10003b16a
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, qword [rsp + 0x98]
jae 0x10003b28d
mov rax, r11
inc r11
test word [r8 + rax*2 + 8], r12w
je 0x10003b0ff
movzx ecx, word [r8 + rax*2 + 8]
mov r12d, ecx
xor edi, edi
and r12d, 0xfff
add r12d, dword [r8]
add r12, rbx
mov r13, r12
sub r13, r9
je 0x10003b1d4
movzx eax, byte [rdi + r9]
inc rdi
sub eax, 0x1bbd2d76
add r10d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0xfb82
rol edx, 0xa
ror eax, 0xa
xor edx, eax
imul edx, edx, 0xe442d28a
ror edx, 2
add r10d, edx
cmp rdi, r13
jb 0x10003b198
mov dword [rsp + 0x4c], edx
mov dword [rsp + 0x48], r10d
shr ecx, 0xc
cmp ecx, 3
mov rax, qword [r12]
mov qword [rsp + 0xa8], rax
je 0x10003b1f6
sub ecx, 0xa
neg ecx
sbb r9d, r9d
add r9d, 3
jmp 0x10003b1fc
mov r9d, 2
mov rdi, rsi
neg rdi
sub r9d, 2
je 0x10003b226
cmp r9d, 1
je 0x10003b214
or rcx, 0xffffffffffffffff
jmp 0x10003b232
mov ecx, 8
add rax, rdi
mov qword [rsp + 0xa8], rax
jmp 0x10003b232
mov ecx, 4
add dword [rsp + 0xa8], edi
xor r9d, r9d
test rcx, rcx
je 0x10003b27a
movzx eax, byte [rsp + r9 + 0xa8]
inc r9
sub eax, 0x1bbd2d76
add r10d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0xfb82
rol edx, 0xa
ror eax, 0xa
xor edx, eax
imul edx, edx, 0xe442d28a
ror edx, 2
add r10d, edx
cmp r9, rcx
jb 0x10003b23a
mov dword [rsp + 0x4c], edx
mov dword [rsp + 0x48], r10d
lea r9, [rcx + r12]
mov r13, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x28]
jmp 0x10003b0f9
xor ecx, ecx
mov r8, qword [rsp + 0x50]
sub r8, r9
mov rsi, qword [rsp + 0x78]
je 0x10003b2da
movzx eax, byte [rcx + r9]
inc rcx
sub eax, 0x1bbd2d76
add r10d, eax
add eax, edx
mov edx, eax
imul edx, edx, 0xfb82
rol edx, 0xa
ror eax, 0xa
xor edx, eax
imul edx, edx, 0xe442d28a
ror edx, 2
add r10d, edx
cmp rcx, r8
jb 0x10003b29e
mov dword [rsp + 0x4c], edx
mov dword [rsp + 0x48], r10d
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
mov al, byte [rsp + rax + 0x48]
cmp rcx, 0x10
mov byte [rsp + rcx + 0x1df], al
jb 0x10003b2dc
mov eax, 0x9ef31f29
lea r12, [rsp + 0x230]
mov edx, dword [rsp + 0x1e4]
mov ecx, dword [rsp + 0x1e8]
mov r11d, dword [rsp + 0x1e0]
mov eax, dword [rsp + 0x1ec]
and dword [rsp + 0x1a8], 0
and dword [rsp + 0x1ac], 0
mov dword [rsp + 0x1a0], eax
mov dword [rsp + 0x1c8], eax
xor r13d, r13d
mov eax, dword [0x10006a908]
and dword [rsp + 0x1b4], r13d
sub r12, rsi
mov dword [rsp + 0x190], eax
lea edi, [r13 + 0x40]
mov eax, dword [0x10006a90c]
mov dword [rsp + 0x1a4], eax
mov eax, dword [0x10006a910]
mov dword [rsp + 0x194], r11d
mov dword [rsp + 0x1b8], eax
mov eax, dword [0x10006a914]
mov dword [rsp + 0x198], edx
mov dword [rsp + 0x19c], ecx
mov dword [rsp + 0x1bc], r11d
mov dword [rsp + 0x1c0], edx
mov dword [rsp + 0x1cc], eax
mov dword [rsp + 0x1c4], ecx
mov dword [rsp + 0x1b0], r13d
lea rdx, [rsp + 0x190]
mov r8, rdi
mov qword [rsp + 0x50], r12
lea rcx, [rsp + 0xb0]
call sub.msvcrt.dll_memcpy
mov r14d, dword [rsp + 0xd0]
mov r8d, dword [rsp + 0xe4]
mov edi, dword [rsp + 0xc8]
mov r15d, dword [rsp + 0xd4]
mov r10d, dword [rsp + 0xdc]
mov r13d, dword [rsp + 0xbc]
mov esi, dword [rsp + 0xcc]
mov edx, dword [rsp + 0xe8]
mov ebx, dword [rsp + 0xb8]
mov r12d, dword [rsp + 0xc0]
mov eax, dword [rsp + 0xc4]
mov r9d, dword [rsp + 0xe0]
mov r11d, dword [rsp + 0xd8]
mov ecx, dword [rsp + 0xec]
mov dword [rsp + 0x28], eax
mov ebp, dword [rsp + 0x28]
mov eax, dword [rsp + 0xb4]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x70], 2
add eax, r9d
rol eax, 7
xor r12d, eax
mov eax, dword [rsp + 0x38]
add eax, r12d
rol eax, 9
xor r14d, eax
lea eax, [r12 + r14]
rol eax, 0xd
xor r9d, eax
lea eax, [r14 + r9]
mov dword [rsp + 0x28], r9d
ror eax, 0xe
xor dword [rsp + 0x38], eax
mov r9d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x30]
add eax, ebp
rol eax, 7
xor r15d, eax
lea eax, [rbp + r15]
rol eax, 9
xor r8d, eax
lea eax, [r8 + r15]
rol eax, 0xd
xor dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
add eax, r8d
ror eax, 0xe
xor ebp, eax
lea eax, [rdi + r11]
rol eax, 7
xor edx, eax
lea eax, [r11 + rdx]
rol eax, 9
xor ebx, eax
lea eax, [rbx + rdx]
rol eax, 0xd
xor edi, eax
lea eax, [rbx + rdi]
ror eax, 0xe
xor r11d, eax
lea eax, [r10 + rcx]
rol eax, 7
xor r13d, eax
lea eax, [rcx + r13]
rol eax, 9
xor esi, eax
lea eax, [rsi + r13]
rol eax, 0xd
xor r10d, eax
lea eax, [rsi + r10]
ror eax, 0xe
xor ecx, eax
mov eax, dword [rsp + 0x38]
add eax, r13d
rol eax, 7
xor dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0xb4], eax
add eax, r9d
rol eax, 9
xor ebx, eax
mov eax, dword [rsp + 0x30]
add eax, ebx
rol eax, 0xd
xor r13d, eax
lea eax, [r13 + rbx]
ror eax, 0xe
xor r9d, eax
mov dword [rsp + 0x38], r9d
mov eax, r9d
mov dword [rsp + 0xb0], eax
lea eax, [rbp + r12]
mov r9d, dword [rsp + 0x28]
rol eax, 7
xor edi, eax
lea eax, [rdi + rbp]
rol eax, 9
xor esi, eax
lea eax, [rsi + rdi]
rol eax, 0xd
xor r12d, eax
lea eax, [r12 + rsi]
ror eax, 0xe
xor ebp, eax
lea eax, [r11 + r15]
rol eax, 7
xor r10d, eax
lea eax, [r10 + r11]
rol eax, 9
xor r14d, eax
lea eax, [r10 + r14]
rol eax, 0xd
xor r15d, eax
lea eax, [r14 + r15]
ror eax, 0xe
xor r11d, eax
lea eax, [rcx + rdx]
rol eax, 7
xor r9d, eax
mov dword [rsp + 0xe0], r9d
lea eax, [rcx + r9]
rol eax, 9
xor r8d, eax
lea eax, [r8 + r9]
rol eax, 0xd
xor edx, eax
lea eax, [rdx + r8]
ror eax, 0xe
xor ecx, eax
sub qword [rsp + 0x70], 1
mov eax, dword [rsp + 0x38]
jne 0x10003b466
mov dword [rsp + 0xec], ecx
mov dword [rsp + 0xc8], edi
xor ecx, ecx
mov dword [rsp + 0xc4], ebp
mov rbp, qword [rsp + 0x88]
mov edi, 0x40
mov dword [rsp + 0xc0], r12d
mov r12, qword [rsp + 0x50]
mov dword [rsp + 0xbc], r13d
mov r13d, dword [rsp + 0x1b0]
mov dword [rsp + 0xb8], ebx
mov bl, byte [rsp + 0x20]
mov dword [rsp + 0xe8], edx
mov dword [rsp + 0xe4], r8d
mov dword [rsp + 0xdc], r10d
mov dword [rsp + 0xd8], r11d
mov dword [rsp + 0xd4], r15d
mov dword [rsp + 0xd0], r14d
mov dword [rsp + 0xcc], esi
mov eax, dword [rsp + rcx + 0x190]
add rcx, 4
add dword [rsp + rcx + 0xac], eax
cmp rcx, rdi
jl 0x10003b669
lea rcx, [rsp + 0x230]
mov r8, rdi
lea rdx, [rsp + 0xb0]
call sub.msvcrt.dll_memcpy
inc r13d
mov r10, qword [rsp + 0x68]
mov dword [rsp + 0x1b0], r13d
cmp r10, rdi
jbe 0x10003b6f9
mov r8, rdi
mov r9, qword [rsp + 0x60]
mov rcx, rbp
mov rdx, r9
sub rdx, rbp
mov al, byte [r12 + rcx]
xor al, byte [rcx]
mov byte [rdx + rcx], al
inc rcx
xor bl, al
sub r8, 1
jne 0x10003b6be
mov byte [rsp + 0x20], bl
sub r10, rdi
add r9, rdi
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x60], r9
add rbp, rdi
mov qword [rsp + 0x88], rbp
sub r12, rdi
jmp 0x10003b3b8
mov r15, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x140]
xor edx, edx
test r10, r10
je 0x10003b740
lea rcx, [rsp + 0x230]
sub rcx, rbp
mov r8, qword [rsp + 0x60]
sub r8, rbp
mov al, byte [rcx + rbp]
inc edx
xor al, byte [rbp]
xor bl, al
mov byte [r8 + rbp], al
inc rbp
mov eax, edx
cmp rax, r10
jb 0x10003b728
mov r13, 0xfffffffffffff000
mov r12, qword [rsp + 0xa0]
cmp bl, byte [r14 + rsi + 8]
je 0x10003b819
call fcn.1000749ec
lea r9, [r12 + 0x18]
lea r15, [0x100010fb8]
mov rbx, rax
and r9, 0xfffffffffffffff8
mov r10d, 0xffff
and rbx, r13
mov qword [r12 + 0x10], r15
lea r11, [r9 + 0xfff]
mov rax, qword [0x100082270]
and r11, r13
xor r8d, r8d
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
test r10, r10
jne 0x10003b794
mov qword [0x100082270], rax
movabs rax, 0x8000800080008001
mul r8
mov rax, qword [rsp + 0x130]
mov qword [rax + 0x98], rbx
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r8, rdx
inc r8
mov qword [rax + 0xb0], r8
mov qword [rsp + 0x140], r10
jmp 0x10003b80f
mov rax, qword [rsp + 0x140]
mov qword [r9], rax
add r9, 8
cmp r9, r11
jb 0x10003b800
jmp 0x10003ae31
mov rax, qword [0x100033ac0]
mov rdi, rsi
lea r13, [0x100000000]
sub rdi, r15
mov rbp, r13
sub rbp, rax
jne 0x10003b83e
test rdi, rdi
je 0x10003ae26
xor r8d, r8d
mov rcx, qword [0x10004bc78]
mov rbx, r15
sub rbx, rsi
sub esi, r13d
lea r9d, [rcx - 1]
test r9d, r9d
lea r12d, [r14 + rsi]
lea r14, [0x100000000]
js 0x10003b896
lea eax, [r8 + r9]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r10d, dword [r14 + rdx*4 + 0x4bc7c]
and r10d, 0xfffffff
cmp esi, r10d
jae 0x10003b88b
lea r9d, [rdx - 1]
jmp 0x10003b891
jbe 0x10003b89e
lea r8d, [rdx + 1]
cmp r9d, r8d
jge 0x10003b865
movsxd r11, r8d
jmp 0x10003b920
mov r11, rdx
jmp 0x10003b920
mov edx, dword [r14 + r11*4 + 0x4bc7c]
mov eax, edx
and eax, 0xfffffff
cmp eax, r12d
jae 0x10003ae26
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 0x10003b8fc
sub r8d, 1
je 0x10003b8f7
cmp r8d, 1
jne 0x10003b902
mov r10, rbp
jmp 0x10003b902
mov r10, rdi
jmp 0x10003b902
mov r10, rbp
sub r10, rdi
sub edx, 2
je 0x10003b912
cmp edx, 1
jne 0x10003b91d
add qword [r9 + rbx], r10
jmp 0x10003b916
add dword [r9 + rbx], r10d
mov rcx, qword [0x10004bc78]
inc r11
mov eax, ecx
cmp r11, rax
jb 0x10003b8a3
jmp 0x10003ae26
mov eax, 0x9cd7c1fd
lea r11, [0x100079010]
cmp rdi, r11
jb 0x10003b97d
mov ecx, dword [0x10001c66c]
mov eax, dword [0x10000dfa4]
imul ecx, eax
mov eax, ecx
add rax, r11
cmp rdi, rax
jae 0x10003b97d
mov rax, rdi
mov ecx, dword [0x10000dfa4]
sub rax, r11
cqo
idiv rcx
mov rcx, rax
mov eax, dword [0x10000dfa4]
imul rax, rcx
add rax, r11
jmp 0x10003b97f
xor eax, eax
test rax, rax
je 0x10003b9ab
mov ecx, dword [0x10000dfa4]
sub rdi, r11
mov rax, rdi
cqo
idiv rcx
mov rcx, rax
mov eax, dword [0x10001c66c]
mov dword [rbx + rcx*4 + 0x82500], 0xe941
jmp 0x10003b9d8
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
mov rcx, rdi
or rcx, 3
call qword [sym.imp.KERNEL32.dll_RtlDeleteFunctionTable]
xor edx, edx
mov rcx, rdi
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rsi
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.100060d50
add rsp, 0x288
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret