Function at 0x180002990
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor r15d, r15d
lea eax, [rdx - 1]
mov qword [rsp + 0xb8], r15
mov rsi, r8
mov dword [rsp + 0xa8], r15d
mov ebp, edx
mov r13, rcx
mov edi, r15d
mov r12d, r15d
mov r14d, r15d
mov ebx, r15d
cmp eax, 0x2c
ja case.0x1800029e9.5
lea r8, [0x180000000]
mov ecx, dword [r8 + rax*4 + 0x3418]
add rcx, r8
jmp rcx
mov r12, qword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, r12
call fcn.180016e80
jmp 0x180002b4a
test edi, edi
jne 0x180002c6e
mov ecx, 2
call fcn.180004a70
mov edi, eax
add eax, 0xffffff8e
cmp eax, 1
ja 0x180002c66
mov edi, r15d
mov ecx, ebp
call fcn.1800025c0
test r12, r12
je 0x180003354
mov qword [rsp + 0x40], r12
lea r8, str..._src_api.c
mov qword [rsp + 0x38], rax
lea rdx, str.__s:_d___s:___p___d___s____s__..._____0__n
mov dword [rsp + 0x30], ebp
lea rax, str.__bdnimbus_set_optionv
mov qword [rsp + 0x28], r13
mov r9d, 0x328
mov ecx, 2
mov qword [rsp + 0x20], rax
call fcn.18002b690
jmp 0x1800033fd
mov rbx, qword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, rbx
call fcn.180016f50
lea rcx, [0x180332b80]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp edi, 0x11
jne 0x180002a08
mov edi, r15d
jmp 0x180002beb
mov r12, qword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, r12
call fcn.180017020
jmp 0x180002b4a
mov r12, qword [rsi]
test r13, r13
je 0x180003302
test r12, r12
je 0x180003302
mov rdx, r12
mov rcx, r13
call fcn.180018cf0
jmp 0x180002c64
mov r12, qword [rsi]
test r13, r13
je 0x180003302
mov r9, qword [rsi + 0x10]
mov rdx, r12
mov r8, qword [rsi + 8]
mov rcx, r13
call fcn.180018f60
jmp 0x180002c64
mov r12, qword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, r12
call fcn.1800170e0
jmp 0x180002b4a
mov r12, qword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, r12
call fcn.180017260
lea rcx, [0x180332b80]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp edi, 0x11
jne 0x180002a08
jmp 0x180002a28
mov rbx, qword [rsi]
lea rcx, [0x180332b80]
mov qword [rsp + 0xb8], rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, rbx
call fcn.180017300
lea rcx, [0x180332b80]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp edi, 0x11
jne 0x180002ba6
mov edi, r15d
mov ebx, r15d
jmp 0x1800030e9
mov ebx, 1
test edi, edi
je 0x1800030e9
mov ebx, r15d
jmp 0x1800030e9
mov r14d, dword [rsi]
test r13, r13
jne 0x18000302c
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test r14d, r14d
setne byte [0x180332cea]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, ebp
call fcn.1800025c0
mov dword [rsp + 0x40], r14d
lea r8, str..._src_api.c
mov qword [rsp + 0x38], rax
lea rdx, str.__s:_d___s:___p___d___s____d_..._____0__n
mov dword [rsp + 0x30], ebp
lea rax, str.__bdnimbus_set_optionv
mov qword [rsp + 0x28], r13
mov r9d, 0x32c
mov ecx, 2
mov qword [rsp + 0x20], rax
call fcn.18002b690
jmp 0x1800033fd
mov edi, 0x26
jmp 0x1800033a9
mov rbx, qword [rsi]
lea rcx, [0x180332d48]
mov r8, qword [rsi + 8]
mov rdx, rbx
mov qword [rsp + 0xb8], rbx
xor r9d, r9d
mov qword [rsp + 0x20], r15
call fcn.18000d290
mov edi, eax
test edi, edi
je 0x180002a2b
mov ecx, ebp
call fcn.1800025c0
mov rbx, rax
test r12, r12
je 0x18000331c
mov ecx, edi
call fcn.18000b950
mov qword [rsp + 0x50], rax
lea rdx, str.__s:_d__ERR___s:___p___d___s____s__...______d__s_n
mov dword [rsp + 0x48], edi
mov r9d, 0x31d
mov qword [rsp + 0x40], r12
jmp 0x1800033d5
mov rbx, qword [rsi]
lea rcx, [0x180332d48]
mov rdx, rbx
mov qword [rsp + 0xb8], rbx
call fcn.18000d500
jmp 0x180002c64
mov rbx, qword [rsi]
lea rcx, [0x180332d58]
mov r8, qword [rsi + 8]
mov rdx, rbx
mov qword [rsp + 0xb8], rbx
xor r9d, r9d
mov qword [rsp + 0x20], r15
jmp 0x180002c5f
mov rbx, qword [rsi]
lea rcx, [0x180332d58]
mov rdx, rbx
mov qword [rsp + 0xb8], rbx
call fcn.18000d500
jmp 0x180002c64
mov r12, qword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, r12
call fcn.1800170e0
mov dword [rsp + 0x30], eax
lea r8, str..._src_api.c
mov edi, eax
mov qword [rsp + 0x28], r12
lea rax, str.__bdnimbus_set_optionv
mov r9d, 0x222
lea rdx, str.__s:_d___s:_set_proxy_name:__s___rc___d___n
mov qword [rsp + 0x20], rax
mov ecx, 2
call fcn.18002b690
cmp edi, 0x11
jne 0x180002d68
mov dword [rsp + 0xa8], 1
jmp 0x180002d70
test edi, edi
jne 0x180002e22
mov rbx, qword [rsi + 8]
mov rcx, rbx
call fcn.180017260
mov dword [rsp + 0x30], eax
lea r8, str..._src_api.c
mov edi, eax
mov qword [rsp + 0x28], rbx
lea rax, str.__bdnimbus_set_optionv
mov r9d, 0x227
lea rdx, str.__s:_d___s:_set_proxy_user:__s___rc___d___n
mov qword [rsp + 0x20], rax
mov ecx, 2
call fcn.18002b690
cmp edi, 0x11
jne 0x180002dbf
inc dword [rsp + 0xa8]
jmp 0x180002dc3
test edi, edi
jne 0x180002e22
mov rbx, qword [rsi + 0x10]
mov rcx, rbx
call fcn.180017300
mov dword [rsp + 0x30], eax
lea r8, str..._src_api.c
mov edi, eax
mov qword [rsp + 0x28], rbx
lea rax, str.__bdnimbus_set_optionv
mov r9d, 0x22c
lea rdx, str.__s:_d___s:_set_proxy_pass:__p___rc___d___n
mov qword [rsp + 0x20], rax
mov ecx, 2
call fcn.18002b690
cmp edi, 0x11
jne 0x180002e22
inc dword [rsp + 0xa8]
lea rcx, [0x180332b80]
mov edi, r15d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180002e37
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x180002c6e
cmp dword [rsp + 0xa8], 3
je 0x180002a2b
jmp case.0x1800029e9.26
mov r12, qword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x180332c20]
cmp eax, 0x4e3e
je 0x180002e71
add eax, 0xffffb1bd
cmp eax, 1
ja 0x180002e76
mov ebx, 1
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r12
call fcn.18000cd90
cmp eax, 0x11
mov edi, eax
mov eax, r15d
cmove edi, r15d
test edi, edi
cmove eax, ebx
mov ebx, eax
jmp 0x1800030e9
mov r14d, dword [rsi]
test r13, r13
je case.0x1800029e9.5
mov r8d, r14d
mov edx, reloc.WS2_32.dll_recv
mov rcx, r13
call fcn.180002930
jmp 0x180002beb
mov r15, qword [rsi]
test r13, r13
je 0x180002efe
lea rcx, [r13 + 0x10]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov qword [r13 + 0xb0], r15
lea rcx, [r13 + 0x10]
mov rax, qword [rsi + 8]
mov qword [r13 + 0xb8], rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, ebp
call fcn.1800025c0
jmp 0x18000335c
mov ecx, ebp
mov edi, reloc.WS2_32.dll_shutdown
call fcn.1800025c0
mov rbx, rax
jmp 0x180003324
mov r14d, dword [rsi]
test r13, r13
je case.0x1800029e9.5
lea rcx, [r13 + 0x10]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test r14d, r14d
lea rcx, [r13 + 0x10]
mov eax, reloc.WS2_32.dll_sendto
cmovne eax, r14d
imul eax, eax, 0x3e8
mov dword [r13 + 0xa0], eax
jmp 0x180002be5
mov r14d, dword [rsi]
test r13, r13
jne case.0x1800029e9.5
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x180332bc0], ebx
jne 0x180002f87
test r14d, r14d
lea rcx, [0x180332b80]
setne byte [0x180332cec]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180002c66
lea rcx, [0x180332b80]
mov edi, reloc.WS2_32.dll_recv
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180002c66
mov r12, qword [rsi]
mov rcx, r12
call fcn.18001b8b0
lea rcx, [0x180332b80]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test edi, edi
jne 0x1800030dc
mov eax, ebx
mov ebx, 1
cmp dword [0x180332c20], eax
cmovne eax, ebx
mov ebx, eax
jmp 0x1800030dc
mov r12, qword [rsi]
mov rcx, r12
call fcn.18001ba20
jmp 0x180002fa9
mov r14d, dword [rsi]
mov ecx, r14d
call fcn.18001bc30
jmp 0x180002c64
mov r14d, dword [rsi]
mov ecx, r14d
call fcn.18001bc90
jmp 0x180002c64
mov r14d, dword [rsi]
test r13, r13
je case.0x1800029e9.5
mov edx, r14d
mov rcx, r13
call fcn.180018c50
jmp 0x180002beb
mov r14d, dword [rsi]
test r13, r13
je case.0x1800029e9.5
mov edx, r14d
mov rcx, r13
call fcn.180018be0
jmp 0x180002beb
mov r14d, dword [rsi]
test r13, r13
je case.0x1800029e9.5
mov r8d, r14d
mov edx, 0x40
mov rcx, r13
call fcn.180002930
jmp 0x180002beb
mov r14d, dword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test r14d, r14d
setne r15b
mov dword [0x180332cf4], r15d
jmp 0x180002bde
mov r14d, dword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, r15d
lea rcx, [0x180332b80]
test r14d, r14d
setne al
mov dword [0x180332cfc], eax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x1800029e9.26
mov r14d, dword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [0x180332ced], bl
je 0x1800030d2
test r14d, r14d
jne 0x1800030d5
lea ebx, [r14 + 1]
test r14d, r14d
setne byte [0x180332ced]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
je 0x180002c66
jmp case.0x1800029e9.26
mov r14d, dword [rsi]
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test r14d, r14d
setne r15b
mov dword [0x180332d04], r15d
jmp 0x180002bde
mov rbx, qword [rsi]
lea rcx, [0x180332b80]
mov qword [rsp + 0xb8], rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test dword [0x180332c90], 0x800
jne 0x180003213
movups xmm0, xmmword [rbx]
movups xmmword [0x180332d88], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [0x180332d98], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [0x180332da8], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [0x180332db8], xmm1
movsd xmm0, qword [rbx + 0x40]
movsd qword [0x180332dc8], xmm0
call fcn.180035f90
lea r9, [0x180332d88]
mov qword [rsp + 0x28], r15
lea r8, [0x1800333c0]
mov dword [rsp + 0x20], 0x10000
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x180332dd0], rax
test rax, rax
je 0x1800031fc
mov qword [rsp + 0x28], r15
lea r9, [0x180332d88]
lea r8, [0x180033650]
mov dword [rsp + 0x20], 0x10000
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [0x180332dd8], rax
test rax, rax
je 0x1800031fc
or dword [0x180332c90], 0x800
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180002c66
lea rcx, [0x180332b80]
mov edi, 0x4e38
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180002c66
lea rcx, [0x180332b80]
mov edi, reloc.WS2_32.dll_shutdown
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180002c66
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test dword [0x180332c90], 0x800
je 0x180003213
lea rbx, str.__bdnimbus_set_optionv
mov r9d, 0x2e9
lea r8, str..._src_api.c
mov qword [rsp + 0x20], rbx
lea rdx, str.__s:_d___s:_Waiting_for_RPC_thread_n
mov ecx, 2
call fcn.18002b690
mov rcx, qword [0x180332dd0]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x180332dd8]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x180332dd0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [0x180332dd8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r9d, 0x2ee
mov qword [rsp + 0x20], rbx
lea r8, str..._src_api.c
mov ecx, 2
lea rdx, str.__s:_d___s:_RPC_thread_joinded_n
call fcn.18002b690
and dword [0x180332c90], 0xfffff7ff
call fcn.180036310
lea rcx, [0x180332b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180002c66
mov r12, qword [rsi]
mov rcx, r12
call fcn.18002b400
test eax, eax
je 0x180002a2b
mov edi, reloc.WS2_32.dll_shutdown
jmp 0x180002c6e
mov r14d, dword [rsi]
mov ecx, r14d
call fcn.18002b5a0
jmp 0x180002beb
mov r15, qword [rsp + 0xb8]
test r15, r15
je 0x1800033b3
mov ecx, edi
call fcn.18000b950
mov qword [rsp + 0x50], rax
lea rdx, str.__s:_d__ERR___s:___p___d___s____p__...______d__s_n
mov dword [rsp + 0x48], edi
mov r9d, 0x320
mov qword [rsp + 0x40], r15
jmp 0x1800033d5
mov r15, qword [rsp + 0xb8]
test r15, r15
je 0x180002bf2
mov qword [rsp + 0x40], r15
lea r8, str..._src_api.c
mov qword [rsp + 0x38], rax
lea rdx, str.__s:_d___s:___p___d___s____p__..._____0__n
mov dword [rsp + 0x30], ebp
lea rax, str.__bdnimbus_set_optionv
mov qword [rsp + 0x28], r13
mov r9d, 0x32a
mov ecx, 2
mov qword [rsp + 0x20], rax
call fcn.18002b690
jmp 0x1800033fd
mov edi, reloc.WS2_32.dll_shutdown
mov ecx, ebp
call fcn.1800025c0
mov rbx, rax
mov ecx, edi
call fcn.18000b950
mov qword [rsp + 0x50], rax
lea rdx, str.__s:_d__ERR___s:___p___d___s____d_...______d__s_n
mov dword [rsp + 0x48], edi
mov r9d, 0x323
mov dword [rsp + 0x40], r14d
mov qword [rsp + 0x38], rbx
lea rax, str.__bdnimbus_set_optionv
mov dword [rsp + 0x30], ebp
lea r8, str..._src_api.c
mov qword [rsp + 0x28], r13
xor ecx, ecx
mov qword [rsp + 0x20], rax
call fcn.18002b690
mov rbx, qword [rsp + 0xa0]
mov eax, edi
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret