Function at 0x18025bbf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0xa8]
sub rsp, 0x1a8
mov rbx, rcx
xor edi, edi
mov rcx, qword [rcx]
mov rax, rdx
mov edx, 1
mov qword [rbp + 0x58], rdi
mov dword [rbp - 0x50], edx
mov rsi, qword [rbx + 0x10]
mov dword [rsp + 0x40], edx
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x38], rsi
test rsi, rsi
jne 0x18025bc6f
cmp qword [rbx + 0xa0], rdi
jne 0x18025bc50
test byte [rcx + 0x5c], 8
jne 0x18025bc50
mov byte [rbx + 0x23], dl
mov rcx, rbx
call fcn.1802666c0
mov rcx, qword [rbp - 0x60]
mov rsi, rax
mov qword [rbp - 0x38], rax
mov edx, 1
mov rax, qword [rbp + 0xd8]
test rax, rax
je 0x18025e792
cmp byte [rcx + 0x61], dil
jne 0x18025e792
cmp dword [rbx + 0x30], edi
jne 0x18025e792
xor r9d, r9d
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 0x15]
call fcn.180233150
test eax, eax
je 0x18025bcb7
mov eax, 1
add rsp, 0x1a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rbp + 0xe0]
cmp byte [rax], 6
mov rax, qword [rbp + 0xd8]
ja 0x18025bcf2
mov rdx, qword [rax + 0x48]
test rdx, rdx
je 0x18025bce3
mov rcx, qword [rbp - 0x60]
call fcn.1802145f0
mov rax, qword [rbp + 0xd8]
and dword [rax + 4], 0xfffffffe
or dword [rax + 4], 0x400000
mov qword [rax + 0x48], rdi
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call fcn.18025f150
lea r9, [0x180413740]
cmp dword [rbx + 0x30], edi
jne 0x18025e788
mov rax, qword [rbp - 0x60]
cmp byte [rax + 0x61], dil
jne 0x18025e788
mov rax, qword [rbp + 0xd8]
test dword [rax + 4], 0x800000
je 0x18025be33
mov rdx, qword [rax + 0x28]
mov ecx, 1
mov qword [rsp + 0x60], rdx
mov dword [rbp + 0xe8], ecx
mov r8d, dword [rdx]
mov dword [rsp + 0x44], r8d
cmp r8d, ecx
jle 0x18025be33
mov r8, qword [rdx + 0x28]
lea r9, [rdx + 0x20]
mov eax, reloc.WS2_32.dll_WSASetLastError
mov qword [rbp - 0x48], r8
mov qword [rbp - 0x40], r9
mov qword [rbp - 0x78], rax
cmp r8, qword [rdx + rax + 0x28]
jne 0x18025bd9a
mov rdx, qword [rdx + rax + 0x20]
mov rcx, qword [r9]
call fcn.1801ec270
mov r8, qword [rbp - 0x48]
test eax, eax
je 0x18025bdb7
mov rax, qword [rbp - 0x78]
mov ecx, dword [rbp + 0xe8]
mov r9, qword [rbp - 0x40]
inc ecx
add rax, 0x70
mov dword [rbp + 0xe8], ecx
mov qword [rbp - 0x78], rax
cmp ecx, dword [rsp + 0x44]
jge 0x18025be2c
mov rdx, qword [rsp + 0x60]
jmp 0x18025bd70
mov rax, qword [rbp - 0x40]
lea rdx, [0x180071a60]
mov rcx, rbx
cmp qword [rax], rdi
cmovne r8, rax
mov r8, qword [r8]
call fcn.18023f590
mov r8d, dword [rsp + 0x40]
lea r9, [0x180413740]
mov ecx, dword [rbx + 0x128]
test ecx, ecx
je 0x18025be17
mov rdx, qword [rbx + 0x10]
jns 0x18025bdf8
mov ecx, dword [rdx + 0x90]
dec ecx
mov rax, qword [rdx]
cmp byte [rax + 0x61], 0
jne 0x18025be13
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea r9, [rax + rcx*8]
mov edi, dword [r9 + 8]
mov dword [rbx + 0x128], edi
mov eax, r8d
add rsp, 0x1a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rbp + 0xd8]
mov rcx, qword [rbp + 0xe0]
cmp byte [rcx], 9
jne 0x18025be4a
mov rdx, rax
mov rcx, rbx
call fcn.1802191a0
mov rdx, qword [rbp + 0xd8]
mov rcx, rbx
call fcn.18027d820
mov dword [rsp + 0x40], eax
mov r8d, eax
test eax, eax
jne 0x18025bdd9
mov r10, qword [rbp + 0xd8]
mov edx, edi
mov dword [rbp + 0xe8], edx
mov eax, dword [r10 + 4]
mov r11, qword [r10 + 0x28]
shr eax, 3
and eax, 1
mov qword [rsp + 0x78], r11
mov dword [rbp - 0x80], eax
xor eax, eax
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
mov rax, qword [r10 + 0x48]
mov qword [rbp - 0x68], rax
mov qword [rbp + 0x20], rax
cmp qword [r10 + 0x50], rdx
jne 0x18025c014
mov rax, rdi
mov qword [rsp + 0x68], rax
cmp edx, dword [r11]
jge 0x18025c014
imul rax, rax, 0x70
add rax, 8
add rax, r11
mov qword [rsp + 0x60], rax
test byte [rax + 0x3c], 8
mov r8, qword [rax + 0x28]
mov r9, qword [rax + 0x20]
mov qword [rbp - 0x40], r8
mov qword [rbp - 0x48], r9
je 0x18025bf3e
mov edx, dword [rax + 0x44]
mov rcx, qword [r10 + 0x30]
call fcn.180244640
mov r10, qword [rbp + 0xd8]
test eax, eax
je 0x18025bf2b
mov rax, qword [rbp - 0x60]
mov ecx, 0x2000
test word [rax + 0x5c], cx
jne 0x18025bf2b
mov rax, qword [rsp + 0x60]
and byte [rax + 0x3c], 0xd7
mov rcx, qword [r10 + 0x30]
mov edx, dword [rax + 0x44]
call fcn.180280900
mov edx, dword [rbp + 0xe8]
mov r8, qword [rbp - 0x40]
mov r9, qword [rbp - 0x48]
mov r11, qword [rsp + 0x78]
test r8, r8
je 0x18025bff5
mov rax, qword [r8 + 0x20]
movsx ecx, word [r9 + 0x46]
cmp ecx, dword [rax]
jne 0x18025c053
test byte [r8 + 4], 8
jne 0x18025bff5
cmp qword [r8 + 0x48], rdi
je 0x18025bf87
test edx, edx
jne 0x18025bf87
test dword [r10 + 4], 0x40000
je 0x18025bf87
cmp dword [r11], 1
je 0x18025bff5
test byte [r11 + 0xb4], 0xa
jne 0x18025bff5
mov r9d, dword [rbp - 0x80]
mov r8d, edx
mov rdx, r10
mov rcx, rbx
call fcn.180217ff0
test eax, eax
je 0x18025bfb9
cmp dword [rbx + 0x30], edi
jne 0x18025bdd4
mov dword [rbp + 0xe8], 0xffffffff
mov qword [rsp + 0x68], 0xffffffffffffffff
mov r10, qword [rbp + 0xd8]
mov rax, qword [rbp - 0x60]
mov r11, qword [r10 + 0x28]
mov qword [rsp + 0x78], r11
cmp byte [rax + 0x61], dil
jne 0x18025bdd4
mov rax, qword [rbp + 0xe0]
mov edx, dword [rbp + 0xe8]
cmp byte [rax], 8
jbe 0x18025bff5
mov rcx, qword [r10 + 0x48]
mov qword [rbp - 0x68], rcx
mov qword [rbp + 0x20], rcx
mov rax, qword [rsp + 0x68]
inc edx
inc rax
mov dword [rbp + 0xe8], edx
mov qword [rsp + 0x68], rax
cmp qword [r10 + 0x50], rdi
je 0x18025bec1
cmp qword [r10 + 0x50], rdi
je 0x18025c075
mov r8, qword [rbp + 0xe0]
mov rdx, r10
mov rcx, rbx
call fcn.1802200d0
mov rcx, qword [rbp + 0xd8]
mov r10d, eax
cmp qword [rcx + 0x58], rdi
jne 0x18025c044
mov rcx, rbx
call fcn.18026e9b0
mov eax, r10d
add rsp, 0x1a8
pop rdi
pop rsi
pop rbx
pop rbp
ret
movsx r8d, word [r9 + 0x46]
lea rdx, [0x180071a98]
mov eax, dword [rax]
mov rcx, rbx
mov r9, qword [r9]
mov dword [rsp + 0x20], eax
call fcn.18023f590
jmp 0x18025bdd4
cmp dword [r11], 1
jle 0x18025c095
mov rax, qword [rbp - 0x60]
cmp word [rax + 0x5c], di
jl 0x18025c095
mov rdx, r10
mov rcx, rbx
call fcn.1802277f0
mov r11, qword [rsp + 0x78]
lea rdx, [0x1800935b8]
mov ecx, edi
mov dword [rbp + 0xe8], ecx
cmp dword [r11], edi
jle 0x18025c468
mov rax, rdi
mov qword [rbp - 0x40], rax
nop dword [rax]
nop dword [rax + rax]
imul rax, rax, 0x70
add rax, 8
add rax, r11
mov qword [rsp + 0x50], rax
cmp qword [rax + 0x58], rdi
jne 0x18025c108
mov r8, qword [rax + 0x10]
test r8, r8
je 0x18025c108
mov rax, qword [rax + 8]
mov r9, rdx
mov edx, reloc.WS2_32.dll_sendto
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.180233150
mov rax, qword [rsp + 0x50]
mov ecx, dword [rbp + 0xe8]
mov r11, qword [rsp + 0x78]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x18025c445
mov rcx, qword [rbp + 0xd8]
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x44], edi
call fcn.18021c390
mov eax, dword [rsp + 0x44]
mov ecx, 0x1000
add dword [rbx + 0x124], eax
mov rax, qword [rbp - 0x60]
test word [rax + 0x5c], cx
jne 0x18025c177
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x68]
movzx eax, byte [rcx + 0x3c]
mov r9d, dword [rcx + 0x44]
mov rcx, rbx
shr eax, 5
and eax, 1
mov dword [rsp + 0x20], eax
mov rax, qword [rbp + 0xd8]
mov r8, qword [rax + 0x30]
call fcn.180227e30
mov rax, qword [rbx + 0x160]
mov rdx, qword [rsp + 0x50]
mov qword [rbp - 0x78], rax
mov rax, qword [rdx + 0x10]
mov qword [rbx + 0x160], rax
cmp qword [rbp - 0x40], rdi
jne 0x18025c2b1
mov rax, qword [rsp + 0x78]
cmp dword [rax], 1
je 0x18025c1b3
test byte [rax + 0xb4], 0xa
je 0x18025c2b1
mov ebx, dword [rsi + 0x90]
xor r9d, r9d
mov rcx, qword [rbp + 0xd0]
inc ebx
mov dword [rsp + 0x20], ebx
mov r8d, dword [rcx + 0x38]
inc r8d
mov dword [rcx + 0x38], r8d
mov rcx, rsi
mov dword [rdx + 0x34], r8d
lea edx, [r9 + 0xd]
call fcn.180265c30
mov rax, qword [rsp + 0x50]
lea r8, [0x180071ac0]
mov rcx, qword [rbp + 0xd0]
mov edx, 1
mov byte [rbp - 0x20], recv
mov qword [rbp - 0x18], rdi
mov dword [rax + 0x30], ebx
mov eax, dword [rax + 0x34]
mov dword [rbp - 0x1c], eax
mov rax, qword [rsp + 0x68]
mov qword [rbp - 8], rdi
mov dword [rbp - 0x10], edi
mov r9d, dword [rax + 0x10]
call fcn.18026e870
mov rdx, qword [rsp + 0x68]
lea r8, [rbp - 0x20]
mov rcx, qword [rbp + 0xd0]
call fcn.18025bbf0
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x68]
mov rcx, qword [rdx + 0x20]
movzx eax, word [rax + 2]
mov word [rcx + 0x4a], ax
mov rcx, rsi
mov eax, dword [rbp - 0x14]
or dword [rdx + 0x40], 0x10
mov dword [rdx + 0x38], eax
mov edx, dword [rdx + 0x34]
call fcn.180266e90
sub ebx, 1
mov edx, dword [rsi + 0x90]
jns 0x18025c270
lea ebx, [rdx - 1]
mov rax, qword [rsi]
cmp byte [rax + 0x61], dil
je 0x18025c28f
mov rbx, qword [rbp + 0xd0]
lea rax, [0x180413740]
mov dword [rax + 8], edx
jmp 0x18025c3fb
movsxd rax, ebx
mov rbx, qword [rbp + 0xd0]
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 8], edx
lea rax, [rax + rcx*8]
jmp 0x18025c3fb
mov r9d, dword [rbx + 0x38]
xor r8d, r8d
inc r9d
mov dword [rsp + 0x44], edi
mov dword [rbx + 0x38], r9d
mov rcx, rsi
mov dword [rdx + 0x34], r9d
lea edx, [r8 + 0x45]
call fcn.180265bc0
mov dword [rsp + 0x74], eax
lea ecx, [rax + 1]
mov rax, qword [rsp + 0x50]
test byte [rax + 0x40], 8
mov dword [rax + 0x30], ecx
jne 0x18025c2fe
mov edx, send
mov rcx, rsi
call fcn.180265ae0
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
mov rdx, rax
call fcn.18021de20
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x18025c347
mov r8d, dword [rcx + 0x44]
mov edx, 0x62
mov r9d, dword [rax + 0x44]
mov rcx, rsi
call fcn.180265bc0
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx + 0x28]
movzx ecx, word [rax + 2]
mov rax, qword [rsp + 0x68]
mov word [rax + 2], cx
jmp 0x18025c38f
mov eax, dword [rcx + 0x44]
lea r8, [0x180071ad0]
mov dword [rbp - 0x1c], eax
mov edx, 1
mov rax, qword [rsp + 0x68]
mov rcx, rbx
mov byte [rbp - 0x20], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov qword [rbp - 0x18], rdi
mov qword [rbp - 8], rdi
mov dword [rbp - 0x10], edi
mov r9d, dword [rax + 0x10]
call fcn.18026e870
mov rdx, qword [rsp + 0x68]
lea r8, [rbp - 0x20]
mov rcx, rbx
call fcn.18025bbf0
mov rax, qword [rsp + 0x68]
movzx eax, word [rax + 2]
mov r10, qword [rsp + 0x50]
mov rcx, qword [r10 + 0x20]
mov word [rcx + 0x4a], ax
mov eax, dword [rsp + 0x44]
test eax, eax
je 0x18025c3b2
mov edx, eax
mov rcx, rsi
call fcn.18026f6d0
mov r8d, dword [r10 + 0x34]
mov edx, 0x41
mov rcx, rsi
call fcn.180265b50
mov edx, eax
mov eax, dword [rsp + 0x74]
test eax, eax
jns 0x18025c3d5
mov eax, dword [rsi + 0x90]
dec eax
mov rcx, qword [rsi]
cmp byte [rcx + 0x61], dil
je 0x18025c3e7
lea rcx, [0x180413740]
jmp 0x18025c3f8
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rcx, [rax + rcx*8]
mov dword [rcx + 4], edx
mov rax, qword [rbp - 0x60]
mov dword [rbx + 0x28], edi
mov byte [rbx + 0x1f], dil
cmp byte [rax + 0x61], dil
jne 0x18025bdd4
mov rcx, qword [rbp + 0xd8]
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x44], edi
call fcn.18021c390
mov rax, qword [rbp - 0x78]
mov edx, dword [rsp + 0x44]
sub dword [rbx + 0x124], edx
mov ecx, dword [rbp + 0xe8]
mov r11, qword [rsp + 0x78]
mov qword [rbx + 0x160], rax
mov rax, qword [rbp - 0x40]
lea rdx, [0x1800935b8]
inc rax
inc ecx
mov dword [rbp + 0xe8], ecx
mov qword [rbp - 0x40], rax
cmp ecx, dword [r11]
jl 0x18025c0c0
mov rcx, qword [rbp + 0xd8]
mov rax, qword [rcx + 0x30]
mov rdx, qword [rcx + 0x20]
mov qword [rbp - 0x48], rax
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 0x40]
mov qword [rbp - 0x40], rax
movzx eax, byte [rcx + 4]
and al, 1
mov qword [rsp + 0x68], rdx
mov byte [rbp + 0xe8], al
mov byte [rbp + 0x10], al
mov eax, dword [rcx + 4]
and al, 9
cmp al, 1
jne 0x18025c4f8
mov rcx, qword [rbp - 0x68]
or r8d, 0xffffffff
call fcn.180244b50
test eax, eax
jne 0x18025c4f3
mov rcx, qword [rbp + 0xd8]
mov rdx, qword [rsp + 0x68]
cmp qword [rcx + 0x70], rdi
jne 0x18025c4f8
and dword [rcx + 4], 0xfffffffe
xor r8d, r8d
mov rcx, qword [rbp - 0x60]
call fcn.180244c00
mov rcx, rax
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 0xd8]
or dword [rax + 4], 8
mov qword [rax + 0x38], rcx
mov rdx, qword [rsp + 0x68]
mov rax, qword [rbp - 0x68]
test rax, rax
je 0x18025c615
mov r9d, dword [rdx]
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call fcn.18024f810
mov r10d, dword [rbx + 0x34]
mov r8, rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x68]
mov dword [rbp + 0x2c], r10d
lea ecx, [r10 + 1]
mov dword [rbx + 0x34], ecx
mov edx, dword [rax]
movsxd r11, dword [rsi + 0x90]
mov rax, qword [rbp - 0x68]
mov dword [rbp - 0x58], r11d
mov r9d, dword [rax]
inc r9d
add r9d, edx
cmp dword [rsi + 0x94], r11d
jg 0x18025c576
mov r8d, r10d
mov dword [rsp + 0x20], edi
mov edx, 0x64
mov rcx, rsi
call fcn.18021bc70
mov r8, qword [rsp + 0x60]
mov r11d, eax
mov dword [rbp - 0x58], eax
jmp 0x18025c5a5
lea rcx, [r11 + r11*2]
lea eax, [r11 + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x64
mov dword [rax + rcx*8 + 4], r10d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov rcx, qword [rsi]
mov eax, r11d
cmp byte [rcx + 0x61], dil
je 0x18025c5c5
mov edx, 0xfffffff7
call fcn.1802186e0
mov r11d, dword [rbp - 0x58]
mov dword [rbp + 0x38], r11d
jmp 0x18025c61e
test r11d, r11d
jns 0x18025c5d2
mov eax, dword [rsi + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
cmp byte [rax + rcx*8 + 1], dil
lea rdx, [rax + rcx*8]
je 0x18025c602
mov r9d, 0xfffffff7
mov rcx, rsi
call fcn.180282640
mov r11d, dword [rbp - 0x58]
mov dword [rbp + 0x38], r11d
jmp 0x18025c61e
test r8, r8
je 0x18025c60f
mov qword [rdx + 0x10], r8
mov byte [rdx + 1], 0xf7
mov dword [rbp + 0x38], r11d
jmp 0x18025c61e
or eax, 0xffffffff
mov dword [rbp - 0x58], eax
mov dword [rbp + 0x38], eax
mov rcx, qword [rbp + 0xe0]
cmp byte [rcx], 0xc
jne 0x18025c643
mov rax, qword [rsp + 0x68]
mov edx, 0x64
mov r8d, dword [rcx + 4]
mov rcx, rsi
mov r9d, dword [rax]
call fcn.180265bc0
dec dword [rbx + 0x44]
mov ecx, 0x4000
mov rax, qword [rbp + 0xd8]
mov r8d, dword [rbx + 0x44]
mov dword [rbp + 0x50], r8d
test dword [rax + 4], ecx
jne 0x18025c668
mov ecx, 0x140
mov word [rax + 2], cx
mov rdx, rax
mov rcx, rbx
call fcn.18020d9f0
mov rdx, qword [rbp + 0xd8]
cmp dword [rdx + 8], edi
jne 0x18025c6af
movsxd rcx, dword [rbp - 0x58]
test ecx, ecx
js 0x18025c6af
mov rax, qword [rsi]
cmp byte [rax + 0x61], dil
je 0x18025c699
lea rax, [0x180413740]
jmp 0x18025c6a8
mov rax, qword [rsi + 0x88]
lea rcx, [rcx + rcx*2]
lea rax, [rax + rcx*8]
or byte [rbp + 0x44], 1
mov byte [rax], reloc.WS2_32.dll_WSAGetLastError
test byte [rdx + 4], 1
je 0x18025c7e0
mov eax, dword [rbx + 0x34]
xor r9d, r9d
mov dword [rsp + 0x44], eax
xor r8d, r8d
mov dword [rbp + 0x14], eax
mov rcx, rbx
inc eax
mov dword [rbx + 0x34], eax
mov rdx, qword [rdx + 0x20]
call fcn.18024f810
movsxd rdx, dword [rsi + 0x90]
mov r11, rax
mov r8d, dword [rsp + 0x44]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x74], edx
cmp dword [rsi + 0x94], edx
jg 0x18025c71a
xor r9d, r9d
mov dword [rsp + 0x20], edi
mov rcx, rsi
lea edx, [r9 + 0x64]
call fcn.18021bc70
mov r11, qword [rsp + 0x60]
mov edx, eax
mov dword [rsp + 0x74], eax
jmp 0x18025c744
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x64
mov dword [rax + rcx*8 + 4], r8d
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
mov rcx, qword [rsi]
mov eax, edx
cmp byte [rcx + 0x61], dil
je 0x18025c762
mov r8, r11
mov edx, 0xfffffff7
call fcn.1802186e0
mov edx, dword [rsp + 0x74]
jmp 0x18025c7ae
test edx, edx
jns 0x18025c76e
mov eax, dword [rsi + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
cmp byte [rax + rcx*8 + 1], dil
lea r10, [rax + rcx*8]
je 0x18025c7a0
mov r9d, 0xfffffff7
mov r8, r11
mov rdx, r10
mov rcx, rsi
call fcn.180282640
mov edx, dword [rsp + 0x74]
jmp 0x18025c7ae
test r11, r11
je 0x18025c7ae
mov qword [r10 + 0x10], r11
mov byte [r10 + 1], 0xf7
mov eax, dword [rsi + 0x90]
mov dword [rbp + 0x18], edx
test eax, eax
jle 0x18025c7d5
dec eax
movsxd rcx, eax
mov rax, qword [rsi + 0x88]
lea rdx, [rcx + rcx*2]
mov ecx, 8
mov word [rax + rdx*8 + 2], cx
mov rdx, qword [rbp + 0xd8]
mov al, 3
jmp 0x18025c7e2
xor al, al
mov r10, qword [rsp + 0x50]
mov byte [rbp + 0x11], al
mov dword [rsp + 0x74], eax
cmp dword [rbp - 0x80], edi
jne 0x18025ca2b
test r10, r10
jne 0x18025ca2b
movzx eax, byte [rbp + 0xe8]
mov r8d, 0x4000
neg al
movzx eax, word [rdx + 4]
sbb cx, cx
and ax, r8w
and cx, 0x100
or cx, ax
mov rax, qword [rdx + 0x70]
mov word [rsp + 0x4c], cx
mov qword [rsp + 0x60], rax
test rax, rax
je 0x18025c849
mov rcx, rbx
call fcn.18027af10
mov rdx, qword [rbp + 0xd8]
movzx ecx, word [rsp + 0x4c]
movsx eax, word [rdx + 2]
mov r9, qword [rbp - 0x68]
mov r8, qword [rbp - 0x48]
mov dword [rsp + 0x30], eax
mov rax, qword [rdx + 0x20]
mov rdx, qword [rsp + 0x78]
mov word [rsp + 0x28], cx
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180276170
mov qword [rbp - 0x78], rax
mov rdx, rax
test rax, rax
je 0x18025bdd4
mov r10, qword [rbp + 0xd8]
movzx eax, word [rax + 0x48]
cmp ax, word [r10 + 2]
jge 0x18025c89b
mov word [r10 + 2], ax
cmp byte [rbp + 0xe8], dil
je 0x18025c8bb
movzx ecx, byte [rdx + 0x43]
mov eax, dword [rsp + 0x74]
test cl, cl
movzx eax, al
cmovne eax, ecx
mov dword [rsp + 0x74], eax
mov byte [rbp + 0x11], al
mov r9, qword [rbp - 0x68]
test r9, r9
je 0x18025c8fd
test byte [rdx + 0x44], 4
movsx r8d, byte [rdx + 0x41]
mov dword [rbp + 0x28], r8d
jne 0x18025c8d8
mov eax, dword [rdx + 0x30]
jmp 0x18025c8ef
movzx eax, byte [rdx + 0x40]
dec eax
cdqe
lea rcx, [rax + rax*2]
shl rcx, 5
mov eax, dword [rcx + rdx + 0x370]
cmp r8d, dword [r9]
mov dword [rbp + 0x40], eax
cmove r9, rdi
mov qword [rbp + 0x20], r9
mov eax, dword [rbp - 0x58]
test eax, eax
js 0x18025c91e
test r9, r9
jne 0x18025c91e
mov edx, eax
mov rcx, rsi
call fcn.180266260
mov rdx, qword [rbp - 0x78]
mov r10, qword [rbp + 0xd8]
cmp qword [rsp + 0x60], rdi
je 0x18025c9e7
mov esi, dword [rbx + 0x44]
mov r8, rdx
mov rcx, qword [rbp + 0xd0]
mov rdx, r10
lea ebx, [rsi - 1]
sub esi, 2
inc dword [rcx + 0x38]
mov edi, dword [rcx + 0x38]
mov r9d, edi
mov dword [rsp + 0x20], ebx
lea eax, [rsi - 1]
mov dword [rcx + 0x44], eax
call fcn.18027b570
mov rcx, qword [rbp - 0x38]
lea r9d, [rsi - 1]
xor r8d, r8d
lea edx, [r8 + 0xb]
call fcn.180265bc0
mov rcx, qword [rbp - 0x38]
mov edx, ebx
call fcn.1802724f0
mov rax, qword [rbp + 0xe0]
lea ebx, [rsi - 1]
mov rdx, qword [rbp + 0xd8]
lea r9, [rbp + 0x20]
mov rcx, qword [rbp + 0xd0]
or r8d, 0xffffffff
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x40], 0
call fcn.18022eb00
mov edx, esi
mov rsi, qword [rbp - 0x38]
mov rcx, rsi
call fcn.1802724f0
mov r8d, edi
mov edx, 0x41
mov rcx, rsi
call fcn.180265b50
mov edx, ebx
mov rcx, rsi
call fcn.1802724f0
xor edi, edi
jmp 0x18025e6a2
mov eax, dword [rdx + 0x34]
lea r9, [rbp + 0x20]
mov dword [rsp + 0x38], eax
or r8d, 0xffffffff
mov eax, dword [rdx + 0x30]
mov rcx, rbx
mov dword [rsp + 0x30], eax
mov rdx, r10
mov rax, qword [rbp + 0xe0]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
call fcn.18022eb00
mov rcx, qword [rbp - 0x78]
call fcn.180279620
jmp 0x18025e6a2
mov dword [rsp + 0x70], edi
mov dword [rbp - 0x80], edi
mov dword [rsp + 0x44], edi
test r10, r10
je 0x18025cae2
mov rcx, qword [rdx + 0x20]
mov eax, dword [rcx]
test eax, eax
jle 0x18025ca5d
add rcx, 0x22
nop dword [rax]
dec eax
mov word [rcx], di
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x18025ca50
mov eax, dword [r10]
test eax, eax
jle 0x18025ca7d
lea rcx, [r10 + 0x22]
nop dword [rax + rax]
dec eax
mov word [rcx], di
lea rcx, [rcx + 0x20]
test eax, eax
jg 0x18025ca70
cmp word [rdx + 2], 0x42
jle 0x18025ca8d
mov eax, 0x42
mov word [rdx + 2], ax
mov r9, qword [rbp - 0x68]
test r9, r9
je 0x18025cae6
mov eax, dword [r10]
cmp eax, dword [r9]
jne 0x18025cae6
mov edx, edi
test eax, eax
jle 0x18025cac5
mov r8, r9
lea rcx, [r10 + 0x18]
sub r8, r10
nop
movzx eax, byte [r8 + rcx]
lea rcx, [rcx + 0x20]
and al, 1
inc edx
mov byte [rcx - 0x20], al
cmp edx, dword [r10]
jl 0x18025cab0
or r8d, 0xffffffff
mov rdx, r9
mov rcx, r10
call fcn.180244b50
test eax, eax
jne 0x18025cae6
mov dword [rsp + 0x44], 1
jmp 0x18025cae6
mov word [rdx + 2], di
dec dword [rbx + 0x44]
mov eax, dword [rbx + 0x44]
mov r8, qword [rbp - 0x60]
mov dword [rbp - 0x70], eax
mov eax, 0x48
cmp ax, word [r8 + 0x17c]
jbe 0x18025cb26
cmp dword [r8 + 0x178], edi
jne 0x18025cb17
inc dword [r8 + 0x18c]
jmp 0x18025cbc0
cmp byte [r8 + 0x61], dil
jne 0x18025bdd4
jmp 0x18025cbc0
mov rcx, qword [r8 + 0x1b0]
mov qword [rsp + 0x58], rcx
test rcx, rcx
je 0x18025cb4d
mov rax, qword [rcx]
mov qword [r8 + 0x1b0], rax
inc dword [r8 + 0x188]
jmp 0x18025cbd3
mov rcx, qword [r8 + 0x1a8]
mov qword [rsp + 0x58], rcx
test rcx, rcx
je 0x18025cb71
mov rax, qword [rcx]
mov qword [r8 + 0x1a8], rax
inc dword [r8 + 0x188]
jmp 0x18025cbd3
mov rcx, qword [r8 + 0x1a0]
mov qword [rsp + 0x58], rcx
test rcx, rcx
je 0x18025cb95
mov rax, qword [rcx]
mov qword [r8 + 0x1a0], rax
inc dword [r8 + 0x188]
jmp 0x18025cbd3
mov rcx, qword [r8 + 0x198]
mov qword [rsp + 0x58], rcx
test rcx, rcx
je 0x18025cbb9
mov rax, qword [rcx]
mov qword [r8 + 0x198], rax
inc dword [r8 + 0x188]
jmp 0x18025cbd3
inc dword [r8 + 0x190]
mov rdx, rax
mov rcx, r8
call fcn.180210050
mov qword [rsp + 0x58], rax
mov rcx, rax
test rcx, rcx
je 0x18025bdd4
mov rdx, qword [rsp + 0x50]
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], rax
mov qword [rcx + 0x38], rax
mov qword [rcx + 0x40], rax
mov rax, qword [rbx + 0xb8]
mov qword [rcx + 0x40], rax
mov rax, qword [rbp + 0xd8]
mov qword [rbx + 0xb8], rcx
mov eax, dword [rax + 0x10]
mov dword [rcx + 0x3c], eax
xor eax, eax
mov qword [rbp + 0x78], rax
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], rax
mov qword [rbp + 0x90], rax
mov rax, qword [rsp + 0x78]
mov qword [rbp + 0x68], rax
mov eax, dword [rbx + 0x38]
inc eax
mov qword [rbp + 0x60], rbx
mov qword [rbp + 0x70], rcx
mov dword [rcx + 0x10], eax
test rdx, rdx
je 0x18025cc62
mov eax, dword [rdx]
jmp 0x18025cc64
mov eax, edi
mov qword [rcx + 0x18], rdx
lea r8, [0x180276160]
mov rdx, qword [rsp + 0x68]
lea r9, [0x180276150]
mov dword [rcx + 0xc], eax
test rdx, rdx
je 0x18025cd16
lea rax, [rdx + 8]
mov ecx, edi
mov qword [rbp - 0x78], rax
mov dword [rsp + 0x48], ecx
cmp dword [rdx], edi
jle 0x18025cd16
mov rsi, rdx
lea rbx, [0x180203860]
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rax]
mov qword [rbp - 0x10], r8
lea r8, [rbp + 0x60]
mov qword [rbp + 8], r8
mov qword [rbp - 0x18], rbx
mov qword [rbp - 8], r9
mov dword [rbp], edi
mov qword [rbp - 0x20], rdi
test rdx, rdx
je 0x18025cceb
lea rcx, [rbp - 0x20]
call fcn.180289a10
mov rax, qword [rbp - 0x78]
lea r9, [0x180276150]
mov ecx, dword [rsp + 0x48]
inc ecx
lea r8, [0x180276160]
add rax, 0x20
mov dword [rsp + 0x48], ecx
mov qword [rbp - 0x78], rax
cmp ecx, dword [rsi]
jl 0x18025ccb0
mov rsi, qword [rbp - 0x38]
lea r8, [0x180276160]
mov rbx, qword [rbp + 0xd0]
mov rdx, qword [rbp - 0x68]
test rdx, rdx
je 0x18025cd9f
lea rax, [rdx + 8]
mov ecx, edi
mov qword [rbp - 0x78], rax
mov dword [rsp + 0x48], ecx
cmp dword [rdx], edi
jle 0x18025cd9f
mov rsi, rdx
lea rbx, [0x180203860]
nop
mov rdx, qword [rax]
mov qword [rbp - 0x10], r8
lea r8, [rbp + 0x60]
mov qword [rbp + 8], r8
mov qword [rbp - 0x18], rbx
mov qword [rbp - 8], r9
mov dword [rbp], edi
mov qword [rbp - 0x20], rdi
test rdx, rdx
je 0x18025cd7b
lea rcx, [rbp - 0x20]
call fcn.180289a10
mov rax, qword [rbp - 0x78]
lea r9, [0x180276150]
mov ecx, dword [rsp + 0x48]
inc ecx
lea r8, [0x180276160]
add rax, 0x20
mov dword [rsp + 0x48], ecx
mov qword [rbp - 0x78], rax
cmp ecx, dword [rsi]
jl 0x18025cd40
mov rsi, qword [rbp - 0x38]
mov rbx, qword [rbp + 0xd0]
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x18025ce3c
cmp qword [rsp + 0x50], rdi
je 0x18025ce00
xor eax, eax
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rax
mov qword [rbp], rax
lea rax, [0x18021c160]
mov qword [rbp - 0x18], rax
mov rax, qword [rbp + 0xd8]
mov qword [rbp + 8], rax
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x18025cdf8
lea rcx, [rbp - 0x20]
call fcn.180289a10
mov rax, qword [rbp + 0xd8]
mov rcx, qword [rbp - 0x40]
mov rax, qword [rax + 0x30]
mov qword [rbp - 0x48], rax
lea rax, [0x180203860]
mov dword [rbp], edi
mov qword [rbp - 0x18], rax
mov rdx, rcx
lea rax, [0x180276160]
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x10], rax
lea rcx, [rbp - 0x20]
lea rax, [0x180276150]
mov qword [rbp - 8], rax
lea rax, [rbp + 0x60]
mov qword [rbp + 8], rax
call fcn.180289a10
mov r9, qword [rsp + 0x58]
mov eax, dword [r9 + 0x28]
mov dword [r9 + 0x2c], eax
mov rax, qword [rbp + 0xd8]
cmp qword [rax + 0x38], rdi
jne 0x18025ce82
cmp qword [rax + 0x40], rdi
jne 0x18025ce82
cmp dword [r9 + 0x38], 1
jne 0x18025ce82
mov rdx, qword [r9 + 0x30]
lea r8, [rbp + 0x58]
mov rcx, qword [rbp - 0x60]
mov rdx, qword [rdx]
call fcn.18021f8f0
mov r9, qword [rsp + 0x58]
mov byte [rsp + 0x4c], al
jmp 0x18025ce87
mov byte [rsp + 0x4c], dil
mov ecx, edi
mov dword [rsp + 0x48], ecx
cmp dword [r9 + 0x38], edi
jle 0x18025cfc2
mov rsi, rdi
mov qword [rbp - 0x28], rdi
lea rbx, [0x180203860]
mov rax, qword [r9 + 0x30]
mov r8, qword [rsi + rax]
or dword [rbp + 0x88], 0x20000
mov qword [rbp - 0x30], r8
mov rdx, qword [r8 + 0x20]
test rdx, rdx
je 0x18025cf43
lea rax, [rdx + 8]
mov ecx, edi
mov qword [rbp - 0x78], rax
mov dword [rbp - 0x68], ecx
cmp dword [rdx], edi
jle 0x18025cf3f
mov rsi, rdx
nop dword [rax + rax]
mov rdx, qword [rax]
lea r8, [0x180276160]
mov qword [rbp - 0x10], r8
lea r8, [0x180276150]
mov qword [rbp - 8], r8
lea r8, [rbp + 0x60]
mov qword [rbp + 8], r8
mov qword [rbp - 0x18], rbx
mov dword [rbp], edi
mov qword [rbp - 0x20], rdi
test rdx, rdx
je 0x18025cf21
lea rcx, [rbp - 0x20]
call fcn.180289a10
mov rax, qword [rbp - 0x78]
mov ecx, dword [rbp - 0x68]
inc ecx
add rax, 0x20
mov dword [rbp - 0x68], ecx
mov qword [rbp - 0x78], rax
cmp ecx, dword [rsi]
jl 0x18025cee0
mov r8, qword [rbp - 0x30]
mov r9, qword [rsp + 0x58]
mov rsi, qword [rbp - 0x28]
mov ecx, dword [rsp + 0x48]
test dword [r8 + 4], 0x1000000
je 0x18025cf95
mov rax, qword [r8 + 0x40]
mov qword [rbp - 0x18], rbx
mov dword [rbp], edi
mov qword [rbp - 0x20], rdi
mov rdx, qword [rax + 0x48]
lea rax, [0x180276160]
mov qword [rbp - 0x10], rax
lea rax, [0x180276150]
mov qword [rbp - 8], rax
lea rax, [rbp + 0x60]
mov qword [rbp + 8], rax
test rdx, rdx
je 0x18025cf95
lea rcx, [rbp - 0x20]
call fcn.180289a10
mov r9, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x48]
and dword [rbp + 0x88], 0xfffdffff
inc ecx
add rsi, 0x18
mov dword [rsp + 0x48], ecx
mov qword [rbp - 0x28], rsi
cmp ecx, dword [r9 + 0x38]
jl 0x18025cea5
mov rsi, qword [rbp - 0x38]
mov rbx, qword [rbp + 0xd0]
mov eax, dword [rbx + 0x38]
mov dword [r9 + 0x14], eax
mov rax, qword [rbp - 0x60]
cmp byte [rax + 0x61], dil
jne 0x18025e766
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x18025e053
mov eax, dword [rbx + 0x34]
mov rdx, rcx
mov dword [r9 + 4], eax
xor r8d, r8d
inc dword [rbx + 0x34]
mov rcx, rbx
mov r9d, dword [r9 + 0x28]
call fcn.18024f810
movsxd r9, dword [rsi + 0x90]
mov r10, rax
mov qword [rbp - 0x78], rax
mov rax, qword [rsp + 0x58]
mov dword [rbp - 0x50], r9d
mov edx, dword [rax + 0xc]
mov r8d, dword [rax + 4]
cmp dword [rsi + 0x94], r9d
jg 0x18025d048
mov r9d, edx
mov dword [rsp + 0x20], edi
mov edx, reloc.WS2_32.dll_WSAGetLastError
mov rcx, rsi
call fcn.18021bc70
mov r10, qword [rbp - 0x78]
mov r9d, eax
mov dword [rbp - 0x50], eax
jmp 0x18025d076
lea rcx, [r9 + r9*2]
lea eax, [r9 + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], reloc.WS2_32.dll_WSAGetLastError
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov rcx, qword [rsi]
mov eax, r9d
cmp byte [rcx + 0x61], dil
je 0x18025d091
mov r8, r10
mov edx, 0xfffffff7
call fcn.1802186e0
jmp 0x18025d0d6
test r9d, r9d
jns 0x18025d09e
mov eax, dword [rsi + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
cmp byte [rax + rcx*8 + 1], dil
lea rdx, [rax + rcx*8]
je 0x18025d0c9
mov r9d, 0xfffffff7
mov r8, r10
mov rcx, rsi
call fcn.180282640
jmp 0x18025d0d6
test r10, r10
je 0x18025d0d6
mov qword [rdx + 0x10], r10
mov byte [rdx + 1], 0xf7
mov eax, dword [rbx + 0x38]
mov r9, qword [rsp + 0x50]
inc eax
mov dword [rbp - 0x30], eax
lea r8d, [rax + 1]
mov eax, dword [rbx + 0x44]
lea ecx, [r8 + 2]
mov dword [rsp + 0x4c], r8d
mov dword [rbx + 0x38], ecx
lea edx, [rcx + 1]
dec eax
mov dword [rbp - 0x28], ecx
mov dword [rbp - 0x68], eax
dec eax
mov dword [rbx + 0x44], eax
add ecx, dword [r9]
mov dword [rbx + 0x38], ecx
mov dword [rsp + 0x48], eax
mov dword [rbp - 0x38], edx
lea eax, [rcx + 1]
add ecx, dword [r9]
mov dword [rbx + 0x38], ecx
movsxd rcx, dword [rsi + 0x90]
mov dword [rbp - 0x54], eax
cmp dword [rsi + 0x94], ecx
jg 0x18025d14e
mov r9d, r8d
mov dword [rsp + 0x20], edi
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x45]
call fcn.18021bc70
mov edx, dword [rbp - 0x38]
mov r9, qword [rsp + 0x50]
jmp 0x18025d178
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov r8d, dword [r9]
movsxd rcx, dword [rsi + 0x90]
dec r8d
add r8d, edx
cmp dword [rsi + 0x94], ecx
jg 0x18025d1a9
mov dword [rsp + 0x20], r8d
mov r9d, edx
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0x48]
call fcn.18021bc70
jmp 0x18025d1d3
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], 0x48
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025d1fe
mov r9d, dword [rsp + 0x48]
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov r8d, dword [rbp - 0x28]
mov rcx, rsi
mov dword [rsp + 0x20], edi
call fcn.18021bc70
jmp 0x18025d231
mov edx, dword [rbp - 0x28]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x48]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
cmp dword [rsp + 0x44], edi
mov eax, 0x40
mov r9, qword [rsp + 0x50]
mov ecx, 0x240
mov r8, qword [rbp - 0x48]
cmovne ax, cx
mov rdx, qword [rsp + 0x78]
mov rcx, rbx
mov dword [rsp + 0x30], edi
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rdi
call fcn.180276170
mov qword [rbp - 0x48], rax
mov rdx, rax
test rax, rax
je 0x18025e762
movsx ecx, byte [rax + 0x41]
mov rax, qword [rsp + 0x50]
cmp ecx, dword [rax]
jne 0x18025d28f
mov eax, edi
mov dword [rsp + 0x40], eax
jmp 0x18025d666
cmp byte [rbp + 0xe8], dil
je 0x18025d2ac
mov rax, qword [rbp + 0xd8]
lea r9, [0x180071ae0]
test byte [rax + 4], 1
je 0x18025d2b3
lea r9, [0x180071af0]
lea r8, [0x180071620]
xor edx, edx
mov rcx, rbx
call fcn.18026e870
mov rcx, qword [rsp + 0x58]
mov r10, qword [rsp + 0x50]
mov dword [rsp + 0x40], 1
mov eax, dword [rcx + 0x28]
mov edx, dword [r10]
mov r9d, edx
mov dword [rbp - 0x80], edx
mov dword [rsp + 0x78], edx
test eax, eax
jle 0x18025d310
mov rcx, qword [rcx + 0x20]
mov r8d, eax
add rcx, 0x1a
movsx eax, word [rcx]
cmp eax, edx
jl 0x18025d301
inc r9d
inc edx
add rcx, 0x20
sub r8, 1
jne 0x18025d2f5
mov dword [rsp + 0x78], r9d
cmp r9d, 1
jne 0x18025d343
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x18025d32c
inc dword [rbx + 0x38]
mov eax, dword [rbx + 0x38]
mov dword [rbp + 0xe8], eax
jmp 0x18025d375
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov eax, dword [rbx + rax*4 + 0xd4]
mov dword [rbp + 0xe8], eax
jmp 0x18025d375
mov edx, dword [rbx + 0x28]
mov ecx, dword [rbx + 0x2c]
mov dword [rbp + 0xe8], ecx
cmp r9d, edx
jg 0x18025d363
lea eax, [rcx + r9]
sub edx, r9d
mov dword [rbx + 0x2c], eax
mov dword [rbx + 0x28], edx
jmp 0x18025d375
mov eax, dword [rbx + 0x38]
lea ecx, [rax + 1]
add eax, r9d
mov dword [rbx + 0x38], eax
mov dword [rbp + 0xe8], ecx
mov r8d, dword [rbp + 0xe8]
xor r9d, r9d
mov rdx, r10
mov byte [rsp + 0x20], dil
mov rcx, rbx
call fcn.180240200
mov rax, qword [rsp + 0x58]
mov r8d, edi
mov dword [rsp + 0x70], edi
cmp dword [rax + 0x28], edi
jle 0x18025d424
mov ebx, dword [rbp + 0xe8]
mov rcx, rdi
mov r9d, dword [rbp - 0x80]
mov qword [rsp + 0x60], rcx
nop word [rax + rax]
mov rdx, qword [rax + 0x20]
add rdx, rcx
movsx eax, word [rdx + 0x1a]
cmp eax, r9d
jl 0x18025d401
mov r8d, dword [rdx + 0x10]
lea eax, [rbx + r9]
movsx r9d, word [rdx + 0x18]
mov rcx, rsi
mov rdx, qword [rdx]
mov dword [rsp + 0x20], eax
call fcn.1802406d0
mov r9d, dword [rbp - 0x80]
mov rcx, qword [rsp + 0x60]
inc r9d
mov r8d, dword [rsp + 0x70]
mov dword [rbp - 0x80], r9d
mov rax, qword [rsp + 0x58]
inc r8d
add rcx, 0x20
mov dword [rsp + 0x70], r8d
mov qword [rsp + 0x60], rcx
cmp r8d, dword [rax + 0x28]
jl 0x18025d3c0
mov rbx, qword [rbp + 0xd0]
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x18025d434
inc dword [rbx + 0x38]
mov edx, dword [rbx + 0x38]
jmp 0x18025d443
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov edx, dword [rbx + rax*4 + 0xd4]
movsxd rcx, dword [rsi + 0x90]
mov r8d, dword [rbp + 0xe8]
mov dword [rbp - 0x80], edx
cmp dword [rsi + 0x94], ecx
jg 0x18025d477
mov r9d, dword [rsp + 0x78]
mov rcx, rsi
mov dword [rsp + 0x20], edx
mov edx, 0x5b
call fcn.18021bc70
mov edx, dword [rbp - 0x80]
jmp 0x18025d4aa
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], r8d
mov r8d, dword [rsp + 0x78]
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8], 0x5b
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdi
mov rax, qword [rsp + 0x58]
movsxd rcx, dword [rsi + 0x90]
mov r8d, dword [rax + 4]
cmp dword [rsi + 0x94], ecx
jg 0x18025d4db
mov r9d, edx
mov dword [rsp + 0x20], edi
mov edx, 0x84
mov rcx, rsi
call fcn.18021bc70
mov edx, dword [rbp - 0x80]
jmp 0x18025d508
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x84
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
test edx, edx
je 0x18025d521
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x18025d521
movzx eax, al
mov dword [rbx + rax*4 + 0xd4], edx
inc byte [rbx + 0x1f]
mov eax, dword [rsp + 0x78]
cmp eax, 1
jne 0x18025d54b
mov ecx, dword [rbp + 0xe8]
test ecx, ecx
je 0x18025d55c
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x18025d55c
movzx eax, al
mov dword [rbx + rax*4 + 0xd4], ecx
inc byte [rbx + 0x1f]
jmp 0x18025d55c
cmp eax, dword [rbx + 0x28]
jle 0x18025d55c
mov dword [rbx + 0x28], eax
mov eax, dword [rbp + 0xe8]
mov dword [rbx + 0x2c], eax
mov rcx, qword [rbp - 0x48]
call fcn.180279620
mov edx, dword [rbx + 0x34]
mov rax, qword [rsp + 0x58]
mov dword [rsp + 0x70], edx
mov dword [rax + 8], edx
inc dword [rbx + 0x34]
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x18025d588
inc dword [rbx + 0x38]
mov r9d, dword [rbx + 0x38]
jmp 0x18025d598
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov r9d, dword [rbx + rax*4 + 0xd4]
movsxd rcx, dword [rsi + 0x90]
mov r8d, dword [rsp + 0x78]
mov dword [rbp - 0x80], r9d
cmp dword [rsi + 0x94], ecx
jg 0x18025d5c7
mov dword [rsp + 0x20], r8d
mov rcx, rsi
mov r8d, edx
mov edx, WSACleanup
call fcn.18021bc70
jmp 0x18025d5f5
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], WSACleanup
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], rdi
mov rax, qword [rsp + 0x58]
movsxd rcx, dword [rsi + 0x90]
mov edx, dword [rax + 4]
cmp dword [rsi + 0x94], ecx
jg 0x18025d626
mov r9d, dword [rbp - 0x70]
mov r8d, edx
mov edx, 0x23
mov dword [rsp + 0x20], edi
mov rcx, rsi
call fcn.18021bc70
jmp 0x18025d655
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x70]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8], 0x23
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov rax, qword [rsp + 0x58]
mov rdx, qword [rbp - 0x48]
mov byte [rax + 1], 1
mov eax, dword [rsp + 0x40]
cmp dword [rsp + 0x44], edi
je 0x18025d6bf
mov rcx, qword [rbp - 0x60]
test byte [rcx + 0x5c], 4
jne 0x18025d6bf
test eax, eax
jne 0x18025d680
test byte [rdx + 0x44], 8
je 0x18025d6bf
mov rcx, qword [rsi]
mov qword [rbp + 0x20], rdi
cmp byte [rcx + 0x61], dil
jne 0x18025d6bf
movsxd rax, dword [rbp - 0x58]
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov r8, qword [rax + rdx*8 + 0x10]
lea rbx, [rax + rdx*8]
movsx edx, byte [rax + rdx*8 + 1]
call fcn.1802186e0
mov word [rbx], 0xae
mov qword [rbx + 0x10], rdi
mov rbx, qword [rbp + 0xd0]
movsxd rcx, dword [rsi + 0x90]
mov edx, dword [rsp + 0x40]
mov r9, qword [rsp + 0x58]
mov dword [rsp + 0x44], ecx
test edx, edx
je 0x18025d70c
mov edx, dword [r9 + 4]
cmp dword [rsi + 0x94], ecx
jg 0x18025d769
mov eax, dword [rsp + 0x70]
mov r8d, edx
mov r9d, dword [rbp - 0x80]
mov edx, 0x7e
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.18021bc70
mov r9, qword [rsp + 0x58]
mov edx, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
mov r8d, edi
mov dword [rbp + 0xe8], edi
cmp dword [rax], edi
jle 0x18025d832
add rax, 8
mov qword [rsp + 0x60], rax
test edx, edx
je 0x18025d7e1
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025d7a9
mov eax, dword [rbp - 0x54]
mov r9d, r8d
add eax, r8d
mov edx, 0x59
mov r8d, r10d
mov dword [rsp + 0x20], eax
mov rcx, rsi
call fcn.18021bc70
jmp 0x18025d7f4
mov r8d, dword [rbp - 0x80]
lea eax, [rcx + 1]
mov r10d, dword [rsp + 0x70]
lea rcx, [rcx + rcx*2]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x40]
mov dword [rax + rcx*8], 0x7e
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r10d
mov qword [rax + rcx*8 + 0x10], rdi
jmp 0x18025d711
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x59
mov dword [rax + rcx*8 + 4], r10d
mov dword [rax + rcx*8 + 8], r8d
lea rdx, [rax + rcx*8]
mov eax, dword [rbp - 0x54]
add eax, r8d
mov qword [rdx + 0x10], rdi
mov dword [rdx + 0xc], eax
jmp 0x18025d800
add r8d, dword [rbp - 0x54]
mov rcx, rbx
mov byte [r9], 1
mov rdx, qword [rax]
call fcn.180240130
mov r10d, dword [rsp + 0x70]
mov r8d, dword [rbp + 0xe8]
mov rax, qword [rsp + 0x60]
inc r8d
mov rcx, qword [rsp + 0x50]
add rax, 0x20
mov r9, qword [rsp + 0x58]
mov edx, dword [rsp + 0x40]
mov dword [rbp + 0xe8], r8d
mov qword [rsp + 0x60], rax
cmp r8d, dword [rcx]
jl 0x18025d730
mov rax, rcx
mov r10, qword [rbp - 0x78]
test r10, r10
je 0x18025d83e
inc dword [r10]
movsxd rdx, dword [rsi + 0x90]
mov r8d, dword [rax]
cmp dword [rsi + 0x94], edx
jg 0x18025d872
mov r9d, dword [rbp - 0x54]
mov edx, 0x56
mov dword [rsp + 0x20], r8d
mov rcx, rsi
mov r8d, dword [rbp - 0x38]
call fcn.18021bc70
mov r10, qword [rbp - 0x78]
mov edx, eax
jmp 0x18025d8a9
mov r9d, dword [rbp - 0x38]
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], r9d
mov r9d, dword [rbp - 0x54]
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8], 0x56
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], rdi
mov rcx, qword [rsi]
cmp byte [rcx + 0x61], dil
je 0x18025d8c1
mov r8, r10
mov edx, 0xfffffff7
call fcn.1802186e0
jmp 0x18025d906
test edx, edx
jns 0x18025d8cd
mov edx, dword [rsi + 0x90]
dec edx
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
cmp byte [rax + rcx*8 + 1], dil
lea rdx, [rax + rcx*8]
je 0x18025d8f9
mov r9d, 0xfffffff7
mov r8, r10
mov rcx, rsi
call fcn.180282640
jmp 0x18025d906
test r10, r10
je 0x18025d906
mov qword [rdx + 0x10], r10
mov byte [rdx + 1], 0xf7
movsxd rcx, dword [rsi + 0x90]
mov dword [rbp + 0xe8], ecx
lea edx, [rcx + 1]
cmp dword [rsi + 0x94], ecx
jg 0x18025d936
xor r9d, r9d
mov dword [rsp + 0x20], edx
mov r8d, edx
mov rcx, rsi
lea edx, [r9 + 0x10]
call fcn.18021bc70
jmp 0x18025d962
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], reloc.WSOCK32.dll_recv
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], edi
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdi
mov r10, qword [rbx + 0x10]
mov rax, qword [rsp + 0x50]
mov r8d, dword [rbp - 0x54]
movsxd rcx, dword [r10 + 0x90]
mov edx, dword [rax]
cmp dword [r10 + 0x94], ecx
jg 0x18025d998
mov r9d, dword [rbp - 0x38]
mov rcx, r10
mov dword [rsp + 0x20], edx
mov edx, 0x4c
call fcn.18021bc70
jmp 0x18025d9cb
lea eax, [rcx + 1]
mov dword [r10 + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [r10 + 0x88]
mov dword [rax + rcx*8 + 4], r8d
mov r8d, dword [rbp - 0x38]
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8], 0x4c
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
mov r8d, dword [rsp + 0x4c]
cmp dword [rsi + 0x94], ecx
jg 0x18025d9fe
mov r9d, dword [rbp - 0x68]
inc r8d
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov dword [rsp + 0x20], edi
mov rcx, rsi
call fcn.18021bc70
mov r8d, dword [rsp + 0x4c]
jmp 0x18025da31
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
lea edx, [r8 + 1]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x68]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025da57
mov r9d, dword [rbp - 0x70]
mov edx, gethostbyname
mov rcx, rsi
mov dword [rsp + 0x20], edi
call fcn.18021bc70
jmp 0x18025da87
mov edx, dword [rbp - 0x70]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], gethostbyname
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025dab2
mov r9d, dword [rsp + 0x48]
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov r8d, dword [rbp - 0x28]
mov rcx, rsi
mov dword [rsp + 0x20], edi
call fcn.18021bc70
jmp 0x18025dae5
mov edx, dword [rbp - 0x28]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x48]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov ecx, dword [rbp + 0xe8]
mov edx, dword [rsi + 0x90]
test ecx, ecx
jns 0x18025daf8
lea ecx, [rdx - 1]
mov rax, qword [rsi]
cmp byte [rax + 0x61], dil
je 0x18025db0a
lea rax, [0x180413740]
jmp 0x18025db1c
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
lea rax, [rax + rcx*8]
mov r8, qword [rsp + 0x58]
mov rcx, rbx
mov dword [rax + 8], edx
mov edx, dword [rbp - 0x30]
call fcn.1802809b0
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025db59
mov r9d, dword [rbp - 0x30]
mov edx, 0x45
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea r8d, [rdx - 0x44]
call fcn.18021bc70
jmp 0x18025db8c
mov edx, dword [rbp - 0x30]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov eax, dword [rsp + 0x40]
test eax, eax
je 0x18025dbfa
mov rax, qword [rsp + 0x58]
movsxd rcx, dword [rsi + 0x90]
mov edx, dword [rax + 4]
cmp dword [rsi + 0x94], ecx
jg 0x18025dbc6
mov r9d, dword [rsp + 0x44]
mov r8d, edx
mov edx, 3
mov dword [rsp + 0x20], edi
mov rcx, rsi
call fcn.18021bc70
jmp 0x18025dc3e
mov r8d, dword [rsp + 0x44]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 3
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
jmp 0x18025dc3e
mov rcx, qword [rbp - 0x48]
call fcn.180279620
mov rcx, qword [rsi]
cmp byte [rcx + 0x61], dil
jne 0x18025dc3e
movsxd rax, dword [rbp - 0x50]
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov r8, qword [rax + rdx*8 + 0x10]
lea rbx, [rax + rdx*8]
movsx edx, byte [rax + rdx*8 + 1]
call fcn.1802186e0
mov word [rbx], 0xae
mov qword [rbx + 0x10], rdi
mov rbx, qword [rbp + 0xd0]
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025dc6c
mov r8d, dword [rsp + 0x4c]
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov r9d, dword [rbp - 0x68]
inc r8d
mov rcx, rsi
mov dword [rsp + 0x20], edi
call fcn.18021bc70
jmp 0x18025dca1
mov edx, dword [rsp + 0x4c]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
inc edx
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x68]
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025dcc9
mov r9d, dword [rbp - 0x70]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea edx, [r8 + 0xb]
call fcn.18021bc70
jmp 0x18025dcf5
mov edx, dword [rbp - 0x70]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], recv
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
mov dword [rbp - 0x50], ecx
cmp dword [rsi + 0x94], ecx
jg 0x18025dd28
mov r9d, dword [rsp + 0x4c]
mov edx, 0x45
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea r8d, [rdx - 0x44]
call fcn.18021bc70
mov r8d, dword [rsp + 0x4c]
jmp 0x18025dd5e
mov r8d, dword [rsp + 0x4c]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025dd85
xor r9d, r9d
mov dword [rsp + 0x20], edi
inc r8d
mov rcx, rsi
lea edx, [r9 + 0x41]
call fcn.18021bc70
jmp 0x18025ddb2
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
lea edx, [r8 + 1]
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
mov rcx, qword [rsi + 0x18]
mov edx, dword [rbp - 0x68]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18025ddd0
mov r8d, edx
mov rdx, rsi
call fcn.18022b5c0
jmp 0x18025dde1
mov rcx, qword [rcx + 0x50]
mov eax, dword [rsi + 0x90]
movsxd r8, edx
mov dword [rcx + r8*4], eax
movsxd rcx, dword [rsi + 0x90]
mov dword [rbp + 0xe8], ecx
lea r8d, [rcx + 2]
cmp dword [rsi + 0x94], ecx
jg 0x18025de14
mov r9d, r8d
mov dword [rsp + 0x20], edi
mov r8d, dword [rbp - 0x30]
mov edx, gethostbyname
mov rcx, rsi
call fcn.18021bc70
jmp 0x18025de44
mov edx, dword [rbp - 0x30]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], gethostbyname
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025de70
mov r8d, dword [rsp + 0x4c]
xor r9d, r9d
inc r8d
mov dword [rsp + 0x20], edi
mov rcx, rsi
lea edx, [r9 + 0x41]
call fcn.18021bc70
jmp 0x18025de9f
mov edx, dword [rsp + 0x4c]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
inc edx
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.180215680
mov ebx, dword [rbp + 0xe8]
mov r9d, reloc.WSOCK32.dll_recv
mov rdx, qword [rbp - 0x40]
inc ebx
mov rcx, qword [rbp + 0xd0]
mov r8d, ebx
call fcn.180243c10
mov eax, dword [rbp - 0x50]
lea r9, [rbp + 0x20]
mov rdx, qword [rbp + 0xd8]
or r8d, 0xffffffff
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0xe0]
mov dword [rsp + 0x30], ebx
mov rbx, qword [rbp + 0xd0]
mov qword [rsp + 0x28], rax
mov rcx, rbx
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
call fcn.18022eb00
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025df37
mov r8d, dword [rsp + 0x4c]
xor r9d, r9d
inc r8d
mov dword [rsp + 0x20], edi
mov rcx, rsi
lea edx, [r9 + 0x41]
call fcn.18021bc70
jmp 0x18025df66
mov edx, dword [rsp + 0x4c]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
inc edx
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
mov rcx, qword [rsi + 0x18]
mov edx, dword [rsp + 0x48]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18025df85
mov r8d, edx
mov rdx, rsi
call fcn.18022b5c0
jmp 0x18025df96
mov rcx, qword [rcx + 0x50]
mov eax, dword [rsi + 0x90]
movsxd r8, edx
mov dword [rcx + r8*4], eax
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.18022b310
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025dfcb
mov r9d, dword [rbp - 0x30]
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea edx, [r8 + 0x45]
call fcn.18021bc70
jmp 0x18025dff7
mov edx, dword [rbp - 0x30]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025e022
mov r8d, dword [rbp - 0x28]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x20], edi
lea edx, [r9 + 0x41]
call fcn.18021bc70
jmp 0x18025e674
mov edx, dword [rbp - 0x28]
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x41
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
jmp 0x18025e674
mov rax, qword [rbp + 0xd8]
cmp qword [rax + 0x30], rdi
jne 0x18025e42e
mov rcx, qword [rax + 0x20]
cmp dword [rcx], 1
jne 0x18025e42e
mov r10, qword [rax + 0x28]
cmp dword [r10], 1
jne 0x18025e42e
cmp qword [r10 + 0x30], rdi
jne 0x18025e42e
mov r10, qword [r10 + 0x28]
mov rdx, qword [rcx + 8]
mov qword [rbp - 0x80], r10
cmp dword [r10 + 0x54], edi
jne 0x18025e42e
cmp byte [rdx], 0xa5
jne 0x18025e42e
cmp dword [r9 + 0x38], edi
je 0x18025e42e
mov rax, qword [r9 + 0x30]
mov rcx, qword [rax + 8]
test dword [rcx + 4], 0x100
je 0x18025e42e
test dword [rdx + 4], 0x1000002
jne 0x18025e42e
mov r8, qword [r10 + 0x70]
mov edx, 0xffff8000
mov dword [rbp + 0xe8], edx
test r8, r8
je 0x18025e111
mov rax, qword [rbx]
mov edx, edi
mov dword [rbp + 0xe8], edx
mov rcx, qword [rax + 0x20]
add rcx, 0x18
cmp qword [rcx], r8
je 0x18025e111
inc edx
lea rcx, [rcx + 0x20]
cmp qword [rcx], r8
jne 0x18025e100
mov dword [rbp + 0xe8], edx
mov eax, dword [rbx + 0x34]
mov rcx, rbx
mov dword [rsp + 0x48], eax
inc eax
mov dword [rbx + 0x34], eax
mov eax, dword [r10 + 0x38]
mov dword [rsp + 0x44], eax
mov rax, qword [rbx + 0xa0]
test rax, rax
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x50], rdi
cmovne rcx, rax
mov eax, dword [rcx + 0x74]
bt eax, edx
jb 0x18025e162
bts eax, edx
mov dword [rcx + 0x74], eax
cmp edx, 1
jne 0x18025e162
call fcn.180251c90
mov edx, dword [rbp + 0xe8]
mov r10, qword [rbp - 0x80]
mov rax, qword [r10]
xor r9d, r9d
mov r8d, dword [r10 + 0x38]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180260ec0
mov r8, qword [rbp - 0x80]
test byte [r8 + 0x40], 0x80
je 0x18025e1ab
mov rcx, qword [r8 + 0x10]
mov qword [rsp + 0x50], rcx
test rcx, rcx
je 0x18025e1ae
mov eax, dword [rcx + 0x64]
and al, 3
cmp al, 2
je 0x18025e1a4
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x18025e192
mov qword [rsp + 0x50], rcx
jmp 0x18025e1ae
mov rcx, rdi
mov rax, qword [rbp + 0xd8]
mov rax, qword [rax + 0x28]
test byte [rax + 0x48], 1
jne 0x18025e1fb
mov rax, qword [r8 + 0x10]
test rax, rax
je 0x18025e1fb
test byte [rax + 0x64], 4
jne 0x18025e1ed
movzx edx, word [rax + 0x5c]
cmp dx, word [r8 + 0x4c]
jge 0x18025e1ed
cmp qword [rax + 0x48], rdi
jne 0x18025e1ed
test rcx, rcx
je 0x18025e1ea
cmp dx, word [rcx + 0x5c]
jge 0x18025e1ed
mov rcx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x18025e1c8
mov qword [rsp + 0x50], rcx
test rcx, rcx
je 0x18025e217
mov eax, dword [rcx + 0x58]
mov rdx, rcx
mov rcx, rbx
mov dword [rsp + 0x44], eax
call fcn.18024f8d0
mov qword [rsp + 0x60], rax
movsxd r8, dword [rsi + 0x90]
cmp dword [rsi + 0x94], r8d
jg 0x18025e24d
mov edx, dword [rbp + 0xe8]
mov rcx, rsi
mov r9d, dword [rsp + 0x44]
mov r8d, dword [rsp + 0x48]
mov dword [rsp + 0x20], edx
mov edx, 0x60
call fcn.18021bc70
mov r8d, eax
jmp 0x18025e288
mov edx, dword [rsp + 0x48]
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [rsi + 0x90], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x44]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rbp + 0xe8]
mov dword [rax + rcx*8 + 0xc], edx
mov dword [rax + rcx*8], 0x60
mov qword [rax + rcx*8 + 0x10], rdi
mov rax, qword [rsi]
cmp byte [rax + 0x61], dil
jne 0x18025e2ac
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], 1
mov r8, qword [rsp + 0x60]
test r8, r8
je 0x18025e303
mov rcx, qword [rsi]
cmp byte [rcx + 0x61], dil
je 0x18025e2cb
mov edx, 0xfffffff7
call fcn.1802186e0
jmp 0x18025e303
mov eax, dword [rsi + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
cmp byte [rax + rcx*8 + 1], dil
lea rdx, [rax + rcx*8]
je 0x18025e2fb
mov r9d, 0xfffffff7
mov rcx, rsi
call fcn.180282640
jmp 0x18025e303
mov qword [rdx + 0x10], r8
mov byte [rdx + 1], 0xf7
mov rax, qword [rsp + 0x58]
movsxd rcx, dword [rsi + 0x90]
mov r8d, dword [rsp + 0x48]
mov rax, qword [rax + 0x30]
mov edx, dword [rax + 0x10]
cmp dword [rsi + 0x94], ecx
jg 0x18025e33e
mov r9d, edx
mov dword [rsp + 0x20], edi
mov edx, 0x5c
mov rcx, rsi
call fcn.18021bc70
mov r8d, dword [rsp + 0x48]
jmp 0x18025e36b
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x5c
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025e38f
xor r9d, r9d
mov dword [rsp + 0x20], edi
mov rcx, rsi
lea edx, [r9 + 0x74]
call fcn.18021bc70
jmp 0x18025e3b9
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], reloc.WSOCK32.dll_WSACleanup
mov dword [rax + rcx*8 + 4], r8d
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
cmp byte [rbx + 0x11b], 2
jne 0x18025e628
mov rcx, qword [rsp + 0x50]
mov r9, qword [rbp - 0x80]
test rcx, rcx
je 0x18025e3f0
test byte [r9 + 0x40], 0x80
je 0x18025e3e4
mov eax, dword [rcx + 0x64]
and al, 3
cmp al, 2
je 0x18025e3f0
mov rax, qword [rcx]
lea rcx, [0x1800935b8]
jmp 0x18025e3fd
lea rcx, [0x1800935b8]
mov dword [rbp - 0x50], edi
mov rax, rcx
cmp dword [rbp - 0x50], edi
lea rdx, [0x180071a30]
mov r9, qword [r9]
lea r8, [0x180071a48]
cmovne rcx, rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor edx, edx
mov rcx, rbx
call fcn.18026e870
jmp 0x18025e628
mov dword [rbp + 0xe8], edi
cmp dword [r9 + 0x2c], edi
je 0x18025e4d7
mov r8d, dword [r9 + 0x38]
mov edx, edi
test r8d, r8d
jle 0x18025e471
mov rcx, qword [r9 + 0x30]
nop dword [rax]
mov rax, qword [rcx]
test dword [rax + 4], 0x1000000
jne 0x18025e466
mov rax, qword [rcx + 8]
test byte [rax + 4], 0x20
jne 0x18025e471
inc edx
add rcx, 0x18
cmp edx, r8d
jl 0x18025e450
cmp edx, r8d
jne 0x18025e4d7
inc dword [rbx + 0x38]
movsxd rcx, dword [rsi + 0x90]
mov edx, dword [rbx + 0x38]
mov dword [rbp + 0xe8], edx
cmp dword [rsi + 0x94], ecx
jg 0x18025e4ae
xor r8d, r8d
mov dword [rsp + 0x20], edi
mov r9d, edx
mov rcx, rsi
lea edx, [r8 + 0x45]
call fcn.18021bc70
mov r9, qword [rsp + 0x58]
jmp 0x18025e4d7
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov rdx, r9
mov rcx, rbx
call fcn.18022b310
movzx eax, byte [rsp + 0x4c]
mov rcx, rbx
mov r9, qword [rbp + 0x58]
mov r8, qword [rbp - 0x48]
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x30], edi
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rdi
call fcn.180276170
mov qword [rsp + 0x60], rax
test rax, rax
je 0x18025e762
mov r8, qword [rsp + 0x58]
mov rcx, rbx
mov edx, dword [rbp + 0xe8]
call fcn.1802809b0
mov edx, dword [rbp + 0xe8]
test edx, edx
je 0x18025e58e
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025e55e
mov r9d, edx
mov dword [rsp + 0x20], edi
mov edx, 0x45
mov rcx, rsi
lea r8d, [rdx - 0x44]
call fcn.18021bc70
jmp 0x18025e58e
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x45
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov rdx, qword [rsp + 0x60]
test byte [rdx + 0x44], 4
jne 0x18025e59f
mov r8d, dword [rdx + 0x30]
jmp 0x18025e5b7
movzx eax, byte [rdx + 0x40]
dec eax
cdqe
lea rcx, [rax + rax*2]
shl rcx, 5
mov r8d, dword [rcx + rdx + 0x370]
cmp r8d, dword [rdx + 0x30]
je 0x18025e613
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x18025e5e9
mov r9d, r8d
mov dword [rsp + 0x20], edi
xor r8d, r8d
mov rcx, rsi
lea edx, [r8 + 0xb]
call fcn.18021bc70
mov rdx, qword [rsp + 0x60]
jmp 0x18025e613
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov qword [rax + rcx*8], recv
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edi
mov qword [rax + rcx*8 + 0x10], rdi
mov rcx, rdx
call fcn.180279620
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.180215680
mov r8d, dword [rbp - 0x70]
mov r9d, reloc.WSOCK32.dll_recv
mov rdx, qword [rbp - 0x40]
mov rcx, rbx
mov qword [rbp + 0x20], rdi
call fcn.180243c10
mov eax, dword [rbp - 0x70]
xor r9d, r9d
mov rdx, qword [rbp + 0xd8]
or r8d, 0xffffffff
mov dword [rsp + 0x38], eax
mov rcx, rbx
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 0xe0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.18022eb00
mov rcx, qword [rsi + 0x18]
mov edx, dword [rbp - 0x70]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18025e692
mov r8d, edx
mov rdx, rsi
call fcn.18022b5c0
jmp 0x18025e6a2
mov rcx, qword [rcx + 0x50]
mov eax, dword [rsi + 0x90]
movsxd rdx, edx
mov dword [rcx + rdx*4], eax
cmp byte [rsp + 0x74], 3
mov rbx, qword [rbp + 0xd0]
jne 0x18025e6c8
lea r9, [0x180071ae0]
xor edx, edx
lea r8, [0x180071620]
mov rcx, rbx
call fcn.18026e870
cmp qword [rbp + 0x20], 0
je 0x18025e71d
cmp dword [rbp + 0x28], 0
lea rax, [0x180071b00]
lea r9, [0x1800716f0]
mov rcx, rbx
cmovg r9, rax
lea r8, [0x180071620]
xor edx, edx
call fcn.18026e870
mov rax, qword [rbp + 0xe0]
lea r8, [rbp + 0x20]
mov rdx, qword [rbp + 0xd8]
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x68]
mov r9d, dword [rax]
call fcn.180219d30
mov rcx, qword [rsi + 0x18]
mov edx, dword [rbp + 0x50]
not edx
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x18025e73b
mov r8d, edx
mov rdx, rsi
call fcn.18022b5c0
jmp 0x18025e74c
mov r8, qword [rcx + 0x50]
mov eax, dword [rsi + 0x90]
movsxd r9, edx
mov dword [r8 + r9*4], eax
cmp dword [rbx + 0x30], 0
mov r8d, edi
mov rax, qword [rbp - 0x60]
setg r8b
mov dword [rsp + 0x40], r8d
jmp 0x18025e76b
mov rax, qword [rbp - 0x60]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x18025bdd9
mov rdx, rcx
mov rcx, rax
call fcn.1802145f0
jmp 0x18025bdd4
mov r8d, dword [rsp + 0x40]
jmp 0x18025bde0
mov eax, edx
add rsp, 0x1a8
pop rdi
pop rsi
pop rbx
pop rbp
ret