Function at 0x140121360
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Encode data using xor
Hash data using murmur2
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x1a8]
sub rsp, 0x2a8
mov rax, qword [0x140188020]
xor rax, rsp
mov qword [rbp + 0x188], rax
mov rax, qword [rbp + 0x200]
mov r12, rcx
movdqa xmm0, xmmword [0x140174b10]
mov qword [rsp + 0x40], rcx
mov cl, 3
movsx ebx, cl
mov qword [rbp + 0xf8], rax
xor eax, eax
mov byte [rbp + 0x90], cl
mov ecx, ebx
mov qword [rbp + 0xf0], r9
mov qword [rbp + 0xe8], r8
mov qword [rbp + 0xe0], rdx
movdqu xmmword [rbp + 0xc0], xmm0
mov dword [rbp + 0xd0], 0x7a416d6c
mov dword [rbp + 0xd4], 0x676d624b
mov word [rbp + 0xd8], 0x666f
mov byte [rbp + 0xda], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x14012140c
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x14012141b
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp + 0x94]
mov r13d, 8
mov r9d, r13d
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
mov eax, edx
lea r8, [r8 + 4]
xor eax, r10d
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140121441
mov r9d, 0x1a
lea r8, [rbp + 0x94]
lea rdx, [rbp + 0xc0]
call fcn.14011c9b0
movsx ebx, byte [rbp + 0x90]
mov ecx, ebx
mov qword [rbp + 0xb8], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401214b9
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401214c8
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp + 0x94]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop dword [rax + rax]
mov eax, edx
lea r8, [r8 + 4]
xor eax, r10d
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x1401214f0
mov r9d, dword [0x140196874]
lea r8, [rbp + 0x94]
mov rdx, qword [rbp + 0xb8]
call fcn.14011cb00
mov rdi, rax
test rax, rax
je 0x14012158f
movdqu xmm0, xmmword [rax]
movsx edx, byte [rbp + 0x90]
mov ecx, 0xa
movd xmm1, edx
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
pxor xmm1, xmm0
movdqu xmmword [rax], xmm1
add rax, 0x10
nop dword [rax + rax]
xor byte [rax], dl
lea rax, [rax + 1]
sub rcx, 1
jne 0x140121580
mov byte [rdi + 0x1a], cl
mov rax, qword gs:[0x60]
mov qword [rsp + 0x2a0], r14
mov qword [rsp + 0x298], r15
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
mov eax, 0x5a4d
cmp qword [rsi + 0x60], 0
je 0x14012168d
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140121682
cmp word [r11], ax
jne 0x14012168d
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14012168d
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14012168d
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov ebx, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test ebx, ebx
je 0x14012167d
mov ecx, dword [r9]
xor r8b, r8b
add rcx, r11
cmp byte [rcx], r8b
je 0x140121671
mov rdx, rdi
sub rdx, rcx
movzx eax, byte [rcx + rdx]
test al, al
je 0x14012166c
cmp byte [rcx], al
jne 0x140121671
inc rcx
mov r8b, 1
cmp byte [rcx], 0
jne 0x140121644
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x14012168f
test r8b, r8b
jne 0x14012165b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140121630
mov eax, 0x5a4d
cmp qword [rsi + 0x60], 0
jne 0x1401215d0
xor eax, eax
lea rdx, [rbp + 0x150]
mov rcx, r12
call rax
test eax, eax
jne 0x1401216a9
mov eax, 0x200
jmp 0x1401229ae
mov r8d, dword [rbp + 0x150]
mov edi, 0x41000000
mov eax, r8d
mov r9d, r8d
and r9d, 1
mov r10d, r8d
mov ecx, r9d
or ecx, 2
and al, 2
mov eax, r8d
cmove ecx, r9d
mov edx, ecx
or edx, 4
and al, 4
cmove edx, ecx
mov eax, edx
or eax, 0x10
and r10d, 0x10
cmove eax, edx
mov ecx, eax
or ecx, 0x20
and r8b, 0x20
cmove ecx, eax
test r10d, r10d
mov eax, 0x81000000
cmove edi, eax
or edi, ecx
mov dword [rsp + 0x30], edi
test r9d, r9d
jne 0x14012171f
test r10d, r10d
mov eax, 0x41800000
mov edx, 0x81800000
cmove eax, edx
or eax, ecx
mov dword [rsp + 0x30], eax
movzx eax, byte [0x14016dca0]
mov cl, 0x3f
xor al, cl
movsx ebx, cl
mov byte [rbp], al
movzx eax, byte [0x14016dca1]
xor al, cl
mov byte [rbp - 0x30], cl
mov byte [rbp + 1], al
movzx eax, byte [0x14016dca2]
xor al, cl
mov byte [rbp + 2], al
movzx eax, byte [0x14016dca3]
xor al, cl
mov byte [rbp + 3], al
movzx eax, byte [0x14016dca4]
xor al, cl
mov byte [rbp + 4], al
movzx eax, byte [0x14016dca5]
xor al, cl
mov byte [rbp + 5], al
movzx eax, byte [0x14016dca6]
xor al, cl
mov byte [rbp + 6], al
movzx eax, byte [0x14016dca7]
xor al, cl
mov byte [rbp + 7], al
movzx eax, byte [0x14016dca8]
xor al, cl
mov byte [rbp + 8], al
movzx eax, byte [0x14016dca9]
xor al, cl
mov byte [rbp + 9], al
movzx eax, byte [0x14016dcaa]
xor al, cl
mov ecx, ebx
mov byte [rbp + 0xa], al
xor eax, eax
mov byte [rbp + 0xb], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401217c8
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401217d7
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp - 0x2c]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop dword [rax]
nop dword [rax + rax]
mov eax, edx
lea r8, [r8 + 4]
xor eax, r10d
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140121800
mov r9d, 0xb
lea r8, [rbp - 0x2c]
lea rdx, [rbp]
call fcn.14011c9b0
movsx ebx, byte [rbp - 0x30]
mov ecx, ebx
mov qword [rbp - 8], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x14012186c
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x14012187b
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp - 0x2c]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop dword [rax + rax]
mov eax, edx
lea r8, [r8 + 4]
xor eax, r10d
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x1401218a0
mov r9d, dword [0x140196874]
lea r8, [rbp - 0x2c]
mov rdx, qword [rbp - 8]
call fcn.14011cb00
mov rbx, rax
test rax, rax
je 0x14012191d
movzx eax, byte [rbp - 0x30]
xor byte [rbx], al
xor byte [rbx + 1], al
xor byte [rbx + 2], al
xor byte [rbx + 3], al
xor byte [rbx + 4], al
xor byte [rbx + 5], al
xor byte [rbx + 6], al
xor byte [rbx + 7], al
xor byte [rbx + 8], al
xor byte [rbx + 9], al
xor byte [rbx + 0xa], al
mov byte [rbx + 0xb], 0
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
cmp qword [rsi + 0x60], 0
je 0x140121a08
nop dword [rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x1401219fd
mov r14d, 0x5a4d
cmp word [r11], r14w
jne 0x140121b0c
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140121b0c
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140121b0c
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov edi, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test edi, edi
je 0x1401219fd
nop word [rax + rax]
mov ecx, dword [r9]
xor r8b, r8b
add rcx, r11
cmp byte [rcx], r8b
je 0x1401219f1
mov rdx, rbx
sub rdx, rcx
movzx eax, byte [rdx + rcx]
test al, al
je 0x1401219ec
cmp byte [rcx], al
jne 0x1401219f1
inc rcx
mov r8b, 1
cmp byte [rcx], 0
jne 0x1401219c4
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140121a0a
test r8b, r8b
jne 0x1401219db
inc r10d
add r9, 4
cmp r10d, edi
jb 0x1401219b0
cmp qword [rsi + 0x60], 0
jne 0x140121940
xor eax, eax
mov r14d, 0x5a4d
xor edx, edx
mov rcx, r12
call rax
mov dword [rsp + 0x34], eax
cmp eax, 0x28
jbe 0x1401228cd
lea rdx, [0x14016de80]
lea rcx, [rbp + 0x100]
call fcn.14010ef70
mov rcx, rax
call fcn.14001d920
mov rcx, qword gs:[0x60]
mov rsi, rax
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rdi, qword [rcx]
cmp qword [rdi + 0x60], 0
je 0x140121b3a
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x140121b24
cmp word [r11], r14w
jne 0x140121b36
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140121b36
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140121b36
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov ebx, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test ebx, ebx
je 0x140121b24
mov ecx, dword [r9]
xor r8b, r8b
add rcx, r11
cmp byte [rcx], r8b
je 0x140121b18
mov rdx, rsi
sub rdx, rcx
movzx eax, byte [rdx + rcx]
test al, al
je 0x140121b13
cmp byte [rcx], al
jne 0x140121b18
inc rcx
mov r8b, 1
cmp byte [rcx], 0
jne 0x140121ae4
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140121b3c
xor eax, eax
jmp 0x140121a10
test r8b, r8b
jne 0x140121afb
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140121ad0
cmp qword [rdi + 0x60], 0
je 0x140121b3a
mov r14d, 0x5a4d
jmp 0x140121a70
xor eax, eax
jmp 0x140121b42
xor eax, eax
mov r14d, 0x5a4d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, r12
call rax
movzx eax, byte [0x14016de60]
mov cl, 0x4f
xor al, cl
movsx ebx, cl
mov byte [rbp + 0x40], al
movzx eax, byte [0x14016de61]
xor al, cl
mov byte [rbp + 0x10], cl
mov byte [rbp + 0x41], al
movzx eax, byte [0x14016de62]
xor al, cl
mov byte [rbp + 0x42], al
movzx eax, byte [0x14016de63]
xor al, cl
mov byte [rbp + 0x43], al
movzx eax, byte [0x14016de64]
xor al, cl
mov byte [rbp + 0x44], al
movzx eax, byte [0x14016de65]
xor al, cl
mov byte [rbp + 0x45], al
movzx eax, byte [0x14016de66]
xor al, cl
mov byte [rbp + 0x46], al
movzx eax, byte [0x14016de67]
xor al, cl
mov ecx, ebx
mov byte [rbp + 0x47], al
xor eax, eax
mov byte [rbp + 0x48], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140121bd4
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140121be3
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp + 0x14]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140121c00
mov r9d, r13d
lea r8, [rbp + 0x14]
lea rdx, [rbp + 0x40]
call fcn.14011c9b0
movsx ebx, byte [rbp + 0x10]
mov ecx, ebx
mov qword [rbp + 0x38], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140121c69
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140121c78
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp + 0x14]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop word [rax + rax]
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140121ca0
mov r9d, dword [0x140196874]
lea r8, [rbp + 0x14]
mov rdx, qword [rbp + 0x38]
call fcn.14011cb00
mov rbx, rax
test rax, rax
je 0x140121d14
movzx eax, byte [rbp + 0x10]
xor byte [rbx], al
xor byte [rbx + 1], al
xor byte [rbx + 2], al
xor byte [rbx + 3], al
xor byte [rbx + 4], al
xor byte [rbx + 5], al
xor byte [rbx + 6], al
xor byte [rbx + 7], al
mov byte [rbx + 8], 0
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
cmp qword [rsi + 0x60], 0
je 0x140121e03
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x140121ded
cmp word [r11], r14w
jne 0x140121dff
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140121dff
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140121dff
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov edi, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test edi, edi
je 0x140121ded
mov ecx, dword [r9]
xor r8b, r8b
add rcx, r11
cmp byte [rcx], r8b
je 0x140121de1
mov rdx, rbx
sub rdx, rcx
movzx eax, byte [rcx + rdx]
test al, al
je 0x140121ddc
cmp byte [rcx], al
jne 0x140121de1
inc rcx
mov r8b, 1
cmp byte [rcx], 0
jne 0x140121db4
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140121e05
test r8b, r8b
jne 0x140121dcb
inc r10d
add r9, 4
cmp r10d, edi
jb 0x140121da0
cmp qword [rsi + 0x60], 0
je 0x140121e03
mov r14d, 0x5a4d
jmp 0x140121d40
xor eax, eax
jmp 0x140121e0b
xor eax, eax
mov r14d, 0x5a4d
lea r9, [rbp + 0x144]
mov dword [rsp + 0x20], 0
mov r8d, 2
lea rdx, [rbp + 0x140]
mov rcx, r12
call rax
movzx eax, byte [0x14016de80]
mov cl, 0x2c
xor al, cl
movsx ebx, cl
mov byte [rbp - 0x80], al
movzx eax, byte [0x14016de81]
xor al, cl
mov byte [rsp + 0x50], cl
mov byte [rbp - 0x7f], al
movzx eax, byte [0x14016de82]
xor al, cl
mov byte [rbp - 0x7e], al
movzx eax, byte [0x14016de83]
xor al, cl
mov byte [rbp - 0x7d], al
movzx eax, byte [0x14016de84]
xor al, cl
mov byte [rbp - 0x7c], al
movzx eax, byte [0x14016de85]
xor al, cl
mov byte [rbp - 0x7b], al
movzx eax, byte [0x14016de86]
xor al, cl
mov byte [rbp - 0x7a], al
movzx eax, byte [0x14016de87]
xor al, cl
mov byte [rbp - 0x79], al
movzx eax, byte [0x14016de88]
xor al, cl
mov byte [rbp - 0x78], al
movzx eax, byte [0x14016de89]
xor al, cl
mov byte [rbp - 0x77], al
movzx eax, byte [0x14016de8a]
xor al, cl
mov byte [rbp - 0x76], al
movzx eax, byte [0x14016de8b]
xor al, cl
mov byte [rbp - 0x75], al
movzx eax, byte [0x14016de8c]
xor al, cl
mov byte [rbp - 0x74], al
movzx eax, byte [0x14016de8d]
xor al, cl
mov ecx, ebx
mov byte [rbp - 0x73], al
xor eax, eax
mov byte [rbp - 0x72], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140121efa
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140121f09
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rsp + 0x54]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop word [rax + rax]
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140121f30
mov r12d, 0xe
lea r8, [rsp + 0x54]
mov r9d, r12d
lea rdx, [rbp - 0x80]
call fcn.14011c9b0
movsx ebx, byte [rsp + 0x50]
mov ecx, ebx
mov qword [rsp + 0x78], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x140121fa2
lea edx, [r12 + 0x76]
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x140121fb1
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rsp + 0x54]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140121fd0
mov r9d, dword [0x140196874]
lea r8, [rsp + 0x54]
mov rdx, qword [rsp + 0x78]
call fcn.14011cb00
mov rsi, rax
test rax, rax
je 0x14012203f
movzx edx, byte [rsp + 0x50]
mov rcx, r12
nop
xor byte [rax], dl
lea rax, [rax + 1]
sub rcx, 1
jne 0x140122030
mov byte [rsi + 0xe], cl
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax]
cmp qword [rdi + 0x60], 0
je 0x140122120
nop
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x14012210a
cmp word [r11], r14w
jne 0x14012211c
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14012211c
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14012211c
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov ebx, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test ebx, ebx
je 0x14012210a
mov ecx, dword [r9]
xor dl, dl
add rcx, r11
cmp byte [rcx], dl
je 0x1401220fe
mov r8, rsi
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x1401220fa
cmp byte [rcx], al
jne 0x1401220fe
inc rcx
mov dl, 1
cmp byte [rcx], 0
jne 0x1401220d2
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140122122
test dl, dl
jne 0x1401220e9
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x1401220c0
cmp qword [rdi + 0x60], 0
je 0x140122120
mov r14d, 0x5a4d
jmp 0x140122060
xor eax, eax
jmp 0x140122128
xor eax, eax
mov r14d, 0x5a4d
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x24]
call rax
movzx eax, byte [0x14016de60]
mov cl, 0x7d
xor al, cl
movsx ebx, cl
mov byte [rbp + 0x80], al
movzx eax, byte [0x14016de61]
xor al, cl
mov byte [rbp + 0x50], cl
mov byte [rbp + 0x81], al
movzx eax, byte [0x14016de62]
xor al, cl
mov byte [rbp + 0x82], al
movzx eax, byte [0x14016de63]
xor al, cl
mov byte [rbp + 0x83], al
movzx eax, byte [0x14016de64]
xor al, cl
mov byte [rbp + 0x84], al
movzx eax, byte [0x14016de65]
xor al, cl
mov byte [rbp + 0x85], al
movzx eax, byte [0x14016de66]
xor al, cl
mov byte [rbp + 0x86], al
movzx eax, byte [0x14016de67]
xor al, cl
mov ecx, ebx
mov byte [rbp + 0x87], al
xor eax, eax
mov byte [rbp + 0x88], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401221d9
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401221e8
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp + 0x54]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop word [rax + rax]
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140122210
mov r9d, r13d
lea r8, [rbp + 0x54]
lea rdx, [rbp + 0x80]
call fcn.14011c9b0
movsx ebx, byte [rbp + 0x50]
mov ecx, ebx
mov qword [rbp + 0x78], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x14012227c
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x14012228b
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp + 0x54]
mov r9, r13
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop dword [rax + rax]
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x1401222b0
mov r9d, dword [0x140196874]
lea r8, [rbp + 0x54]
mov rdx, qword [rbp + 0x78]
call fcn.14011cb00
mov rbx, rax
test rax, rax
je 0x140122324
movzx eax, byte [rbp + 0x50]
xor byte [rbx], al
xor byte [rbx + 1], al
xor byte [rbx + 2], al
xor byte [rbx + 3], al
xor byte [rbx + 4], al
xor byte [rbx + 5], al
xor byte [rbx + 6], al
xor byte [rbx + 7], al
mov byte [rbx + 8], 0
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rsi, qword [rax]
cmp qword [rsi + 0x60], 0
je 0x140122410
nop dword [rax]
nop word [rax + rax]
mov r11, qword [rsi + 0x30]
mov rsi, qword [rsi]
test r11, r11
je 0x1401223fa
cmp word [r11], r14w
jne 0x14012240c
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14012240c
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14012240c
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov edi, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test edi, edi
je 0x1401223fa
mov ecx, dword [r9]
xor dl, dl
add rcx, r11
cmp byte [rcx], dl
je 0x1401223ee
mov r8, rbx
sub r8, rcx
movzx eax, byte [rcx + r8]
test al, al
je 0x1401223ea
cmp byte [rcx], al
jne 0x1401223ee
inc rcx
mov dl, 1
cmp byte [rcx], 0
jne 0x1401223c2
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140122412
test dl, dl
jne 0x1401223d9
inc r10d
add r9, 4
cmp r10d, edi
jb 0x1401223b0
cmp qword [rsi + 0x60], 0
je 0x140122410
mov r14d, 0x5a4d
jmp 0x140122350
xor eax, eax
jmp 0x140122418
xor eax, eax
mov r14d, 0x5a4d
mov rcx, qword [rsp + 0x40]
lea r9, [rbp + 0x144]
mov r8d, 4
mov dword [rsp + 0x20], 0
lea rdx, [rbp + 0x148]
call rax
mov eax, 0x54ad
cmp word [rbp + 0x140], ax
jne 0x1401228c9
mov r13d, dword [rbp + 0x148]
lea eax, [r13 + 0x34]
cmp dword [rsp + 0x34], eax
jbe 0x1401228c9
movzx eax, byte [0x14016de80]
mov cl, 0x78
xor al, cl
movsx ebx, cl
mov byte [rbp - 0x40], al
movzx eax, byte [0x14016de81]
xor al, cl
mov byte [rbp - 0x70], cl
mov byte [rbp - 0x3f], al
movzx eax, byte [0x14016de82]
xor al, cl
mov byte [rbp - 0x3e], al
movzx eax, byte [0x14016de83]
xor al, cl
mov byte [rbp - 0x3d], al
movzx eax, byte [0x14016de84]
xor al, cl
mov byte [rbp - 0x3c], al
movzx eax, byte [0x14016de85]
xor al, cl
mov byte [rbp - 0x3b], al
movzx eax, byte [0x14016de86]
xor al, cl
mov byte [rbp - 0x3a], al
movzx eax, byte [0x14016de87]
xor al, cl
mov byte [rbp - 0x39], al
movzx eax, byte [0x14016de88]
xor al, cl
mov byte [rbp - 0x38], al
movzx eax, byte [0x14016de89]
xor al, cl
mov byte [rbp - 0x37], al
movzx eax, byte [0x14016de8a]
xor al, cl
mov byte [rbp - 0x36], al
movzx eax, byte [0x14016de8b]
xor al, cl
mov byte [rbp - 0x35], al
movzx eax, byte [0x14016de8c]
xor al, cl
mov byte [rbp - 0x34], al
movzx eax, byte [0x14016de8d]
xor al, cl
mov ecx, ebx
mov byte [rbp - 0x33], al
xor eax, eax
mov byte [rbp - 0x32], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x14012252f
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x14012253e
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp - 0x6c]
mov edi, 8
mov r9d, edi
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140122560
mov r9d, r12d
lea r8, [rbp - 0x6c]
lea rdx, [rbp - 0x40]
call fcn.14011c9b0
movsx ebx, byte [rbp - 0x70]
mov ecx, ebx
mov qword [rbp - 0x48], rax
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401225c9
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401225d8
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp - 0x6c]
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r9d, ecx, 0x5bd1e995
xor edx, edx
nop dword [rax]
nop word [rax + rax]
mov eax, r9d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub rdi, 1
jne 0x140122600
mov r9d, dword [0x140196874]
lea r8, [rbp - 0x6c]
mov rdx, qword [rbp - 0x48]
call fcn.14011cb00
mov rsi, rax
test rax, rax
je 0x140122670
movzx ecx, byte [rbp - 0x70]
nop dword [rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub r12, 1
jne 0x140122660
mov byte [rsi + 0xe], r12b
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax]
cmp qword [rdi + 0x60], 0
je 0x140122753
nop
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x14012273d
cmp word [r11], r14w
jne 0x14012274f
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14012274f
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14012274f
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov ebx, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test ebx, ebx
je 0x14012273d
mov ecx, dword [r9]
xor r8b, r8b
add rcx, r11
cmp byte [rcx], r8b
je 0x140122731
mov rdx, rsi
sub rdx, rcx
movzx eax, byte [rdx + rcx]
test al, al
je 0x14012272c
cmp byte [rcx], al
jne 0x140122731
inc rcx
mov r8b, 1
cmp byte [rcx], 0
jne 0x140122704
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140122755
test r8b, r8b
jne 0x14012271b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x1401226f0
cmp qword [rdi + 0x60], 0
je 0x140122753
mov r14d, 0x5a4d
jmp 0x140122690
xor eax, eax
jmp 0x14012275b
xor eax, eax
mov r14d, 0x5a4d
mov r12, qword [rsp + 0x40]
xor r9d, r9d
mov rcx, r12
xor r8d, r8d
mov edx, r13d
call rax
lea rdx, [0x14016de60]
lea rcx, [rbp + 0x90]
call fcn.14010c620
mov rcx, rax
call fcn.14001da10
mov rcx, qword gs:[0x60]
mov rsi, rax
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdx + 0x10]
mov rdi, qword [rcx]
cmp qword [rdi + 0x60], 0
je 0x140122873
nop dword [rax + rax]
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x14012285d
cmp word [r11], r14w
jne 0x14012286f
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x14012286f
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x14012286f
mov r14d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r14, r11
mov r15d, dword [rax + 0x24]
add r9, r11
mov ebx, dword [rax + 0x18]
add r15, r11
xor r10d, r10d
test ebx, ebx
je 0x14012285d
mov eax, dword [r9]
xor r8b, r8b
add rax, r11
cmp byte [rax], r8b
je 0x140122851
mov rdx, rsi
sub rdx, rax
movzx ecx, byte [rdx + rax]
test cl, cl
je 0x14012284c
cmp byte [rax], cl
jne 0x140122851
inc rax
mov r8b, 1
cmp byte [rax], 0
jne 0x140122824
movsxd rax, r10d
movzx ecx, word [r15 + rax*2]
mov eax, dword [r14 + rcx*4]
add rax, r11
jmp 0x140122875
test r8b, r8b
jne 0x14012283b
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140122810
cmp qword [rdi + 0x60], 0
je 0x140122873
mov r14d, 0x5a4d
jmp 0x1401227b0
xor eax, eax
jmp 0x14012287b
xor eax, eax
mov r14d, 0x5a4d
lea r9, [rbp + 0x144]
mov dword [rsp + 0x20], 0
mov r8d, 4
lea rdx, [rbp + 0x14c]
mov rcx, r12
call rax
mov eax, dword [rbp + 0x14c]
cmp eax, r14d
je 0x1401228bb
add eax, 0xffffbab4
cmp eax, 4
ja 0x1401228c9
mov ecx, 0x15
bt ecx, eax
jae 0x1401228c9
mov ecx, dword [rsp + 0x30]
mov eax, dword [rsp + 0x34]
bts ecx, 0x16
jmp 0x1401228d1
mov eax, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x30]
mov rdx, qword [rbp + 0xe0]
test rdx, rdx
je 0x1401228df
mov dword [rdx], ecx
mov rcx, qword [rbp + 0xe8]
test rcx, rcx
je 0x1401228ed
mov dword [rcx], eax
mov r9, qword [rbp + 0xf0]
mov rcx, qword [rbp + 0x164]
test r9, r9
je 0x140122980
mov r8, qword [rbp + 0x15c]
movabs r11, 0xfe624e212ac18000
add r8, r11
movabs r10, 0xd6bf94d5e57a42bd
mov rax, r10
imul r8
add rdx, r8
lea r8, [rcx + r11]
sar rdx, 0x17
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov rax, r10
mov qword [r9], rdx
imul r8
mov rax, r10
add rdx, r8
sar rdx, 0x17
mov r8, rdx
shr r8, 0x3f
add rdx, r8
mov r8, qword [rbp + 0x154]
mov qword [r9 + 8], rdx
add r8, r11
imul r8
add rdx, r8
sar rdx, 0x17
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [r9 + 0x10], rdx
mov rbx, qword [rbp + 0xf8]
test rbx, rbx
je 0x1401229ac
lea r8, [rsp + 0x3c]
lea rdx, [rsp + 0x38]
call fcn.140121060
movzx ecx, word [rsp + 0x38]
movzx eax, word [rsp + 0x3c]
shl ecx, 0x10
or ecx, eax
mov dword [rbx], ecx
xor eax, eax
mov r15, qword [rsp + 0x298]
mov r14, qword [rsp + 0x2a0]
mov rcx, qword [rbp + 0x188]
xor rcx, rsp
call fcn.14012b8f0
add rsp, 0x2a8
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret