Function at 0x180029580
Capabilities:
Create thread
Get disk information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x3f0]
sub rsp, 0x4f0
mov r15, r8
mov r12, rdx
xor esi, esi
mov dword [rbp + 0x420], esi
test cl, cl
jne 0x180029cc9
mov rax, qword [r8 + 0x10]
add rax, qword [r8]
mov r14, 0xffffffffffffffff
mov rbx, r14
nop dword [rax + rax]
inc rbx
cmp byte [rax + rbx], sil
jne 0x1800295d0
mov qword [rbp], rsi
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbp], 0
mov r8b, 0x30
mov rdx, rbx
lea rcx, [rbp]
call fcn.18000e960
mov rdx, qword [r15 + 0x10]
add rdx, qword [r15]
lea rcx, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae rcx, qword [rbp]
mov r8, rbx
call fcn.18008c6d0
lea rax, [rbx + 1]
add qword [r15 + 0x10], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], rsi
mov qword [rbp - 8], rsi
mov edx, 8
lea rcx, [rbp - 0x20]
call fcn.18002c0c0
mov rdi, qword [rbp - 8]
mov rcx, qword [rbp - 0x20]
mov qword [rcx + rdi], r12
add rdi, 8
mov qword [rbp - 8], rdi
mov rax, qword [rbp - 0x18]
sub rax, rcx
lea rdx, [rax + 1]
cmp rdx, rax
jae 0x18002966d
lea rax, [rdx + rcx]
mov qword [rbp - 0x18], rax
jmp 0x1800296a4
jbe 0x1800296a4
mov rax, qword [rbp - 0x10]
sub rax, qword [rbp - 0x20]
cmp rdx, rax
jbe 0x18002968b
lea rcx, [rbp - 0x20]
call fcn.18002c0c0
mov rdi, qword [rbp - 8]
jmp 0x1800296a4
mov rcx, qword [rbp - 0x18]
lea rbx, [rcx + 1]
mov r8, rbx
sub r8, rcx
xor edx, edx
call fcn.18008cd80
mov qword [rbp - 0x18], rbx
mov rax, qword [rbp - 0x20]
mov byte [rax + rdi], 0
inc rdi
mov qword [rbp - 8], rdi
lea rax, [rsp + 0x50]
mov qword [rbp + 0x438], rax
lea r15, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae r15, qword [rbp]
mov rdi, qword [rbp + 0x10]
call fcn.180088ad4
mov r12d, eax
mov rdx, rsi
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x60], rsi
mov r8d, 7
mov qword [rsp + 0x68], r8
mov dword [rbp + 0x420], 9
test rdi, rdi
je 0x180029779
cmp rdi, 0x7fffffff
ja 0x18002adf4
mov dword [rsp + 0x20], esi
xor r9d, r9d
mov r8d, edi
mov rdx, r15
mov ecx, eax
call fcn.180088afc
mov rbx, rax
shr rax, 0x20
test eax, eax
jne 0x18002adfa
xor r8d, r8d
movsxd rdx, ebx
lea rcx, [rsp + 0x50]
call fcn.18002b2b0
lea r9, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae r9, qword [rsp + 0x50]
mov dword [rsp + 0x20], ebx
mov r8d, edi
mov rdx, r15
mov ecx, r12d
call fcn.180088afc
shr rax, 0x20
test eax, eax
jne 0x18002ae02
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x50]
cmp r8, 8
cmovae rcx, rdx
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp - 0x70]
call fcn.18008903c
test eax, eax
jne 0x1800297d5
mov ecx, dword [rbp - 0x60]
bt ecx, 0xa
jae 0x1800297c7
mov eax, dword [rbp - 0x5c]
cmp eax, 0xa000000c
jne 0x1800297b9
mov ecx, 4
jmp 0x1800297f2
cmp eax, 0xa0000003
jne 0x1800297c7
mov ecx, 0xa
jmp 0x1800297f2
movzx ecx, cl
and ecx, 0x10
or ecx, 0x20
shr ecx, 4
jmp 0x1800297f2
sub eax, 2
je 0x1800297ed
sub eax, 1
je 0x1800297ed
sub eax, 0x32
je 0x1800297ed
cmp eax, 0x46
je 0x1800297ed
xor bl, bl
jmp 0x1800297f8
mov ecx, 1
cmp ecx, 1
setne bl
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x18002983a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029835
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae0a
call fcn.18008a564
test bl, bl
je 0x180029c35
lea rax, [rbp - 0x48]
mov qword [rbp + 0x438], rax
lea r15, [rbp]
cmp qword [rbp + 0x18], 0x10
cmovae r15, qword [rbp]
mov rdi, qword [rbp + 0x10]
call fcn.180088ad4
mov r12d, eax
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], si
mov dword [rbp + 0x420], 0x47
test rdi, rdi
je 0x1800298f5
cmp rdi, 0x7fffffff
ja 0x18002ae10
mov dword [rsp + 0x20], esi
xor r9d, r9d
mov r8d, edi
mov rdx, r15
mov ecx, eax
call fcn.180088afc
mov rbx, rax
shr rax, 0x20
test eax, eax
jne 0x18002ae16
xor r8d, r8d
movsxd rdx, ebx
lea rcx, [rbp - 0x48]
call fcn.18002b2b0
lea r9, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae r9, qword [rbp - 0x48]
mov dword [rsp + 0x20], ebx
mov r8d, edi
mov rdx, r15
mov ecx, r12d
call fcn.180088afc
shr rax, 0x20
test eax, eax
jne 0x18002ae1e
mov dword [rbp + 0x420], 0x37
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x70], xmm0
xor r8d, r8d
lea rdx, [rbp - 0x48]
lea rcx, [rsp + 0x70]
call fcn.18002b9c0
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x18002995a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029955
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae26
call fcn.18008a564
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x18002996d
lock inc dword [rcx + 8]
mov rcx, qword [rsp + 0x78]
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rbp + 0x20], xmm0
test rcx, rcx
je 0x180029985
lock inc dword [rcx + 8]
mov rcx, qword [rsp + 0x78]
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x78], xmm1
test rcx, rcx
je 0x1800299c5
mov eax, r14d
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1800299c5
mov rbx, qword [rsp + 0x78]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1800299c5
mov rcx, qword [rsp + 0x78]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
nop word [rax + rax]
mov rdi, qword [rbp + 0x20]
test rdi, rdi
je 0x180029c17
lea rcx, [rdi + 0x20]
mov rax, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 8
jb 0x1800299ef
mov rcx, qword [rcx]
lea rbx, [rcx + rax*2]
mov r11, rbx
mov rdx, rbx
call fcn.1800281e0
cmp rax, rbx
je 0x180029a3b
movzx ecx, word [rax]
cmp cx, 0x5c
je 0x180029a12
cmp cx, 0x2f
jne 0x180029a20
add rax, 2
jmp 0x1800299fe
lea rdx, [r11 - 2]
movzx ecx, word [rdx]
cmp cx, 0x5c
je 0x180029a3b
cmp cx, 0x2f
je 0x180029a3b
mov r11, rdx
cmp rax, rdx
jne 0x180029a20
sub rbx, r11
sar rbx, 1
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], 7
mov word [rbp + 0x50], si
mov r8, rbx
mov rdx, r11
lea rcx, [rbp + 0x50]
call fcn.18002b6f0
or dword [rbp + 0x420], 0x380
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x50]
call fcn.1800285b0
nop
movzx ebx, word [rbp + 0x40]
mov rdx, qword [rbp - 0x18]
sub rdx, qword [rbp - 0x20]
add rdx, 2
lea rcx, [rbp - 0x20]
call fcn.18002b230
mov rdx, qword [rbp - 0x20]
mov rax, qword [rbp - 8]
mov word [rdx + rax], bx
add rax, 2
mov qword [rbp - 8], rax
mov rcx, qword [rbp - 0x18]
sub rcx, rdx
mov rdx, qword [rbp + 0x40]
add rdx, rcx
lea rcx, [rbp - 0x20]
call fcn.18002b230
lea rdx, [rbp + 0x30]
cmp qword [rbp + 0x48], 0x10
cmovae rdx, qword [rbp + 0x30]
mov rbx, qword [rbp - 8]
mov rcx, qword [rbp - 0x20]
add rcx, rbx
mov r8, qword [rbp + 0x40]
call fcn.18008c6d0
add rbx, qword [rbp + 0x40]
mov qword [rbp - 8], rbx
mov rdx, qword [rbp + 0x48]
cmp rdx, 0x10
jb 0x180029b26
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029b20
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae2c
call fcn.18008a564
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 8
jb 0x180029b70
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029b61
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae32
call fcn.18008a564
nop word [rax + rax]
lea rdx, [rbp + 0x1a0]
mov rcx, qword [rdi + 0x40]
call fcn.180088f54
cmp eax, 0x12
je 0x180029bc7
test eax, eax
jne 0x18002ae38
cmp word [rbp + 0x1cc], 0x2e
jne 0x180029bb3
movzx eax, word [rbp + 0x1ce]
test ax, ax
je 0x180029b70
cmp ax, 0x2e
jne 0x180029bb3
cmp word [rbp + 0x1d0], 0
je 0x180029b70
lea rdx, [rbp + 0x1a0]
mov rcx, rdi
call fcn.180028dd0
jmp 0x1800299d4
mov rdi, rsi
mov qword [rbp + 0x20], rsi
mov rbx, qword [rbp + 0x28]
mov qword [rbp + 0x28], rsi
test rbx, rbx
je 0x1800299d4
mov eax, r14d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1800299d0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r14d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1800299d0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x1800299d0
mov rcx, qword [rbp + 0x28]
test rcx, rcx
je 0x180029c26
call fcn.1800280b0
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x180029c35
call fcn.1800280b0
xor r9d, r9d
lea r8, [rbp - 0x20]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rbp - 0x20]
test rcx, rcx
je 0x180029c86
mov rdx, qword [rbp - 0x10]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029c80
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae47
call fcn.18008a564
nop
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x18002a339
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002a73b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002adcd
jmp 0x18002a73b
cmp cl, 1
jne 0x180029eb4
lea rdx, [rsp + 0x50]
mov rcx, r15
call fcn.180027d80
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.18002bb40
nop
mov r8, qword [rsp + 0x68]
cmp r8, 0x10
jb 0x180029d0b
inc r8
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x50]
call fcn.18000cb90
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x50], 0
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x48]
call fcn.18005b270
nop
cmp byte [rbp - 0x30], 0
je 0x180029e9b
mov rdx, qword [rbp - 0x40]
sub rdx, qword [rbp - 0x48]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
je 0x180029d72
movabs rax, 0x7fffffffffffffff
cmp rdx, rax
ja 0x18002ae4d
lea rcx, [rsp + 0x30]
call fcn.18002b640
nop
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rsp + 0x30]
add rdx, 8
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], 1
inc rcx
mov qword [rsp + 0x48], rcx
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x30]
call fcn.180029420
mov rdi, qword [rbp - 0x40]
sub rdi, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x38]
sub rdx, qword [rsp + 0x30]
add rdx, 4
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov dword [rcx + rax], edi
add rax, 4
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
add rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
add rcx, rbx
mov r8, rdi
mov rdx, qword [rbp - 0x48]
call fcn.18008c6d0
add rbx, rdi
mov qword [rsp + 0x48], rbx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x180029e9b
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x180029e95
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae53
call fcn.18008a564
nop
lea rcx, [rbp - 0x48]
call fcn.18002b0c0
nop
lea rcx, [rsp + 0x70]
call fcn.1800287c0
jmp 0x18002a339
cmp cl, 2
jne 0x18002a0d9
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rsi
mov edx, 8
lea rcx, [rsp + 0x50]
call fcn.18002b230
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x68], rax
mov rdx, qword [rsp + 0x58]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x50]
call fcn.18002b230
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x50]
mov byte [rax + rcx], 2
inc rcx
mov qword [rsp + 0x68], rcx
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0xa0]
call fcn.18008cd80
lea rdx, [rbp + 0xa0]
mov ecx, 0x100
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsA]
xorps xmm0, xmm0
test eax, eax
jg 0x180029f5d
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rsi
jmp 0x18002a060
cdqe
cmp rax, 0x100
jb 0x180029f76
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rsi
jmp 0x18002a060
movdqu xmmword [rsp + 0x30], xmm0
mov r14, rsi
mov qword [rsp + 0x40], rsi
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x70], rax
cmp byte [rbp + 0xa0], 0
je 0x18002a049
mov rdi, qword [rsp + 0x38]
nop dword [rax]
nop word [rax + rax]
mov rbx, rax
mov qword [rbp + 0x438], rax
cmp byte [rax], 0
je 0x180029fcf
nop
inc rbx
cmp byte [rbx], 0
jne 0x180029fc0
mov qword [rbp + 0x438], rbx
cmp rdi, r14
je 0x18002a007
mov qword [rdi], rsi
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], 0
cmp rax, rbx
je 0x180029ffc
mov r8, rbx
sub r8, rax
mov rdx, rax
mov rcx, rdi
call fcn.18000c9d0
add rdi, 0x20
mov qword [rsp + 0x38], rdi
jmp 0x18002a031
lea r9, [rbp + 0x438]
lea r8, [rsp + 0x70]
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.18005b7d0
mov r14, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rbp + 0x438]
lea rax, [rbx + 1]
mov qword [rsp + 0x70], rax
cmp byte [rax], 0
jne 0x180029fb0
movdqu xmm0, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x70], xmm0
movsd xmm0, qword [rsp + 0x40]
movsd qword [rbp - 0x80], xmm0
mov rsi, qword [rbp - 0x80]
nop dword [rax]
mov r14, qword [rsp + 0x70]
mov rbx, r14
mov rdi, qword [rsp + 0x78]
cmp r14, rdi
je 0x18002a088
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.180029500
add rbx, 0x20
cmp rbx, rdi
jne 0x18002a072
test r14, r14
je 0x18002a0aa
mov rdx, rdi
mov rcx, r14
call fcn.18002bf60
sub rsi, r14
sar rsi, 5
mov r8, rsi
mov rdx, r14
call fcn.18002b830
xor r9d, r9d
lea r8, [rsp + 0x50]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x18002a339
mov rdx, qword [rsp + 0x60]
jmp 0x18002a713
cmp cl, 3
jne 0x18002a216
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], rsi
mov edx, 8
lea rcx, [rsp + 0x70]
call fcn.18002b230
mov rcx, qword [rsp + 0x70]
mov rax, qword [rbp - 0x78]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rbp - 0x78], rax
mov rdx, qword [rsp + 0x78]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x70]
call fcn.18002b230
mov rsi, qword [rsp + 0x70]
mov rax, qword [rbp - 0x78]
mov byte [rsi + rax], 3
inc rax
mov qword [rbp - 0x78], rax
lea rcx, [rsp + 0x30]
call fcn.18005acd0
nop
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
cmp rdi, r14
je 0x18002a1de
nop
mov rdx, rdi
lea rcx, [rbp - 0x70]
call fcn.18000e770
nop
cmp byte [rbp - 0x50], 0
je 0x18002a1cc
mov rdx, qword [rsp + 0x78]
sub rdx, rsi
mov rax, qword [rbp - 0x60]
inc rax
add rdx, rax
lea rcx, [rsp + 0x70]
call fcn.18002b230
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0x10
cmovae rdx, qword [rbp - 0x70]
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rbp - 0x78]
lea rcx, [rsi + rbx]
mov r8, qword [rbp - 0x60]
call fcn.18008c6d0
mov rcx, qword [rbp - 0x60]
add rcx, rsi
mov byte [rcx + rbx], 0
mov rax, qword [rbp - 0x60]
inc rax
add rbx, rax
mov qword [rbp - 0x78], rbx
lea rcx, [rbp - 0x70]
call fcn.18000e8c0
add rdi, 0x20
cmp rdi, r14
jne 0x18002a160
lea rcx, [rsp + 0x30]
call fcn.18002b1b0
xor r9d, r9d
lea r8, [rsp + 0x70]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x18002a339
mov rdx, qword [rbp - 0x80]
jmp 0x18002a713
cmp cl, 7
jne 0x18002a4a0
lea rdx, [rbp - 0x70]
mov rcx, r15
call fcn.180027d80
nop
mov rcx, qword [r15 + 0x10]
mov rdx, qword [r15]
lea rax, [rcx + 2]
mov qword [r15 + 0x10], rax
movzx ebx, word [rdx + rcx]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rdi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov byte [rdi + rax], 7
inc rax
mov qword [rsp + 0x48], rax
cmp qword [0x18011c3a0], 0
je 0x18002a355
mov rdx, qword [rsp + 0x38]
sub rdx, rdi
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], 0
inc rcx
mov qword [rsp + 0x48], rcx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18002a330
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002a32a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002add3
call fcn.18008a564
nop
lea rcx, [rbp - 0x70]
call fcn.18000c740
lea r11, [rsp + 0x4f0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov ecx, 0x58
call fcn.1800949d4
mov byte [rax + 1], 0
mov ecx, 0x6979
mov word [rax + 0x32], cx
mov dword [rax + 0x34], esi
xorps xmm0, xmm0
movups xmmword [rax + 0x38], xmm0
mov byte [rax + 0x48], 0
lea rcx, [0x18000f500]
mov qword [rax + 0x50], rcx
mov qword [0x18011c3a0], rax
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x48]
call fcn.18000c7e0
mov word [rbp - 0x28], bx
mov ecx, 0x28
call fcn.18008a528
mov rbx, rax
mov qword [rbp + 0x438], rax
lea rdx, [rbp - 0x48]
mov rcx, rax
call fcn.18000c7e0
movzx ecx, word [rbp - 0x28]
mov word [rbx + 0x20], cx
mov qword [rbp + 0x438], rbx
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
mov r9, rbx
lea r8, [0x18002c4d0]
xor edx, edx
xor ecx, ecx
call fcn.180096be4
mov qword [rsp + 0x70], rax
test rax, rax
je 0x18002ae5f
lea rcx, [rsp + 0x70]
call fcn.180028120
nop
cmp dword [rsp + 0x78], 0
jne 0x18002ae59
lea rcx, [rbp - 0x48]
call fcn.18002b120
mov rdx, qword [rsp + 0x38]
sub rdx, rdi
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], 1
inc rcx
mov qword [rsp + 0x48], rcx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18002a330
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002a32a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002add3
jmp 0x18002a32a
cmp cl, 8
jne 0x18002a5a0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rbx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov byte [rbx + rax], 8
inc rax
mov qword [rsp + 0x48], rax
mov rax, qword [0x18011c3a0]
test rax, rax
jne 0x18002a560
mov rdx, qword [rsp + 0x38]
sub rdx, rbx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], 0
inc rcx
mov qword [rsp + 0x48], rcx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
jmp 0x18002a700
mov ecx, dword [rax + 0x34]
call fcn.1800a248c
mov rcx, qword [0x18011c3a0]
call fcn.180091068
mov qword [0x18011c3a0], rsi
mov rdx, qword [rsp + 0x38]
sub rdx, rbx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], 1
jmp 0x18002a53c
cmp cl, 9
jne 0x18002a745
mov rcx, qword [r8 + 0x10]
mov rdx, qword [r8]
lea rax, [rcx + 1]
mov qword [r8 + 0x10], rax
movzx ebx, byte [rdx + rcx]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rdi, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov byte [rdi + rax], 9
inc rax
mov qword [rsp + 0x48], rax
test bl, bl
je 0x18002a65b
call fcn.18003a060
movzx ebx, al
mov rdx, qword [rsp + 0x38]
sub rdx, rdi
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
mov byte [rcx + rdx], bl
inc rdx
mov qword [rsp + 0x48], rdx
jmp 0x18002a6e9
cmp byte [0x18011c398], 0
jne 0x18002a668
xor bl, bl
jmp 0x18002a6bf
mov byte [0x18011c381], 1
cmp dword [0x18011c390], 0
je 0x18002ae6e
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [0x18011c390], eax
je 0x18002ae79
movups xmm0, xmmword [0x18011c388]
movaps xmmword [rsp + 0x70], xmm0
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.180089678
test eax, eax
jne 0x18002ae84
xorps xmm0, xmm0
movups xmmword [0x18011c388], xmm0
mov byte [0x18011c398], al
mov bl, 1
mov rdx, qword [rsp + 0x38]
sub rdx, rdi
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], bl
inc rcx
mov qword [rsp + 0x48], rcx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18002a339
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002a73b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002add9
call fcn.18008a564
jmp 0x18002a339
cmp cl, 0xc
jne 0x18002a84a
mov rdi, qword [r8 + 0x10]
add rdi, qword [r8]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov r8, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov qword [r8 + rax], r12
add rax, 8
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, r8
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rbx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov byte [rbx + rax], reloc.WS2_32.dll_inet_ntoa
inc rax
mov qword [rsp + 0x48], rax
mov rcx, rdi
call fcn.18005a8d0
movzx edi, al
mov rdx, qword [rsp + 0x38]
sub rdx, rbx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
mov byte [rcx + rdx], dil
inc rdx
mov qword [rsp + 0x48], rdx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18002a339
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002a73b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002add9
jmp 0x18002a73b
cmp cl, 0xf
jne 0x18002a8b8
lea rdx, [0x18011c000]
mov r14, 0xffffffffffffffff
nop dword [rax]
inc r14
cmp word [rdx + r14*2], si
jne 0x18002a860
mov qword [rbp - 0x48], rsi
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], si
mov r8, r14
lea rcx, [rbp - 0x48]
call fcn.18002b6f0
nop
lea rcx, [rbp - 0x48]
call fcn.18003ad00
nop
mov r8, qword [rbp - 0x30]
cmp r8, 8
jb 0x18002a339
inc r8
mov rdx, qword [rbp - 0x48]
lea rcx, [rbp - 0x48]
call fcn.18002b980
jmp 0x18002a339
cmp cl, 0x11
jne 0x18002ab84
lea rdx, [rsp + 0x50]
mov rcx, r15
call fcn.180027d80
nop
mov rcx, qword [r15 + 0x10]
mov rdx, qword [r15]
lea rax, [rcx + 1]
mov qword [r15 + 0x10], rax
xor bl, bl
movzx eax, byte [rdx + rcx]
cmp eax, 0xd
ja case.0x18002a8fe.5
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x2ae9c]
add rcx, rdx
jmp rcx
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.18003f700
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.180054c00
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.180052380
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.180051cc0
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.1800563c0
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.180055890
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.180050020
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.18004dd60
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.18004eef0
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.18004f360
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.18004f9c0
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.18004d0e0
movzx ebx, al
jmp 0x18002aa8f
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x70]
call fcn.18002bb40
nop
lea rcx, [rbp - 0x70]
call fcn.180050df0
movzx ebx, al
lea rcx, [rbp - 0x70]
call fcn.1800287c0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov byte [rcx + rax], select
inc rax
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], bl
inc rcx
mov qword [rsp + 0x48], rcx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18002ab7a
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002ab74
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae8f
call fcn.18008a564
nop
lea rcx, [rsp + 0x50]
jmp 0x18002a334
cmp cl, 0x13
jne 0x18002acad
lea rdx, [rbp - 0x70]
mov rcx, r15
call fcn.180027d80
nop
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x48]
call fcn.18002bb40
lea rcx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rcx, qword [rbp - 0x48]
call fcn.180089330
mov rbx, rax
lea rcx, [rbp - 0x48]
call fcn.1800287c0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov edx, 8
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
mov byte [rcx + rax], reloc.WS2_32.dll_send
inc rax
mov qword [rsp + 0x48], rax
mov rdx, qword [rsp + 0x38]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x30]
call fcn.18002b230
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x30]
mov byte [rax + rcx], bl
inc rcx
mov qword [rsp + 0x48], rcx
xor r9d, r9d
lea r8, [rsp + 0x30]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x18002aca8
mov rdx, qword [rsp + 0x40]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002aca2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002ae95
call fcn.18008a564
nop
jmp 0x18002a330
cmp cl, 0x15
jne 0x18002a339
mov ecx, 1
call fcn.18008a528
mov qword [rbp + 0x438], rax
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], esi
mov r9, rax
lea r8, [0x18002c580]
xor edx, edx
xor ecx, ecx
call fcn.180096be4
mov qword [rsp + 0x70], rax
test rax, rax
je 0x18002ade5
lea rcx, [rsp + 0x70]
call fcn.180028120
nop
cmp dword [rsp + 0x78], 0
jne 0x18002adc7
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rsi
mov edx, 8
lea rcx, [rsp + 0x50]
call fcn.18002b230
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
mov qword [rcx + rax], r12
add rax, 8
mov qword [rsp + 0x68], rax
mov rdx, qword [rsp + 0x58]
sub rdx, rcx
inc rdx
lea rcx, [rsp + 0x50]
call fcn.18002b230
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x50]
mov byte [rax + rcx], reloc.WS2_32.dll_setsockopt
inc rcx
mov qword [rsp + 0x68], rcx
xor r9d, r9d
lea r8, [rsp + 0x50]
mov dl, setsockopt
lea rcx, [0x180118fd0]
call fcn.180059d90
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x18002a339
mov rdx, qword [rsp + 0x60]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x18002a73b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18002addf
jmp 0x18002a73b
call fcn.180096cc4
int3
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
int3
call fcn.180090f98
nop
mov dword [rsp + 0x78], esi
mov ecx, 6
call fcn.180089558
nop
call fcn.180027ee0
int3
mov ecx, eax
call fcn.180028190
int3
mov ecx, eax
call fcn.180028190
nop
call fcn.180090f98
nop
call fcn.180027ee0
int3
mov ecx, eax
call fcn.180028190
int3
mov ecx, eax
call fcn.180028190
nop
call fcn.180090f98
nop
call fcn.180090f98
nop
call fcn.180090f98
int3
mov edx, eax
lea rcx, str.directory_iterator::operator
call fcn.180028b60
nop
call fcn.180090f98
nop
call fcn.180016ab0
nop
call fcn.180090f98
nop
call fcn.180096cc4
nop
mov dword [rsp + 0x78], esi
mov ecx, 6
call fcn.180089558
nop
mov ecx, 1
call fcn.180089558
int3
mov ecx, 5
call fcn.180089558
int3
mov ecx, 2
call fcn.180089558
nop
call fcn.180090f98
nop
call fcn.180090f98
int3