Function at 0x140052d10
Capabilities:
Create thread

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], r8
push rbx
push rdi
push r12
sub rsp, 0x80
mov rdi, qword [rcx + 8]
lea rax, [r11 + 0x18]
xor r12d, r12d
mov qword [r11 - 0x70], rax
mov qword [rcx + 0x78], r12
lea r9, [r11 - 0x58]
mov rbx, rcx
mov qword [r11 + 0x18], r12
mov rcx, qword [rcx + 0x38]
xor r8d, r8d
mov rdx, rdi
mov qword [r11 - 0x78], 0x30
call fcn.1400545e8
cmp qword [rsp + 0xb0], r12
je 0x140052fc0
test eax, eax
jne 0x140052fc0
mov rdx, qword [rbx + 0x10]
cmp rdi, rdx
jae 0x140052fc0
mov rcx, qword [rsp + 0x58]
lea rax, [rcx + rdi]
cmp rax, rdi
jbe 0x140052fc0
mov rax, qword [rbx + 8]
mov rdi, qword [rsp + 0x40]
cmp rdi, rax
jae 0x140052dad
sub rdi, rax
mov qword [rsp + 0x40], rax
add rcx, rdi
mov rdi, rax
mov qword [rsp + 0x58], rcx
lea rax, [rdi + rcx]
cmp rax, rdx
jb 0x140052dc1
mov rcx, rdx
sub rcx, rdi
mov qword [rsp + 0x58], rcx
cmp rcx, 0x200000
je 0x140052dd2
add rdi, rcx
jmp 0x140052f88
cmp dword [rsp + 0x60], 0x1000
jne 0x140052f81
mov ecx, dword [rsp + 0x64]
bt ecx, 8
jb 0x140052f81
test cl, 1
jne 0x140052f81
mov eax, dword [rsp + 0x68]
cmp eax, 0x40000
je 0x140052f81
bt eax, 0xa
jb 0x140052f81
mov r8d, dword [rbx + 0x4c]
mov dl, 1
sub r8d, 1
je 0x140052e3b
cmp r8d, 1
jne 0x140052e54
test cl, 4
ja 0x140052e52
test cl, 8
ja 0x140052e52
test cl, 0x40
ja 0x140052e52
test ecx, 0x80
jbe 0x140052e54
jmp 0x140052e52
test cl, 4
ja 0x140052e54
test cl, 8
ja 0x140052e54
test cl, 0x40
ja 0x140052e54
test ecx, 0x80
ja 0x140052e54
xor dl, dl
mov r8d, dword [rbx + 0x50]
sub r8d, 1
je 0x140052f37
cmp r8d, 1
jne 0x140052e93
test cl, 0x10
ja 0x140052f5e
test cl, 0x20
ja 0x140052f5e
test cl, 0x40
ja 0x140052f5e
test ecx, 0x80
ja 0x140052f5e
mov al, 1
and dl, al
mov r8d, dword [rbx + 0x54]
sub r8d, 1
je 0x140052f65
cmp r8d, 1
jne 0x140052ec0
test cl, 8
ja 0x140052f7a
test ecx, 0x80
ja 0x140052f7a
mov al, 1
and dl, al
test dl, dl
je 0x140052f81
movsxd rcx, dword [rbx + 0x6c]
mov rax, qword [rbx + 0x70]
add rcx, rcx
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0x200000
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [rax + rcx*8], xmm0
inc dword [rbx + 0x6c]
movsxd rcx, dword [rbx + 0x6c]
mov eax, ecx
and eax, 0x8000003f
jge 0x140052f01
dec eax
or eax, 0xffffffc0
inc eax
test eax, eax
jne 0x140052f24
lea rdx, [rcx + 0x40]
mov rcx, qword [rbx + 0x70]
shl rdx, 4
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x140052fdb
mov qword [rbx + 0x70], rax
mov rcx, qword [rsp + 0x58]
add qword [rbx + 0x78], rcx
mov rdi, qword [rsp + 0x40]
add rdi, rcx
jmp 0x140052f88
test cl, 0x10
ja 0x140052e8f
test cl, 0x20
ja 0x140052e8f
test cl, 0x40
ja 0x140052e8f
test ecx, 0x80
ja 0x140052e8f
xor al, al
jmp 0x140052e91
test cl, 8
ja 0x140052ebc
test ecx, 0x80
ja 0x140052ebc
xor al, al
jmp 0x140052ebe
add rdi, 0x200000
mov rcx, qword [rbx + 0x38]
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x20], Ordinal_50
mov rdx, rdi
call fcn.1400545e8
cmp qword [rsp + 0xb0], r12
jne 0x140052d65
cmp dword [rbx + 0x6c], r12d
lea r11, [rbx + 0x6c]
jne 0x140052fec
mov eax, 2
add rsp, 0x80
pop r12
pop rdi
pop rbx
ret
mov eax, 3
add rsp, 0x80
pop r12
pop rdi
pop rbx
ret
mov ecx, dword [rbx]
lea rdi, [rbx + 4]
mov r9, qword [rbx + 0x78]
mov eax, ecx
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0xa8], rsi
shl eax, 0xc
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x70], r15
mov dword [rdi], ecx
cmp r9, rax
jae 0x140053031
mov rax, r9
shr rax, 0xc
inc eax
cmp eax, ecx
jae 0x140053031
mov dword [rdi], eax
lea r11, [rbx + 0x6c]
mov ecx, eax
mov r8d, ecx
xor edx, edx
mov rax, r9
mov r14, r12
div r8
mov r9d, r12d
mov r15d, r12d
mov rcx, rax
mov rbp, rax
and ecx, 0xfff
sub rbp, rcx
test rcx, rcx
cmove rbp, rax
test r8d, r8d
je 0x1400532ac
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx + 0x30]
mov ecx, r15d
movsxd r10, r9d
shl r10, 4
mov byte [rcx + rax], r12b
lea rsi, [rcx + rcx*2]
mov rax, qword [rbx + 0x28]
shl rsi, 5
mov qword [rsi + rax], rbx
mov rax, qword [rbx + 0x28]
mov dword [rax + rsi + 0x18], r15d
mov rax, qword [rbx + 0x28]
mov dword [rax + rsi + 0x2c], r9d
mov rax, qword [rbx + 0x70]
mov rdx, qword [rax + r10]
mov rax, qword [rbx + 0x28]
add rdx, r14
mov qword [rax + rsi + 0x38], rdx
mov rax, qword [rbx + 0x70]
mov r8, qword [rax + r10 + 8]
mov rax, qword [rbx + 0x28]
sub r8, r14
mov qword [rax + rsi + 0x48], r8
mov eax, dword [rdi]
dec eax
cmp r15d, eax
jne 0x14005312a
mov rcx, qword [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov qword [rcx + rsi + 0x40], rax
mov ecx, dword [r11]
mov rax, qword [rbx + 0x28]
dec ecx
mov dword [rax + rsi + 0x30], ecx
cmp r9d, dword [r11]
jge 0x140053208
nop dword [rax]
mov rax, qword [rbx + 0x70]
mov rcx, qword [rbx + 0x28]
mov rdx, qword [rax + r10 + 8]
cmp qword [rcx + rsi + 0x48], rdx
jae 0x140053119
mov qword [rcx + rsi + 0x48], rdx
inc r9d
add r10, 0x10
cmp r9d, dword [r11]
jl 0x140053100
jmp 0x140053208
inc r9d
cmp r8, rbp
jae 0x14005316f
mov rdx, qword [rbx + 0x70]
movsxd rcx, r9d
shl rcx, 4
nop dword [rax]
cmp r9d, dword [r11]
jge 0x14005316f
mov rax, qword [rbx + 0x28]
mov r10, qword [rcx + rdx + 8]
cmp qword [rax + rsi + 0x48], r10
jae 0x14005315a
mov qword [rax + rsi + 0x48], r10
mov rdx, qword [rbx + 0x70]
inc r9d
add r8, qword [rcx + rdx + 8]
add rcx, 0x10
cmp r8, rbp
jb 0x140053140
mov eax, r15d
mov esi, r9d
dec r9d
movsxd r10, r9d
lea rdx, [rax + rax*2]
shl rdx, 5
add rdx, qword [rbx + 0x28]
cmp qword [rdx + 0x48], r12
jne 0x1400531a0
mov rax, qword [rbx + 0x70]
mov rcx, r10
add rcx, rcx
mov rcx, qword [rax + rcx*8 + 8]
mov qword [rdx + 0x48], rcx
add r10, r10
mov eax, r15d
sub r8, rbp
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x28]
shl rcx, 5
mov dword [rcx + rax + 0x30], r9d
mov rax, qword [rbx + 0x70]
mov rdx, qword [rax + r10*8 + 8]
add rdx, qword [rax + r10*8]
mov eax, r15d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x28]
shl rcx, 5
mov qword [rcx + rax + 0x40], rdx
mov eax, r15d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x28]
shl rcx, 5
sub qword [rcx + rax + 0x40], r8
test r8, r8
jne 0x1400531fc
mov r9d, esi
mov r14, r12
jmp 0x140053208
mov rax, qword [rbx + 0x70]
mov r14, qword [rax + r10*8 + 8]
sub r14, r8
mov eax, r15d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x28]
shl rcx, 5
cmp qword [rcx + rax + 0x48], 0x80000
jbe 0x14005322b
mov qword [rcx + rax + 0x48], 0x80000
mov rcx, qword [rbx + 0x28]
mov eax, r15d
lea rdx, [rax + rax*2]
mov rax, qword [rbx + 0x38]
shl rdx, 5
mov qword [rdx + rcx + 8], rax
mov rcx, qword [rbx + 0x28]
mov eax, r15d
lea rdx, [rax + rax*2]
mov rax, qword [rbx + 0x18]
shl rdx, 5
mov qword [rdx + rcx + 0x10], rax
mov rcx, qword [rbx + 0x28]
mov eax, r15d
lea rdx, [rax + rax*2]
mov eax, dword [rbx + 0x20]
shl rdx, 5
mov dword [rdx + rcx + 0x1c], eax
mov rcx, qword [rbx + 0x28]
mov eax, r15d
lea rdx, [rax + rax*2]
movzx eax, byte [rbx + 0x49]
shl rdx, 5
mov byte [rdx + rcx + 0x34], al
mov eax, r15d
inc r15d
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x28]
shl rcx, 5
mov byte [rcx + rax + 0x35], r12b
cmp r15d, dword [rdi]
jb 0x140053070
lea rdi, [rbx + 4]
lea rax, [rbx + 0xa8]
mov qword [rbx + 0xc0], rax
mov rcx, qword [rax]
cmp rcx, qword [rax + 8]
je 0x1400532cb
mov qword [rax + 8], rcx
lea rdi, [rbx + 4]
mov eax, r12d
mov r15d, 1
xchg byte [rbx + 0x80], al
mov ecx, dword [rbx + 0x58]
sub ecx, 3
je 0x140053354
cmp ecx, r15d
jne 0x1400533e5
mov ecx, 0x200
call fcn.1400b7e90
lea rsi, [rbx + 0x98]
mov rdx, 0xffffffffffffffff
mov r8d, 0x200
mov qword [rsi], rax
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov r8d, r12d
cmp dword [rbx + 0x20], r12d
jle 0x140053348
nop dword [rax]
mov rax, qword [rbx + 0x18]
movsxd rcx, r8d
movsx rdx, word [rax + rcx*2]
mov rax, qword [rsi]
mov word [rax + rdx*2], r8w
inc r8d
cmp r8d, dword [rbx + 0x20]
jl 0x140053320
lea rsi, [rbx + 0x98]
lea rdi, [rbx + 4]
mov qword [rbx + 0xa0], rsi
jmp 0x1400533e5
movsxd rbp, dword [rbx + 0x20]
lea rsi, [rbx + 0x88]
mov r14, qword [rbx + 0x18]
mov rcx, 0xffffffffffffffff
mov eax, 2
mul rbp
cmovb rax, rcx
mov rcx, rax
call fcn.1400b7e90
mov qword [rsi], rax
mov ecx, r12d
mov rdx, r15
mov word [rax], r12w
cmp r15, rbp
jge 0x1400533de
movzx r8d, word [r14 + rdx*2]
movsxd rax, ecx
cmp word [r14 + rax*2], r8w
je 0x1400533c2
cmp r8w, 0xffff
je 0x1400533c2
mov r8, qword [rsi]
test ecx, ecx
je 0x1400533bb
movsxd rax, ecx
dec rdx
movsx ecx, word [r8 + rax*2 - 2]
jmp 0x1400533cb
mov word [r8 + rdx*2], r12w
jmp 0x1400533cb
mov rax, qword [rsi]
inc ecx
mov word [rax + rdx*2], cx
inc rdx
cmp rdx, rbp
jl 0x140053390
lea rsi, [rbx + 0x88]
lea rdi, [rbx + 4]
mov qword [rbx + 0x90], rsi
mov ecx, dword [rbx + 4]
mov esi, r12d
mov r14, qword [rsp + 0x78]
mov rbp, qword [rsp + 0xa0]
lea eax, [rcx - 1]
test eax, eax
je 0x140053467
nop
mov eax, esi
lea r8, [0x140053610]
mov qword [rsp + 0x28], r12
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], r12d
lea r9, [rax + rax*2]
shl r9, 5
add r9, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_CreateThread]
test rax, rax
jne 0x14005344a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbx + 0x68], eax
test eax, eax
je 0x140053457
xchg byte [rbx + 0x80], r15b
mov eax, dword [rbx + 0x68]
jmp 0x140053531
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [rbx + 0x68], r12d
mov ecx, dword [rbx + 4]
inc esi
lea eax, [rcx - 1]
cmp esi, eax
jb 0x140053400
lea rdi, [rbx + 4]
lea eax, [rcx - 1]
lea rcx, [rax + rax*2]
shl rcx, 5
add rcx, qword [rbx + 0x28]
call fcn.140053620
mov r10d, r12d
cmp byte [rbx + 0x49], r12b
jne 0x1400534e1
mov eax, dword [rdi]
mov edx, r12d
test eax, eax
je 0x1400534da
mov r9, qword [rbx + 0x28]
nop dword [rax]
nop word [rax + rax]
mov r8d, edx
lea rcx, [r8 + r8*2]
shl rcx, 5
cmp byte [r9 + rcx + 0x35], r12b
je 0x1400534d2
mov rax, qword [rbx + 0x30]
cmp byte [rax + r8], r15b
je 0x1400534d2
mov byte [rax + r8], r15b
inc r10d
mov r9, qword [rbx + 0x28]
mov eax, dword [r9 + rcx + 0x50]
add dword [rbx + 0x84], eax
mov eax, dword [rdi]
inc edx
cmp edx, eax
jb 0x1400534a0
cmp r10d, eax
jne 0x140053484
jmp 0x14005352f
mov eax, dword [rdi]
mov edx, r12d
test eax, eax
je 0x14005352a
mov r9, qword [rbx + 0x28]
nop
mov r8d, edx
lea rcx, [r8 + r8*2]
shl rcx, 5
cmp byte [r9 + rcx + 0x35], r12b
je 0x140053522
mov rax, qword [rbx + 0x30]
cmp byte [rax + r8], r12b
jne 0x140053522
mov byte [rax + r8], r15b
inc r10d
mov r9, qword [rbx + 0x28]
mov eax, dword [rcx + r9 + 0x50]
add dword [rbx + 0x84], eax
mov eax, dword [rdi]
inc edx
cmp edx, eax
jb 0x1400534f0
cmp r10d, eax
jne 0x1400534e1
xor eax, eax
mov rsi, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x70]
add rsp, 0x80
pop r12
pop rdi
pop rbx
ret