Function at 0x180004922
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov r12, r9
mov r13d, r8d
mov rsi, rdx
mov r14, rcx
lea rcx, [0x1800098f0]
lea rdx, [0x18000990a]
lea r9, [rsp + 0x81]
mov r8d, 0x1a
call fcn.1800050d0
mov rbp, rax
mov rcx, qword [r14 + 0x860]
xor r15d, r15d
mov rdx, rsi
xor r8d, r8d
call fcn.180004662
test rax, rax
je 0x180004b78
mov rdi, rax
mov qword [rsp + 0x48], rsi
mov rbx, qword [rax + 0x18]
mov rcx, rbx
call sub.msvcrt.dll_malloc
mov rsi, rax
mov rdx, qword [rdi + 0x10]
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov r8, qword [r14 + 0x868]
mov rcx, rsi
mov rdx, rbx
call fcn.18000509c
mov ecx, 0x58
call sub.msvcrt.dll_malloc
test rax, rax
je 0x180004b5d
mov r15, rax
mov ecx, dword [rsp + 0x168]
mov rax, qword [rsp + 0x160]
mov dword [r15], 2
mov dword [r15 + 4], ecx
mov qword [r15 + 8], rax
mov qword [r15 + 0x10], r14
xorps xmm0, xmm0
movups xmmword [r15 + 0x20], xmm0
mov ecx, 0x68
call sub.msvcrt.dll_malloc
mov qword [r15 + 0x18], rax
test rax, rax
je 0x180004b55
mov qword [rsp + 0x38], r14
lea rcx, [0x180004e6b]
mov qword [rax], rcx
lea rcx, [0x180004e9b]
mov qword [rax + 8], rcx
lea rcx, [0x180004eb0]
mov qword [rax + 0x10], rcx
lea rcx, [0x180004ec8]
mov qword [rax + 0x18], rcx
lea rcx, [0x180004ed9]
mov qword [rax + 0x20], rcx
lea rcx, [0x180004eed]
mov qword [rax + 0x28], rcx
lea rcx, [0x180004f78]
mov qword [rax + 0x30], rcx
lea rcx, [sub.msvcrt.dll_malloc]
mov qword [rax + 0x40], rcx
lea rcx, [sub.msvcrt.dll_calloc]
mov qword [rax + 0x38], rcx
lea rcx, [sub.msvcrt.dll_realloc]
mov qword [rax + 0x48], rcx
lea rcx, [fcn.180007260]
mov qword [rax + 0x50], rcx
lea rcx, [sub.msvcrt.dll_memset]
mov qword [rax + 0x58], rcx
lea rcx, [sub.msvcrt.dll_memcpy]
mov qword [rax + 0x60], rcx
lea rcx, [0x18000990b]
lea rdx, [0x180009912]
lea r9, [rsp + 0x58]
mov r8d, 7
call fcn.1800050d0
mov rdi, rax
mov qword [rsp + 0x40], rbx
add rbx, 0xfffffffffffffff9
xor r14d, r14d
cmp rbx, r14
je 0x180004b4e
lea rcx, [rsi + r14]
mov r8d, 7
mov rdx, rdi
call sub.msvcrt.dll_memcmp
inc r14
test eax, eax
jne 0x180004ad2
test rsi, rsi
je 0x180004b4e
lea rbp, [rsi + r14]
dec rbp
mov qword [rbp], r15
mov edi, r13d
mov qword [r15 + 0x30], rdi
inc r13d
shl r13, 3
mov rcx, r13
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp]
mov qword [rcx + 0x38], rax
xor r13d, r13d
mov rbx, qword [rsp + 0x40]
cmp rdi, r13
je 0x180004b8f
mov rcx, qword [r12 + r13*8]
test rcx, rcx
je 0x180004b3b
call sub.msvcrt.dll__strdup
jmp 0x180004b3d
xor eax, eax
mov rcx, qword [rbp]
mov rcx, qword [rcx + 0x38]
mov qword [rcx + r13*8], rax
inc r13
jmp 0x180004b26
mov rcx, qword [rsp + 0x38]
jmp 0x180004b60
mov rcx, r15
call fcn.180007260
mov rcx, r14
mov edx, 1
mov r8, rbp
call fcn.180003bdf
xor r15d, r15d
mov rcx, rsi
call fcn.180007260
mov rax, r15
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rbp]
mov rax, qword [rax + 0x38]
and qword [rax + rdi*8], 0
mov eax, dword [rsp + 0x150]
mov rcx, qword [rbp]
mov qword [rcx + 0x40], rax
mov rax, qword [rbp]
and qword [rax + 0x48], 0
mov rax, qword [rbp]
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x180004be7
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp]
mov qword [rcx + 0x48], rax
mov rax, qword [rbp]
mov r8, qword [rax + 0x40]
mov rcx, qword [rax + 0x48]
mov rdx, qword [rsp + 0x158]
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsi + r14 + 7]
test rcx, rcx
je 0x180004c16
call sub.msvcrt.dll_malloc
mov rcx, qword [rsi + r14 - 1]
mov qword [rcx + 0x50], rax
mov rax, qword [rsi + r14 - 1]
mov r8, qword [rsi + r14 + 7]
mov rcx, qword [rax + 0x50]
xor edx, edx
call sub.msvcrt.dll_memset
jmp 0x180004c1f
mov rax, qword [rbp]
and qword [rax + 0x50], 0
mov r14, qword [rsp + 0x38]
mov ecx, 0x10
call sub.msvcrt.dll_malloc
mov rdi, rax
mov r8d, 0x10
mov rcx, rax
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov ecx, 0x48
call sub.msvcrt.dll_malloc
mov r12, rax
mov qword [rax], r14
mov qword [rax + 8], r15
mov qword [rax + 0x38], rdi
mov edi, dword [rsp + 0x168]
mov dword [rax + 0x10], edi
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll__strdup
mov qword [r12 + 0x18], rax
mov qword [r12 + 0x20], rsi
mov qword [r12 + 0x28], rbx
and dword [r12 + 0x40], 0
and dword [r12 + 0x30], 0
mov al, byte [rsp + 0x170]
mov byte [r12 + 0x44], al
mov r15, rbx
mov r14, rsi
test edi, edi
je 0x180004cdf
mov edi, edi
mov r14, qword [rsp + 0x38]
mov rdx, qword [r14 + 0x20]
cmp rdx, rdi
jbe 0x180004cb8
mov rax, qword [r14 + 0x18]
mov r15, rbx
jmp 0x180004cd6
lea rax, [rdx + rdx]
mov qword [r14 + 0x20], rax
mov rcx, qword [r14 + 0x18]
shl rdx, 4
call sub.msvcrt.dll_realloc
mov qword [r14 + 0x18], rax
mov r15, qword [r12 + 0x28]
mov qword [rax + rdi*8], r12
mov r14, qword [r12 + 0x20]
lea rcx, [0x180009890]
lea rdx, [0x1800098b7]
lea r9, [rsp + 0xc1]
mov r8d, 0x27
call fcn.1800050d0
mov r13, rax
lea rcx, [0x1800098c0]
lea rdx, [0x1800098e6]
lea r9, [rsp + 0x9b]
mov r8d, 0x26
call fcn.1800050d0
mov rdi, rax
xor ecx, ecx
mov rdx, r15
mov r8d, 0x3000
mov r9d, 0x20
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x180004e1e
mov rbp, rax
lea r9, [rsp + 0x58]
mov rcx, rax
mov rdx, r15
mov r8d, 4
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x180004dee
mov qword [r12 + 0x20], rbp
mov rcx, rbp
mov rdx, r14
mov r8, r15
call sub.msvcrt.dll_memcpy
lea r9, [rsp + 0x58]
mov rcx, rbp
mov rdx, r15
mov r8d, 0x20
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x180004dee
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
and dword [rsp + 0x20], 0
lea r8, [0x18000486e]
xor ecx, ecx
xor edx, edx
mov r9, r12
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov r15, rax
test rax, rax
jne 0x180004e59
mov rcx, rbp
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, r14
call fcn.180007260
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov r8, rdi
jmp 0x180004e17
xor r15d, r15d
mov rcx, rbp
xor edx, edx
mov r8d, 0x8000
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rcx, r14
call fcn.180007260
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov r8, r13
call fcn.180003bdf
jmp 0x180004e59
lea rcx, [0x180009860]
lea rdx, [0x180009888]
lea r9, [rsp + 0x58]
mov r8d, 0x28
call fcn.1800050d0
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov r8, rax
call fcn.180003bdf
mov rcx, r14
call fcn.180007260
xor r15d, r15d
mov rcx, rsi
xor edx, edx
mov r8, rbx
call sub.msvcrt.dll_memset
jmp 0x180004b70