Function at 0x140188820
Capabilities:
Create thread

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2c0
mov rax, qword [0x140628fc0]
xor rax, rsp
mov qword [rsp + 0x2b8], rax
mov r15, r8
mov r13, rdx
mov r12, rcx
mov qword [rsp + 0x240], rcx
mov qword [rsp + 0x248], r8
xor r14d, r14d
mov eax, dword [0x140634ca8]
cmp eax, 3
jne 0x1401888ea
mov dword [0x140634ca8], 4
mov byte [0x140634eb4], 1
lea edx, [rax + 0x21]
lea rcx, [rsp + 0x1c0]
call fcn.140133640
lea rcx, [rsp + 0x1c0]
call fcn.14014c690
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [0x140187650]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rsp + 0x58], rax
mov rdx, qword [0x140634e08]
cmp rdx, qword [0x140634e10]
je 0x1401888da
mov qword [rdx], rax
add qword [0x140634e08], 8
jmp 0x1401888e4
lea r8, [rsp + 0x58]
call fcn.1401c66f0
mov eax, dword [0x140634ca8]
cmp eax, 4
jne 0x1401889c4
movabs rbx, 0x7ffffffffa0a1eff
mov edi, 0xff
movabs rsi, 0x4e94914effff
nop dword [rax]
lea rcx, [rsp + 0x60]
call fcn.14016dfc0
mov rax, qword [rsp + 0x60]
cmp rax, rbx
je 0x140188937
mov ecx, 1
cmovl ecx, edi
test cl, cl
lea rbx, [rax + 0x5f5e100]
js 0x140188941
movabs rbx, 0x7fffffffffffffff
lea rcx, [rsp + 0x50]
call fcn.14016dfc0
mov rax, qword [rsp + 0x50]
cmp rbx, rax
je 0x1401889ab
mov ecx, 1
cmovl ecx, edi
test cl, cl
jle 0x1401889ab
mov rcx, rbx
sub rcx, rax
cmp rcx, rsi
jg 0x14018899f
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x140188996
inc rdx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x140188941
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x140188941
mov eax, dword [0x140634ca8]
cmp eax, 4
movabs rbx, 0x7ffffffffa0a1eff
je 0x140188910
cmp eax, 1
jne 0x14018913a
cmp byte [r15], al
je 0x140188a40
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x70], xmm0
movzx r9d, al
xor r8d, r8d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x40]
call fcn.1401a71e0
lea rcx, [rsp + 0x40]
call fcn.1401ad700
movzx ecx, byte [r15]
movzx eax, byte [rsp + 0x40]
mov byte [r15], al
mov byte [rsp + 0x40], cl
mov rax, qword [r15 + 8]
mov rcx, qword [rsp + 0x48]
mov qword [r15 + 8], rcx
mov qword [rsp + 0x48], rax
mov rcx, r15
call fcn.1401ad700
lea rcx, [rsp + 0x40]
call fcn.1401ad700
nop
movzx edx, byte [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.1401b12a0
nop
mov r8b, 1
lea rcx, [rsp + 0x278]
call fcn.14016f500
nop
mov edx, 0x25
lea rcx, [rsp + 0x220]
call fcn.140133640
mov rbx, rax
lea rdi, [rsp + 0xe0]
mov qword [rsp + 0x30], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0xe0], xmm0
mov byte [rsp + 0xe0], 0
xor eax, eax
mov qword [rsp + 0xe8], rax
xor edx, edx
lea rcx, [rsp + 0xe8]
call fcn.1401b12a0
mov byte [rsp + 0xe0], 3
mov ecx, 0x20
call fcn.1404a0cf4
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
mov qword [rdi + 8], rax
mov qword [rsp + 0xf0], r14
lea rdx, [rsp + 0x278]
lea rcx, [rsp + 0xf8]
call fcn.1401c42b0
mov qword [rsp + 0x108], r14
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x110], rax
lea rax, [rsp + 0x110]
mov qword [rsp + 0x118], rax
mov r9b, 2
mov r8b, 1
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x160]
call fcn.1401a71e0
mov qword [rsp + 0x170], r14
mov edx, 0x26
lea rcx, [rsp + 0x200]
call fcn.140133640
mov rbx, rax
lea rdi, [rsp + 0xb0]
mov qword [rsp + 0x30], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0xb0], xmm0
mov byte [rsp + 0xb0], 0
xor eax, eax
mov qword [rsp + 0xb8], rax
xor edx, edx
lea rcx, [rsp + 0xb8]
call fcn.1401b12a0
mov byte [rsp + 0xb0], 3
mov ecx, 0x20
call fcn.1404a0cf4
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
mov qword [rdi + 8], rax
mov qword [rsp + 0xc0], r14
mov rdx, r12
lea rcx, [rsp + 0xc8]
call fcn.1401c42b0
mov qword [rsp + 0xd8], r14
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x120], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x128], rax
mov r9b, 2
mov r8b, 1
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x178]
call fcn.1401a71e0
mov qword [rsp + 0x188], r14
mov edx, 0x80
lea rcx, [rsp + 0x1e0]
call fcn.140133640
mov rbx, rax
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x30], rdi
xorps xmm0, xmm0
movups xmmword [rsp + 0x80], xmm0
mov byte [rsp + 0x80], 0
xor eax, eax
mov qword [rsp + 0x88], rax
xor edx, edx
lea rcx, [rsp + 0x88]
call fcn.1401b12a0
mov byte [rsp + 0x80], 3
mov ecx, 0x20
call fcn.1404a0cf4
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], r14
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
mov qword [rdi + 8], rax
mov qword [rsp + 0x90], r14
mov rdx, r15
lea rcx, [rsp + 0x98]
call fcn.1401a6df0
mov qword [rsp + 0xa8], r14
lea rax, [rsp + 0x80]
mov qword [rsp + 0x130], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x138], rax
mov r9b, 2
mov r8b, 1
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x190]
call fcn.1401a71e0
mov qword [rsp + 0x1a0], r14
lea rax, [rsp + 0x160]
mov qword [rsp + 0x140], rax
lea rax, [rsp + 0x1a8]
mov qword [rsp + 0x148], rax
mov r9b, 2
mov r8b, 1
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x250]
call fcn.1401a71e0
nop
lea r9, [fcn.1401894a0]
mov edx, 0x18
lea r8d, [rdx - 0x15]
lea rcx, [rsp + 0x160]
call fcn.1404a0d30
nop
lea r9, [fcn.1401894a0]
mov edx, 0x18
lea r8d, [rdx - 0x16]
lea rcx, [rsp + 0x80]
call fcn.1404a0d30
nop
lea rcx, [rsp + 0x1e0]
call fcn.14014c690
nop
lea r9, [fcn.1401894a0]
mov edx, 0x18
lea r8d, [rdx - 0x16]
lea rcx, [rsp + 0xb0]
call fcn.1404a0d30
nop
lea rcx, [rsp + 0x200]
call fcn.14014c690
nop
lea r9, [fcn.1401894a0]
mov edx, 0x18
lea r8d, [rdx - 0x16]
lea rcx, [rsp + 0xe0]
call fcn.1404a0d30
nop
lea rcx, [rsp + 0x220]
call fcn.14014c690
lea rdx, [rsp + 0x298]
lea rcx, [rsp + 0x250]
call fcn.1401a6ba0
nop
mov word [rsp + 0x260], 0
lea rcx, [rsp + 0x268]
call fcn.1401a76c0
nop
mov word [rsp + 0x260], 0
lea rdx, [rsp + 0x278]
call fcn.1401a60c0
mov rbx, rax
mov word [rax], 0
lea rdx, [rsp + 0x268]
lea rcx, [rsp + 0x1b0]
call fcn.1401a6df0
mov rsi, rax
mov rcx, rax
call fcn.1401ad700
movzx r8d, byte [rbx + 8]
movzx edx, byte [rsi]
mov byte [rbx + 8], dl
mov byte [rsi], r8b
mov rcx, qword [rbx + 0x10]
mov rdx, qword [rsi + 8]
mov qword [rbx + 0x10], rdx
mov qword [rsi + 8], rcx
lea rcx, [rbx + 8]
call fcn.1401ad700
mov rcx, rsi
call fcn.1401ad700
nop
movzx edx, byte [rsi]
lea rcx, [rsi + 8]
call fcn.1401b12a0
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov rcx, qword [0x140634e30]
test rcx, rcx
je 0x140188edd
mov rax, qword [0x140634e28]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rcx
lock inc dword [rcx + 0xc]
lea r8, [rsp + 0x298]
lea rdx, [rsp + 0x30]
call fcn.1401b5440
nop
lea rdx, [rsp + 0x278]
call fcn.1401a60c0
cmp byte [rax], 0
jne 0x140188fad
mov qword [rsp + 0x50], 0x64
lea rcx, [rsp + 0x50]
call fcn.1401b5df0
inc r14d
cmp r14d, 0x32
jl 0x140188ef0
lea rcx, [rsp + 0x268]
call fcn.1401ad700
nop
movzx edx, byte [rsp + 0x268]
lea rcx, [rsp + 0x270]
call fcn.1401b12a0
nop
lea rcx, [rsp + 0x298]
call fcn.14014c690
nop
lea rcx, [rsp + 0x250]
call fcn.1401ad700
nop
movzx edx, byte [rsp + 0x250]
lea rcx, [rsp + 0x258]
call fcn.1401b12a0
nop
lea rcx, [rsp + 0x278]
call fcn.14014c690
nop
mov rcx, r12
call fcn.14014c690
nop
mov rcx, r15
call fcn.1401ad700
nop
lea rcx, [r15 + 8]
movzx edx, byte [r15]
call fcn.1401b12a0
nop
xor al, al
jmp 0x14018916e
lea rdx, [rsp + 0x278]
call fcn.1401a60c0
cmp byte [rax + 1], 0
je 0x14018904f
lea rcx, [rsp + 0x268]
call fcn.1401ad700
nop
movzx edx, byte [rsp + 0x268]
lea rcx, [rsp + 0x270]
call fcn.1401b12a0
nop
lea rcx, [rsp + 0x298]
call fcn.14014c690
nop
lea rcx, [rsp + 0x250]
call fcn.1401ad700
nop
movzx edx, byte [rsp + 0x250]
lea rcx, [rsp + 0x258]
call fcn.1401b12a0
nop
lea rcx, [rsp + 0x278]
call fcn.14014c690
nop
mov rcx, r12
call fcn.14014c690
nop
mov rcx, r15
call fcn.1401ad700
nop
lea rcx, [r15 + 8]
movzx edx, byte [r15]
call fcn.1401b12a0
nop
xor al, al
jmp 0x14018916e
lea rdx, [rsp + 0x278]
call fcn.1401a60c0
lea rdx, [rax + 8]
lea rcx, [rsp + 0x70]
call fcn.1401a6df0
mov rdi, rax
mov rcx, rax
call fcn.1401ad700
movzx r8d, byte [r13]
movzx edx, byte [rdi]
mov byte [r13], dl
mov byte [rdi], r8b
mov rdx, qword [r13 + 8]
mov r8, qword [rdi + 8]
mov qword [r13 + 8], r8
mov qword [rdi + 8], rdx
mov rcx, r13
call fcn.1401ad700
mov rcx, rdi
call fcn.1401ad700
nop
movzx edx, byte [rdi]
lea rcx, [rdi + 8]
call fcn.1401b12a0
nop
lea rcx, [rsp + 0x268]
call fcn.1401ad700
nop
movzx edx, byte [rsp + 0x268]
lea rcx, [rsp + 0x270]
call fcn.1401b12a0
nop
lea rcx, [rsp + 0x298]
call fcn.14014c690
nop
lea rcx, [rsp + 0x250]
call fcn.1401ad700
nop
movzx edx, byte [rsp + 0x250]
lea rcx, [rsp + 0x258]
call fcn.1401b12a0
nop
lea rcx, [rsp + 0x278]
call fcn.14014c690
nop
mov rcx, r12
call fcn.14014c690
nop
mov rcx, r15
call fcn.1401ad700
nop
lea rcx, [r15 + 8]
movzx edx, byte [r15]
call fcn.1401b12a0
nop
mov al, 1
jmp 0x14018916e
jmp 0x14018914c
mov rcx, r12
call fcn.14014c690
nop
mov rcx, r15
call fcn.1401ad700
nop
lea rcx, [r15 + 8]
movzx edx, byte [r15]
call fcn.1401b12a0
nop
xor al, al
mov rcx, qword [rsp + 0x2b8]
xor rcx, rsp
call fcn.1404a0a30
add rsp, 0x2c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret