Function at 0x140098e10
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 - 0x108]
sub rsp, 0x208
mov rbx, rcx
xor esi, esi
mov ecx, 1
mov qword [rbp - 0x60], rsi
mov rdi, rdx
mov qword [rbp + 0xb8], rcx
mov eax, dword [rbx + 0x1fc]
mov dword [rbp + 0x80], eax
mov eax, dword [rbx + 0x200]
mov dword [rbx + 0x1fc], eax
inc eax
mov dword [rbx + 0x200], eax
mov rax, qword [rbx]
mov qword [rsp + 0x60], rax
test rdx, rdx
je 0x14009ae6c
cmp byte [rax + 0x51], sil
jne 0x14009ae6c
cmp dword [rbx + 0x4c], esi
jne 0x14009ae6c
xor r9d, r9d
mov qword [rsp + 0x20], rsi
xor r8d, r8d
lea edx, [rsi + 0x15]
mov rcx, rbx
call fcn.140076280
test eax, eax
je 0x140098eb7
lea eax, [rsi + 1]
add rsp, 0x208
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r8, qword [rbp + 0x140]
xor eax, eax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x50], rax
cmp byte [r8], 8
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], rax
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x78], rax
ja 0x140098f01
mov rdx, qword [rdi + 0x48]
mov rcx, qword [rsp + 0x60]
call fcn.14006d5b0
mov eax, 0xfffe
mov qword [rdi + 0x48], rsi
and word [rdi + 0xa], ax
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.140098660
mov r9, qword [rdi + 0x28]
xor eax, eax
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x98], rax
mov qword [rbp + 0xa0], rax
mov rax, qword [rdi + 0x48]
mov qword [rbp - 0x80], rax
mov qword [rbp + 0x88], rax
mov qword [rsp + 0x78], r9
cmp dword [rbx + 0x4c], esi
jne 0x14009ad60
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x51], sil
jne 0x14009ad5b
mov rax, qword [rbp + 0x140]
movzx r10d, word [rdi + 0xa]
shr r10d, 3
and r10d, 1
movzx ecx, byte [rax]
mov rax, qword [rdi]
mov dword [rsp + 0x6c], r10d
cmp dword [rax], 1
jle 0x140098f9b
lea eax, [rcx - 0xa]
cmp eax, 1
ja 0x140098f9b
lea rdx, str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
mov rcx, rbx
call fcn.140038df0
mov rdi, qword [rsp + 0x60]
jmp 0x14009ad6a
mov edx, esi
mov dword [rbp + 0x148], edx
cmp qword [rdi + 0x50], rdx
jne 0x140099091
mov rax, rsi
mov qword [rsp + 0x50], rax
cmp edx, dword [r9]
jge 0x140099091
imul rax, rax, 0x78
mov r8, qword [rax + r9 + 0x30]
mov r9, qword [rax + r9 + 0x28]
test r8, r8
je 0x14009906d
movsx ecx, word [r9 + 0x3e]
mov rax, qword [r8]
cmp ecx, dword [rax]
mov rcx, rbx
jne 0x1400990e1
movzx eax, word [r8 + 0xa]
mov r9d, r10d
shr eax, 3
mov r8d, edx
and eax, 1
mov rdx, rdi
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x20], eax
call fcn.140096b40
test eax, eax
je 0x14009902d
cmp dword [rsp + 0x68], esi
je 0x140099020
or word [rdi + 0xa], 8
mov dword [rsp + 0x6c], 1
or rcx, 0xffffffffffffffff
mov edx, ecx
mov qword [rsp + 0x50], rcx
jmp 0x140099033
mov edx, dword [rbp + 0x148]
mov rax, qword [rsp + 0x60]
mov r9, qword [rdi + 0x28]
mov qword [rsp + 0x78], r9
cmp byte [rax + 0x51], sil
jne 0x14009ad5b
mov rax, qword [rbp + 0x140]
mov r10d, dword [rsp + 0x6c]
cmp byte [rax], 8
jbe 0x140099072
mov rcx, qword [rdi + 0x48]
mov qword [rbp - 0x80], rcx
mov qword [rbp + 0x88], rcx
jmp 0x140099072
mov r9, qword [rsp + 0x78]
mov rax, qword [rsp + 0x50]
inc edx
inc rax
mov dword [rbp + 0x148], edx
mov qword [rsp + 0x50], rax
cmp qword [rdi + 0x50], rsi
je 0x140098fb5
mov rcx, rbx
call fcn.140094390
mov qword [rsp + 0x70], rax
mov rdi, rax
test rax, rax
je 0x140098f91
mov rax, qword [rbp + 0x138]
cmp qword [rax + 0x50], rsi
je 0x140099105
mov r8, qword [rbp + 0x140]
mov rdx, rax
mov rcx, rbx
call fcn.140094ce0
mov ecx, dword [rbp + 0x80]
mov dword [rbx + 0x1fc], ecx
add rsp, 0x208
pop rdi
pop rsi
pop rbx
pop rbp
ret
movsx r8d, word [r9 + 0x3e]
lea rdx, str.expected__d_columns_for__s_but_got__d
mov eax, dword [rax]
mov r9, qword [r9]
mov dword [rsp + 0x20], eax
call fcn.140038df0
mov rdi, qword [rsp + 0x60]
jmp 0x14009ad6a
mov rcx, qword [rsp + 0x78]
mov dword [rsp + 0x5c], esi
cmp dword [rcx], esi
jle 0x1400993e3
lea r11, [rcx + 0x38]
mov rdx, rcx
mov qword [rsp + 0x50], r11
mov rcx, qword [r11 - 8]
mov qword [rbp - 0x20], rcx
test rcx, rcx
je 0x1400993c8
mov r9d, dword [r11]
test r9d, r9d
je 0x140099160
test byte [r11 + 0x10], 0x10
jne 0x1400993c8
mov r8d, dword [r11 + 4]
mov edx, reloc.WS2_32.dll_ntohs
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
jmp 0x1400993b7
lea rdx, [rbp + 0x148]
mov dword [rbp + 0x148], esi
mov rcx, rax
call fcn.14006ba40
mov eax, dword [rbp + 0x148]
add dword [rbx + 0x1f8], eax
test byte [r11 + 0xc], 0x20
jne 0x1400991aa
mov r8, qword [rbp + 0x138]
mov r9d, dword [r11 + 0x18]
mov rdx, qword [rbp - 0x20]
mov rcx, qword [rsp + 0x60]
mov r8, qword [r8 + 0x30]
call fcn.1400971d0
mov r11, qword [rsp + 0x50]
mov rax, qword [rsp + 0x78]
cmp dword [rax], 1
jne 0x14009928c
mov rax, qword [rbp + 0x138]
test byte [rax + 0xa], 2
jne 0x14009928c
mov rax, qword [rsp + 0x60]
mov ecx, 0x100
test word [rax + 0x4c], cx
jne 0x14009928c
mov r8d, dword [rbx + 0x54]
xor r9d, r9d
mov edi, dword [rdi + 0x3c]
inc r8d
mov rcx, qword [rsp + 0x70]
inc edi
mov dword [rbx + 0x54], r8d
lea edx, [r9 + 0x11]
mov dword [r11 + 4], r8d
mov dword [rsp + 0x20], edi
call fcn.140056030
mov r10, qword [rsp + 0x50]
lea r8, [rbp - 0x10]
mov rdx, qword [rbp - 0x20]
mov rcx, rbx
mov word [rbp - 0x10], reloc.WS2_32.dll_listen
mov qword [rbp - 8], rsi
mov eax, dword [r10 + 4]
mov dword [rbp - 0xc], eax
mov dword [r10], edi
movzx eax, byte [rbx + 0x200]
mov byte [r10 + 0x14], al
call fcn.140098e10
mov rax, qword [rbp - 0x20]
mov rcx, qword [rax + 0x20]
call fcn.140039fa0
mov rdx, qword [rsp + 0x50]
xor r9d, r9d
mov dword [rsp + 0x20], esi
mov rcx, qword [rdx - 0x10]
mov word [rcx + 0x42], ax
mov eax, dword [rbp - 8]
or dword [rdx + 0x10], 0x10
mov r8d, dword [rdx + 4]
mov rcx, qword [rsp + 0x70]
mov dword [rdx + 8], eax
lea edx, [r9 + 0x12]
call fcn.140056030
lea edx, [rdi - 1]
mov rdi, qword [rsp + 0x70]
mov rcx, rdi
call fcn.1400566e0
jmp 0x14009937c
mov r9d, dword [rbx + 0x54]
xor r8d, r8d
inc r9d
mov dword [rbp + 0x148], esi
mov dword [rbx + 0x54], r9d
mov rcx, rdi
mov dword [r11 + 4], r9d
lea edx, [r8 + 0x17]
mov dword [rsp + 0x20], esi
call fcn.140056030
mov dword [rsp + 0x68], eax
lea ecx, [rax + 1]
mov rax, qword [rsp + 0x50]
test byte [rax + 0x10], 8
mov dword [rax], ecx
jne 0x1400992db
mov rcx, rbx
call fcn.14006db90
mov dword [rbp + 0x148], eax
mov rax, qword [rsp + 0x50]
mov ecx, dword [rax + 0x18]
lea r8, [rbp - 0x10]
mov rdx, qword [rbp - 0x20]
mov dword [rbp - 0xc], ecx
movzx ecx, byte [rbx + 0x200]
mov byte [rax + 0x14], cl
mov rcx, rbx
mov word [rbp - 0x10], recv
mov qword [rbp - 8], rsi
call fcn.140098e10
mov rax, qword [rbp - 0x20]
mov rcx, qword [rax + 0x20]
call fcn.140039fa0
mov r10, qword [rsp + 0x50]
mov rcx, qword [r10 - 0x10]
mov word [rcx + 0x42], ax
mov eax, dword [rbp + 0x148]
test eax, eax
je 0x140099333
mov edx, eax
mov rcx, rdi
call fcn.1400566e0
mov r8d, dword [r10 + 4]
xor r9d, r9d
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea edx, [r9 + 0x10]
call fcn.140056030
mov edx, eax
mov eax, dword [rsp + 0x68]
test eax, eax
jns 0x140099359
mov eax, dword [rdi + 0x3c]
dec eax
mov rcx, qword [rdi]
cmp byte [rcx + 0x51], sil
je 0x14009936b
lea rcx, [0x140330198]
jmp 0x140099379
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
lea rcx, [rax + rcx*8]
mov dword [rcx + 4], edx
mov rax, qword [rsp + 0x60]
mov dword [rbx + 0x44], esi
mov byte [rbx + 0x1f], sil
cmp byte [rax + 0x51], sil
jne 0x14009ad67
mov rcx, qword [rbp + 0x138]
lea rdx, [rbp + 0x148]
mov dword [rbp + 0x148], esi
call fcn.14006ba40
mov edx, dword [rbp + 0x148]
sub dword [rbx + 0x1f8], edx
mov rdx, qword [rsp + 0x78]
mov rax, qword [rbp + 0x138]
mov r11, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x5c]
add r11, 0x78
inc ecx
mov qword [rsp + 0x50], r11
mov dword [rsp + 0x5c], ecx
cmp ecx, dword [rdx]
jl 0x140099122
mov rcx, qword [rax + 0x30]
mov rdx, qword [rax]
mov qword [rbp - 0x58], rcx
mov rcx, qword [rax + 0x38]
mov qword [rsp + 0x50], rcx
mov rcx, qword [rax + 0x40]
mov qword [rbp + 0xa8], rcx
movzx ecx, byte [rax + 0xa]
movzx eax, byte [rax + 0xa]
and cl, 1
and al, 9
mov qword [rbp - 0x60], rdx
mov byte [rbp + 0x148], cl
mov byte [rbp - 0x10], cl
cmp al, 1
jne 0x140099469
mov rcx, qword [rbp - 0x80]
or r8d, 0xffffffff
call fcn.1400719d0
mov rdx, qword [rbp - 0x60]
test eax, eax
jne 0x140099469
mov rax, qword [rbp + 0x138]
mov ecx, 0xfffe
xor r8d, r8d
and word [rax + 0xa], cx
mov rcx, qword [rsp + 0x60]
call fcn.14006cbb0
mov rdx, rax
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 0x138]
mov qword [rax + 0x38], rdx
mov rdx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x1400994e3
mov r9d, dword [rdx]
xor r8d, r8d
mov rdx, rax
mov rcx, rbx
call fcn.140092ce0
mov r8d, dword [rbx + 0x50]
mov rdi, rax
mov rax, qword [rbp - 0x60]
mov dword [rbp + 0x94], r8d
mov dword [rsp + 0x20], esi
lea ecx, [r8 + 1]
mov dword [rbx + 0x50], ecx
mov edx, dword [rax]
mov rax, qword [rbp - 0x80]
inc edx
mov rcx, qword [rsp + 0x70]
mov r9d, dword [rax]
add r9d, edx
mov edx, reloc.WS2_32.dll_gethostname
call fcn.140056030
mov r8, rdi
mov dword [rbp - 0x70], eax
mov rdi, qword [rsp + 0x70]
mov r9d, 0xfffffffa
mov rcx, rdi
mov edx, eax
call fcn.140056aa0
mov ecx, dword [rbp - 0x70]
mov dword [rbp + 0xa0], ecx
jmp 0x1400994ef
or eax, 0xffffffff
mov dword [rbp - 0x70], eax
mov dword [rbp + 0xa0], eax
mov rax, qword [rbp + 0x140]
cmp byte [rax], 0xc
jne 0x140099517
mov rcx, qword [rbp - 0x60]
mov edx, reloc.WS2_32.dll_gethostname
mov r8d, dword [rax + 4]
mov dword [rsp + 0x20], esi
mov r9d, dword [rcx]
mov rcx, rdi
call fcn.140056030
mov rcx, rdi
call fcn.140056400
mov ecx, eax
mov dword [rbp - 0x20], eax
mov rax, qword [rbp + 0x138]
movabs rdx, 0x7fffffffffffffff
mov r8d, ecx
mov rcx, rbx
mov qword [rax + 0x20], rdx
mov rdx, rax
call fcn.140094410
mov rdx, qword [rbp + 0x138]
cmp dword [rdx + 0xc], esi
jne 0x140099583
movsxd rax, dword [rbp - 0x70]
test eax, eax
js 0x140099583
mov rcx, qword [rdi]
cmp byte [rcx + 0x51], sil
je 0x14009956d
lea rax, [0x140330198]
jmp 0x140099579
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
lea rax, [rax + rcx*8]
or byte [rbp + 0xa4], 1
mov byte [rax], Ordinal_60
test byte [rdx + 0xa], 1
je 0x140099625
mov edi, dword [rbx + 0x50]
xor r9d, r9d
xor r8d, r8d
mov dword [rbp - 0xc], edi
mov rcx, rbx
lea eax, [rdi + 1]
mov dword [rbx + 0x50], eax
mov rdx, qword [rdx]
call fcn.140092ce0
mov rcx, qword [rsp + 0x70]
xor r9d, r9d
mov r8d, edi
mov dword [rsp + 0x20], 0
mov rsi, rax
lea edx, [r9 + 0x39]
call fcn.140056030
mov rcx, qword [rsp + 0x70]
mov r9d, 0xfffffffa
mov r8, rsi
mov edx, eax
mov edi, eax
call fcn.140056aa0
mov dword [rbp - 8], edi
mov rdi, qword [rsp + 0x70]
mov rax, qword [rdi]
mov ecx, dword [rdi + 0x3c]
dec ecx
cmp byte [rax + 0x51], 0
je 0x1400995ff
lea rax, [0x140330198]
jmp 0x14009960e
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
lea rax, [rax + rcx*8]
mov rdx, qword [rbp + 0x138]
mov cl, 3
mov dword [rbp - 0x34], ecx
xor esi, esi
mov byte [rbp - 0xf], cl
mov byte [rax + 3], 8
jmp 0x14009962d
xor al, al
mov dword [rbp - 0x34], eax
mov byte [rbp - 0xf], al
mov eax, dword [rsp + 0x6c]
mov r9, qword [rsp + 0x50]
test eax, eax
jne 0x140099764
test r9, r9
jne 0x140099764
movzx eax, byte [rbp + 0x148]
mov r9, qword [rbp - 0x80]
neg al
mov rax, qword [rdx]
mov r8, qword [rbp - 0x58]
sbb cx, cx
mov rdx, qword [rsp + 0x78]
and cx, 0x400
mov dword [rsp + 0x30], esi
mov word [rsp + 0x28], cx
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.1400ab100
mov qword [rbp + 0x130], rax
mov r9, rax
test rax, rax
je 0x140098f91
movzx ecx, word [rax + 0x30]
call fcn.14003a030
mov r10, rax
mov rax, qword [rbp + 0x138]
cmp r10, qword [rax + 0x20]
jae 0x1400996ae
mov qword [rax + 0x20], r10
cmp byte [rbp + 0x148], 0
je 0x1400996cd
movzx eax, byte [r9 + 0x38]
mov ecx, dword [rbp - 0x34]
test al, al
movzx ecx, cl
cmovne ecx, eax
mov dword [rbp - 0x34], ecx
mov byte [rbp - 0xf], cl
mov rcx, qword [rbp - 0x80]
test rcx, rcx
je 0x1400996ee
movsx eax, byte [r9 + 0x34]
cmp eax, dword [rcx]
mov dword [rbp + 0x90], eax
cmove rcx, rsi
mov qword [rbp + 0x88], rcx
mov eax, dword [rbp - 0x70]
test eax, eax
js 0x14009970b
test rcx, rcx
jne 0x14009970b
mov edx, eax
mov rcx, rdi
call fcn.140056a30
mov r9, qword [rbp + 0x130]
mov eax, dword [r9 + 0x44]
mov rcx, rbx
mov r8, qword [rbp - 0x60]
mov rdx, qword [rbp + 0x138]
mov dword [rsp + 0x40], eax
mov eax, dword [r9 + 0x40]
or r9d, 0xffffffff
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0x140]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x88]
mov qword [rsp + 0x20], rax
call fcn.140092120
mov rcx, qword [rbp + 0x130]
call fcn.1400abb30
jmp 0x14009ac18
mov dword [rbp - 0x74], esi
mov dword [rsp + 0x58], esi
test r9, r9
je 0x1400997be
mov rax, qword [rdx]
mov ecx, dword [rax]
mov r8, qword [rax + 8]
test ecx, ecx
jle 0x14009978e
lea rax, [r8 + 0x22]
dec ecx
mov word [rax], si
lea rax, [rax + 0x28]
test ecx, ecx
jg 0x140099781
mov eax, dword [r9]
mov rcx, qword [r9 + 8]
test eax, eax
jle 0x1400997ad
add rcx, 0x22
nop dword [rax]
dec eax
mov word [rcx], si
lea rcx, [rcx + 0x28]
test eax, eax
jg 0x1400997a0
cmp qword [rdx + 0x20], 0x64
jbe 0x1400997c6
mov qword [rdx + 0x20], 0x64
jmp 0x1400997c6
mov qword [rdx + 0x20], 1
mov rdx, qword [rbp - 0x80]
or r8d, 0xffffffff
mov rcx, r9
call fcn.1400719d0
test eax, eax
mov ecx, esi
mov eax, 1
cmove ecx, eax
mov dword [rbp + 0x84], ecx
mov rcx, rdi
call fcn.140056400
mov ecx, dword [rbx + 0x54]
mov dword [rbp - 0x68], eax
inc ecx
xor eax, eax
mov dword [rbp + 0x50], ecx
mov rcx, qword [rsp + 0x50]
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xe0], rax
mov qword [rbp + 0xe8], rax
mov qword [rbp + 0xf0], rax
mov rax, qword [rsp + 0x78]
mov qword [rbp + 0xc8], rax
lea rax, [rbp + 0x40]
mov qword [rbp + 0xd8], rax
mov qword [rbp + 0xc0], rbx
test rcx, rcx
je 0x140099848
mov eax, dword [rcx]
mov dword [rbp + 0x4c], eax
jmp 0x14009984b
mov dword [rbp + 0x4c], esi
mov qword [rbp + 0x58], rcx
lea rdx, [0x140071cc0]
mov rcx, qword [rbp - 0x60]
lea r8, [0x140035330]
test rcx, rcx
je 0x1400998e3
cmp dword [rcx], 0
mov rax, qword [rcx + 8]
jle 0x1400998e3
mov rbx, rax
mov edi, esi
nop dword [rax]
nop dword [rax + rax]
xor eax, eax
mov qword [rbp + 8], rdx
mov rdx, qword [rbx]
lea rcx, [rbp + 8]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xc0]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x10], r8
call fcn.140068b70
mov rax, qword [rbp - 0x60]
lea rbx, [rbx + 0x28]
inc edi
lea rdx, [0x140071cc0]
lea r8, [0x140035330]
cmp edi, dword [rax]
jl 0x140099880
mov rbx, qword [rbp + 0x130]
lea rdx, [0x140071cc0]
mov rdi, qword [rsp + 0x70]
lea r8, [0x140035330]
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x140099959
cmp dword [rax], 0
mov rcx, qword [rax + 8]
mov dword [rsp + 0x5c], esi
jle 0x140099959
mov rdi, rax
mov rbx, rcx
nop
xor eax, eax
mov qword [rbp + 8], rdx
mov rdx, qword [rbx]
lea rcx, [rbp + 8]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
lea rax, [rbp + 0xc0]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x10], r8
call fcn.140068b70
mov eax, dword [rsp + 0x5c]
lea rbx, [rbx + 0x28]
inc eax
lea rdx, [0x140071cc0]
lea r8, [0x140035330]
mov dword [rsp + 0x5c], eax
cmp eax, dword [rdi]
jl 0x140099900
mov rbx, qword [rbp + 0x130]
mov rdi, qword [rsp + 0x70]
mov rax, qword [rbp + 0xa8]
test rax, rax
je 0x1400999a0
xor ecx, ecx
mov rdx, rax
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rcx
lea rcx, [0x140071cc0]
mov qword [rbp + 8], rcx
lea rcx, [0x140035330]
mov qword [rbp + 0x10], rcx
lea rcx, [rbp + 0xc0]
mov qword [rbp + 0x30], rcx
lea rcx, [rbp + 8]
call fcn.140068b70
mov r8d, dword [rbp + 0x78]
mov r9d, esi
mov ecx, dword [rbp + 0x68]
mov dword [rbp + 0x6c], ecx
mov dword [rsp + 0x5c], esi
test r8d, r8d
jle 0x140099a94
movzx edx, word [rbp + 0xf0]
mov rcx, rsi
mov qword [rbp - 0x40], rcx
nop dword [rax + rax]
mov rax, qword [rbp + 0x70]
or dx, 8
mov word [rbp + 0xf0], dx
mov rcx, qword [rax + rcx]
mov rax, qword [rcx + 0x20]
mov qword [rbp - 0x50], rax
test rax, rax
je 0x140099a59
cmp dword [rax], 0
mov ebx, esi
mov rdi, qword [rax + 8]
jle 0x140099a59
nop dword [rax + rax]
mov rdx, qword [rdi]
lea rcx, [rbp + 8]
xor eax, eax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
lea rax, [0x140071cc0]
mov qword [rbp + 8], rax
lea rax, [0x140035330]
mov qword [rbp + 0x10], rax
lea rax, [rbp + 0xc0]
mov qword [rbp + 0x30], rax
call fcn.140068b70
mov rax, qword [rbp - 0x50]
lea rdi, [rdi + 0x28]
inc ebx
cmp ebx, dword [rax]
jl 0x140099a00
mov r8d, dword [rbp + 0x78]
movzx edx, word [rbp + 0xf0]
mov r9d, dword [rsp + 0x5c]
mov rcx, qword [rbp - 0x40]
inc r9d
add rcx, 0x18
mov dword [rsp + 0x5c], r9d
mov eax, 0xfff7
mov qword [rbp - 0x40], rcx
and dx, ax
mov word [rbp + 0xf0], dx
cmp r9d, r8d
jl 0x1400999d0
mov ecx, dword [rbp + 0x68]
mov rbx, qword [rbp + 0x130]
mov rdi, qword [rsp + 0x70]
mov eax, dword [rbx + 0x54]
mov dword [rbp + 0x54], eax
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x51], 0
jne 0x14009ad67
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x14009a6a6
mov eax, dword [rbx + 0x50]
mov r9d, ecx
mov dword [rbp + 0x44], eax
xor r8d, r8d
inc eax
mov rcx, rbx
mov dword [rbx + 0x50], eax
call fcn.140092ce0
mov r9d, dword [rbp + 0x4c]
mov edx, Ordinal_60
mov r8d, dword [rbp + 0x44]
mov rcx, rdi
mov qword [rbp - 0x40], rax
mov dword [rsp + 0x20], esi
call fcn.140056030
mov r8, qword [rbp - 0x40]
mov r9d, 0xfffffffa
mov edx, eax
mov dword [rsp + 0x68], eax
mov rcx, rdi
call fcn.140056aa0
mov eax, dword [rbx + 0x54]
mov rcx, rdi
inc eax
mov dword [rbp - 0x28], eax
inc eax
mov dword [rbp - 0x78], eax
inc eax
mov dword [rbx + 0x54], eax
call fcn.140056400
inc dword [rbx + 0x54]
mov rcx, rdi
mov dword [rbp - 0x2c], eax
mov eax, dword [rbx + 0x54]
mov dword [rsp + 0x5c], eax
call fcn.140056400
mov edx, dword [rbx + 0x54]
mov r9d, dword [rbp - 0x78]
mov dword [rbp - 0x18], eax
mov dword [rsp + 0x20], esi
lea eax, [rdx + 1]
mov dword [rbp - 0x30], eax
mov rax, qword [rsp + 0x50]
mov r8d, dword [rax]
add r8d, edx
mov dword [rbx + 0x54], r8d
mov edx, dword [rax]
add edx, r8d
lea ecx, [r8 + 1]
mov dword [rbx + 0x54], edx
xor r8d, r8d
mov dword [rbp - 0x6c], ecx
mov rcx, rdi
lea edx, [r8 + 0x17]
call fcn.140056030
mov r9d, dword [rbp - 0x28]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0x17]
call fcn.140056030
mov edx, dword [rbp - 0x30]
xor r8d, r8d
mov rcx, qword [rsp + 0x50]
mov r9d, edx
mov eax, dword [rcx]
lea ecx, [rdx - 1]
add ecx, eax
lea edx, [r8 + 0x1a]
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.140056030
mov r9d, dword [rbp - 0x18]
mov edx, reloc.WS2_32.dll_ntohs
mov r8d, dword [rsp + 0x5c]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
cmp dword [rbp + 0x84], 0
mov ecx, 0x900
mov eax, 0x100
mov r9, qword [rsp + 0x50]
cmovne ax, cx
mov r8, qword [rbp - 0x58]
mov rcx, rbx
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x30], esi
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rsi
call fcn.1400ab100
mov qword [rbp - 0x58], rax
mov rdx, rax
test rax, rax
je 0x140098f91
movsx ecx, byte [rax + 0x34]
mov rax, qword [rsp + 0x50]
mov qword [rbp - 0x50], 0xa
cmp ecx, dword [rax]
jne 0x140099c34
mov ecx, esi
mov dword [rsp + 0x6c], ecx
jmp 0x14009a07d
cmp byte [rbp + 0x148], 0
je 0x140099c51
mov rax, qword [rbp + 0x138]
lea rdx, str.DISTINCT
test byte [rax + 0xa], 1
je 0x140099c58
lea rdx, str.GROUP_BY
mov rcx, rbx
call fcn.140092da0
mov r11, qword [rsp + 0x50]
mov edx, dword [rbp + 0x68]
mov dword [rsp + 0x6c], 1
mov eax, dword [r11]
mov r8d, eax
mov dword [rsp + 0x58], eax
mov ecx, eax
mov dword [rbp - 0x38], eax
test edx, edx
jle 0x140099ca7
mov rax, qword [rbp + 0x60]
add rax, 0x10
nop dword [rax + rax]
cmp dword [rax], ecx
jl 0x140099c99
inc r8d
inc ecx
add rax, 0x20
sub rdx, 1
jne 0x140099c90
mov dword [rbp - 0x38], r8d
mov ecx, dword [rbx + 0x44]
mov r10d, dword [rbx + 0x48]
mov dword [rbp + 0x148], r10d
cmp r8d, ecx
jg 0x140099cc9
lea eax, [r8 + r10]
sub ecx, r8d
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x44], ecx
jmp 0x140099cdd
mov eax, dword [rbx + 0x54]
lea r10d, [rax + 1]
add eax, r8d
mov dword [rbx + 0x54], eax
mov dword [rbp + 0x148], r10d
lea rax, [rbx + 0x88]
mov r8d, 0xa
lea rcx, [rax + 0xc]
nop
mov edx, dword [rcx]
test edx, edx
je 0x140099d14
cmp byte [rcx - 6], 0
je 0x140099d12
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x140099d0e
movzx eax, al
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], esi
add rcx, 0x14
sub r8, 1
jne 0x140099cf0
mov byte [rsp + 0x20], r8b
xor r9d, r9d
mov r8d, r10d
mov rdx, r11
mov rcx, rbx
call fcn.140070b80
mov ecx, dword [rbp + 0x68]
mov r8d, esi
mov dword [rbp - 0x74], esi
test ecx, ecx
jle 0x140099e17
mov edx, dword [rsp + 0x58]
mov r11, rsi
mov qword [rbp - 0x48], rsi
mov rax, qword [rbp + 0x60]
cmp dword [rax + r11 + 0x10], edx
jl 0x140099dff
mov r9d, dword [rax + r11 + 0xc]
lea r8, [rbx + 0x88]
mov r10d, dword [rbp + 0x148]
mov ecx, esi
add r10d, edx
mov dword [rbp - 0x64], r9d
mov edx, dword [rax + r11 + 8]
mov rax, qword [rax + r11]
mov qword [rbp + 0xb0], rax
mov dword [rbp - 0x80], edx
nop
cmp dword [r8 + 0xc], 0
jle 0x140099daa
cmp dword [r8], edx
jne 0x140099daa
movsx eax, word [r8 + 4]
cmp eax, r9d
je 0x140099e2b
inc ecx
add r8, 0x14
cmp ecx, 0xa
jl 0x140099d90
mov rcx, qword [rbx + 0x10]
mov r8d, edx
mov rdx, qword [rbp + 0xb0]
mov dword [rsp + 0x20], r10d
call fcn.14006f350
mov eax, dword [rsp + 0x58]
mov rcx, rbx
mov r9d, dword [rbp + 0x148]
mov edx, dword [rbp - 0x80]
add r9d, eax
mov r8d, dword [rbp - 0x64]
call fcn.14006f080
mov r11, qword [rbp - 0x48]
mov edx, dword [rsp + 0x58]
mov ecx, dword [rbp + 0x68]
inc edx
mov r8d, dword [rbp - 0x74]
mov dword [rsp + 0x58], edx
inc r8d
add r11, 0x20
mov dword [rbp - 0x74], r8d
mov qword [rbp - 0x48], r11
cmp r8d, ecx
jl 0x140099d50
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140099e60
inc dword [rbx + 0x54]
mov ecx, dword [rbx + 0x54]
mov dword [rsp + 0x58], ecx
jmp 0x140099e70
mov eax, dword [rbx + 0x74]
mov rcx, rbx
mov dword [r8 + 0x10], eax
inc dword [rbx + 0x74]
mov edx, dword [r8 + 0xc]
call fcn.14006f2b0
mov r8d, dword [r8 + 0xc]
cmp r10d, r8d
je 0x140099dee
mov r9d, r10d
mov dword [rsp + 0x20], esi
mov edx, reloc.WLDAP32.dll_Ordinal_32
mov rcx, rdi
call fcn.140056030
jmp 0x140099dea
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov eax, dword [rbx + rax*4 + 0x24]
mov dword [rsp + 0x58], eax
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
mov dword [rbp - 0x80], ecx
cmp dword [rax + 0x60], ecx
jg 0x140099e8e
mov rcx, rdi
call fcn.140055f80
test eax, eax
jne 0x140099ec9
mov ecx, dword [rbp - 0x80]
inc dword [rdi + 0x3c]
mov edx, dword [rbp + 0x148]
mov r9d, dword [rsp + 0x58]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rbp - 0x38]
mov dword [rax + rcx*8 + 8], edx
mov word [rax + rcx*8], gethostbyname
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 0xc], r9d
mov qword [rax + rcx*8 + 0x10], rsi
jmp 0x140099ece
mov r9d, dword [rsp + 0x58]
mov r8d, dword [rbp + 0x44]
mov edx, WSASetLastError
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
mov edx, dword [rsp + 0x58]
test edx, edx
je 0x140099f21
movzx r8d, byte [rbx + 0x1f]
cmp r8b, 8
jae 0x140099f21
mov ecx, esi
lea rax, [rbx + 0x88]
nop
cmp dword [rax + 0xc], edx
je 0x140099f1d
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x140099f00
movzx eax, r8b
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
jmp 0x140099f21
mov byte [rax + 6], 1
mov r10d, dword [rbp - 0x38]
lea rcx, [rbx + 0x94]
mov eax, dword [rbp + 0x148]
mov r8d, 0xa
lea r9d, [r10 - 1]
add r9d, eax
nop
mov edx, dword [rcx]
cmp edx, eax
jl 0x140099f6f
cmp edx, r9d
jg 0x140099f6f
cmp byte [rcx - 6], 0
je 0x140099f6d
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x140099f63
movzx eax, al
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
mov eax, dword [rbp + 0x148]
mov byte [rcx - 6], 0
mov dword [rcx], esi
add rcx, 0x14
sub r8, 1
jne 0x140099f40
cmp r10d, dword [rbx + 0x44]
jle 0x140099f86
mov dword [rbx + 0x44], r10d
mov dword [rbx + 0x48], eax
mov rcx, qword [rbp - 0x58]
call fcn.1400abb30
mov eax, dword [rbx + 0x50]
mov dword [rbp - 0x74], eax
mov dword [rbp + 0x48], eax
inc eax
mov dword [rbx + 0x50], eax
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x140099fb1
inc dword [rbx + 0x54]
mov edx, dword [rbx + 0x54]
mov dword [rsp + 0x58], edx
jmp 0x140099fc1
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov eax, dword [rbx + rax*4 + 0x24]
mov dword [rsp + 0x58], eax
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
mov dword [rbp + 0x148], ecx
cmp dword [rax + 0x60], ecx
jg 0x140099fe5
mov rcx, rdi
call fcn.140055f80
test eax, eax
jne 0x14009a019
mov ecx, dword [rbp + 0x148]
inc dword [rdi + 0x3c]
mov edx, dword [rbp - 0x74]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x58]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rbp - 0x38]
mov dword [rax + rcx*8 + 0xc], edx
mov word [rax + rcx*8], reloc.WLDAP32.dll_Ordinal_60
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 0x10], rsi
mov r9d, dword [rbp - 0x68]
mov edx, WSAGetLastError
mov r8d, dword [rbp + 0x44]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
lea rax, [rbx + 0x88]
mov byte [rbp + 0x41], 1
lea rcx, [rax + 0xc]
mov r8d, 0xa
mov edx, dword [rcx]
test edx, edx
je 0x14009a06b
cmp byte [rcx - 6], 0
je 0x14009a069
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x14009a065
movzx eax, al
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], esi
add rcx, 0x14
sub r8, 1
jne 0x14009a047
mov ecx, dword [rsp + 0x6c]
mov rdx, qword [rbp - 0x58]
cmp dword [rbp + 0x84], 0
je 0x14009a0ee
mov rax, qword [rsp + 0x60]
test byte [rax + 0x4c], 4
jne 0x14009a0ee
test ecx, ecx
jne 0x14009a09a
cmp byte [rdx + 0x35], cl
je 0x14009a0ee
movsxd rax, dword [rbp - 0x70]
mov qword [rbp + 0x88], rsi
cmp eax, dword [rdi + 0x3c]
jge 0x14009a0ee
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
movsx edx, byte [rax + rcx*8 + 1]
lea rdi, [rax + rcx*8]
mov rax, qword [rsp + 0x70]
mov r8, qword [rdi + 0x10]
mov rcx, qword [rax]
call fcn.140056780
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov byte [rdi], 0x9f
mov rdi, qword [rsp + 0x70]
mov eax, dword [rdi + 0x3c]
dec eax
cmp dword [rbp - 0x70], eax
jne 0x14009a0ee
mov dword [rdi + 0x3c], eax
mov eax, dword [rdi + 0x3c]
lea rcx, [rbx + 0x94]
mov dword [rbp - 0x64], eax
mov r8d, 0xa
mov edx, dword [rcx]
test edx, edx
je 0x14009a125
cmp byte [rcx - 6], 0
je 0x14009a123
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x14009a11f
movzx eax, al
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], esi
add rcx, 0x14
sub r8, 1
jne 0x14009a101
cmp dword [rsp + 0x6c], r8d
je 0x14009a194
mov eax, dword [rbp + 0x44]
mov ecx, dword [rdi + 0x3c]
mov dword [rbp - 0x80], eax
mov rax, qword [rdi + 0x30]
mov dword [rbp + 0x148], ecx
cmp dword [rax + 0x60], ecx
jg 0x14009a160
mov rcx, rdi
call fcn.140055f80
test eax, eax
jne 0x14009a194
mov ecx, dword [rbp + 0x148]
inc dword [rdi + 0x3c]
mov edx, dword [rbp - 0x80]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov dword [rax + rcx*8 + 4], edx
mov edx, dword [rsp + 0x58]
mov dword [rax + rcx*8 + 8], edx
mov edx, dword [rbp - 0x74]
mov dword [rax + rcx*8 + 0xc], edx
mov word [rax + rcx*8], 0x65
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 0x10], rsi
mov rdx, qword [rsp + 0x50]
mov eax, esi
mov dword [rbp + 0x148], eax
cmp dword [rdx], 0
jle 0x14009a251
mov rcx, rsi
mov qword [rbp - 0x48], rcx
cmp dword [rsp + 0x6c], 0
je 0x14009a20f
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
mov dword [rbp - 0x80], ecx
cmp dword [rax + 0x60], ecx
jg 0x14009a1d6
mov rcx, rdi
call fcn.140055f80
test eax, eax
jne 0x14009a22a
mov ecx, dword [rbp - 0x80]
inc dword [rdi + 0x3c]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov word [rax + rcx*8], gethostbyname
mov byte [rax + rcx*8 + 3], 0
mov qword [rax + rcx*8 + 0x10], rsi
lea rdx, [rax + rcx*8]
mov eax, dword [rbp - 0x74]
mov dword [rdx + 4], eax
mov eax, dword [rbp + 0x148]
mov dword [rdx + 8], eax
add eax, dword [rbp - 0x6c]
mov dword [rdx + 0xc], eax
jmp 0x14009a22a
mov r8d, dword [rbp - 0x6c]
mov byte [rbp + 0x40], 1
add r8d, eax
mov rdx, qword [rdx + 8]
mov rdx, qword [rdx + rcx]
mov rcx, rbx
call fcn.140070990
mov eax, dword [rbp + 0x148]
mov rcx, qword [rbp - 0x48]
inc eax
mov rdx, qword [rsp + 0x50]
add rcx, 0x28
mov dword [rbp + 0x148], eax
mov qword [rbp - 0x48], rcx
cmp eax, dword [rdx]
jl 0x14009a1b1
mov rax, qword [rbp - 0x40]
test rax, rax
je 0x14009a25c
inc dword [rax]
mov eax, dword [rdx]
mov rcx, rdi
mov r9d, dword [rbp - 0x6c]
mov edx, Ordinal_46
mov r8d, dword [rbp - 0x30]
mov dword [rsp + 0x20], eax
call fcn.140056030
mov r8, qword [rbp - 0x40]
mov r9d, 0xfffffffa
mov edx, eax
mov rcx, rdi
call fcn.140056aa0
mov r8d, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
mov dword [rbp + 0x148], r8d
cmp dword [rax + 0x60], r8d
jg 0x14009a2b3
mov rcx, rdi
call fcn.140055f80
test eax, eax
jne 0x14009a2e2
mov r8d, dword [rbp + 0x148]
inc dword [rdi + 0x3c]
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov word [rax + rcx*8], Ordinal_46
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 8], esi
lea rdx, [rax + rcx*8]
lea eax, [r8 + 1]
mov qword [rdx + 0x10], rsi
mov dword [rdx + 4], eax
mov dword [rdx + 0xc], eax
mov rax, qword [rsp + 0x50]
mov edx, reloc.WLDAP32.dll_Ordinal_30
mov r9d, dword [rbp - 0x30]
mov r8d, dword [rbp - 0x6c]
mov rcx, qword [rbx + 0x10]
mov edi, dword [rax]
mov dword [rsp + 0x20], edi
call fcn.140056030
mov eax, dword [rbp - 0x6c]
lea rcx, [rbx + 0x94]
lea r8d, [rax - 1]
add r8d, edi
mov edx, dword [rcx]
cmp edx, eax
jl 0x14009a340
cmp edx, r8d
jg 0x14009a340
cmp byte [rcx - 6], 0
je 0x14009a33e
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x14009a337
movzx eax, al
mov dword [rbx + rax*4 + 0x24], edx
inc byte [rbx + 0x1f]
mov eax, dword [rbp - 0x6c]
mov byte [rcx - 6], 0
mov dword [rcx], esi
add rcx, 0x14
sub qword [rbp - 0x50], 1
jne 0x14009a314
mov r8d, dword [rbp - 0x78]
mov edx, reloc.WS2_32.dll_ntohs
mov rdi, qword [rsp + 0x70]
inc r8d
mov r9d, dword [rbp - 0x2c]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
mov r9d, dword [rbp - 0x68]
mov edx, 0x8a
mov r8d, dword [rbp - 0x78]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
mov r9d, dword [rbp - 0x18]
mov edx, reloc.WS2_32.dll_ntohs
mov r8d, dword [rsp + 0x5c]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
mov ecx, dword [rdi + 0x3c]
mov rax, qword [rdi + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov ecx, dword [rbp + 0x148]
mov edx, dword [rdi + 0x3c]
test ecx, ecx
jns 0x14009a3bb
lea ecx, [rdx - 1]
mov rax, qword [rdi]
cmp byte [rax + 0x51], 0
je 0x14009a3cd
lea rax, [0x140330198]
jmp 0x14009a3dc
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
mov rcx, rbx
lea rdx, [rbp + 0x40]
call fcn.1400988b0
mov r9d, dword [rbp - 0x28]
mov edx, reloc.WS2_32.dll_socket
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea r8d, [rdx - 0x16]
call fcn.140056030
cmp dword [rsp + 0x6c], 0
je 0x14009a426
mov r9d, dword [rbp - 0x64]
mov edx, 4
mov r8d, dword [rbp + 0x44]
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
jmp 0x14009a47e
mov rcx, qword [rbp - 0x58]
call fcn.1400abb30
movsxd rax, dword [rsp + 0x68]
cmp eax, dword [rdi + 0x3c]
jge 0x14009a47e
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
movsx edx, byte [rax + rcx*8 + 1]
lea rdi, [rax + rcx*8]
mov rax, qword [rsp + 0x70]
mov r8, qword [rdi + 0x10]
mov rcx, qword [rax]
call fcn.140056780
xor eax, eax
mov qword [rdi], rax
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rax
mov byte [rdi], 0x9f
mov rdi, qword [rsp + 0x70]
mov eax, dword [rdi + 0x3c]
dec eax
cmp dword [rsp + 0x68], eax
jne 0x14009a47e
mov dword [rdi + 0x3c], eax
mov r8d, dword [rbp - 0x78]
mov edx, reloc.WS2_32.dll_ntohs
mov r9d, dword [rbp - 0x2c]
inc r8d
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140056030
mov r9d, dword [rbp - 0x68]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0xe]
call fcn.140056030
mov eax, dword [rdi + 0x3c]
mov edx, reloc.WS2_32.dll_socket
mov r9d, dword [rbp - 0x78]
mov rcx, rdi
mov dword [rbp - 0x64], eax
mov dword [rsp + 0x20], esi
lea r8d, [rdx - 0x16]
call fcn.140056030
mov r8d, dword [rbp - 0x78]
xor r9d, r9d
inc r8d
mov dword [rsp + 0x20], esi
mov rcx, rdi
lea edx, [r9 + 0x10]
call fcn.140056030
mov r10, qword [rdi + 0x30]
mov r9, qword [r10 + 0x80]
test r9, r9
je 0x14009a50a
or eax, 0xffffffff
sub eax, dword [rbp - 0x2c]
movsxd rcx, eax
mov eax, dword [rdi + 0x3c]
mov dword [r9 + rcx*4], eax
mov eax, dword [rdi + 0x3c]
mov edx, 0x8a
mov r8d, dword [rbp - 0x28]
dec eax
mov dword [r10 + 0x64], eax
mov rcx, rdi
mov eax, dword [rdi + 0x3c]
mov dword [rbp - 0x80], eax
mov dword [rsp + 0x20], esi
lea r9d, [rax + 2]
call fcn.140056030
mov r8d, dword [rbp - 0x78]
xor r9d, r9d
inc r8d
mov dword [rsp + 0x20], esi
mov rcx, rdi
lea edx, [r9 + 0x10]
call fcn.140056030
cmp dword [rbp + 0x78], 0
mov r10, qword [rbx + 0x10]
mov qword [rbp - 0x50], r10
mov dword [rbp + 0x148], esi
jle 0x14009a5d3
mov rbx, qword [rbp + 0x70]
add rbx, 0x10
nop dword [rax + rax]
mov rax, qword [rbx - 0x10]
mov rcx, qword [rax + 0x20]
test rcx, rcx
je 0x14009a582
mov r9d, dword [rcx]
jmp 0x14009a585
mov r9d, esi
mov r8d, dword [rbx]
mov edx, 0x91
mov rdi, qword [rbx - 8]
mov rcx, r10
mov dword [rsp + 0x20], esi
call fcn.140056030
mov rcx, qword [rbp - 0x50]
mov r9d, 0xfffffffb
mov r8, rdi
mov edx, eax
call fcn.140056aa0
mov edx, dword [rbp + 0x148]
add rbx, 0x18
mov r10, qword [rbp - 0x50]
inc edx
mov dword [rbp + 0x148], edx
cmp edx, dword [rbp + 0x78]
jl 0x14009a570
mov rbx, qword [rbp + 0x130]
mov edi, dword [rbp - 0x80]
mov r9d, reloc.WS2_32.dll_recv
mov rdx, qword [rbp + 0xa8]
inc edi
mov r8d, edi
mov rcx, rbx
call fcn.140071340
mov eax, dword [rbp - 0x64]
or r9d, 0xffffffff
mov dword [rsp + 0x40], eax
mov rcx, rbx
mov rax, qword [rbp + 0x140]
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x88]
mov qword [rsp + 0x20], rax
mov rax, qword [rbp + 0x138]
mov rdx, rax
mov r8, qword [rax]
call fcn.140092120
mov r8d, dword [rbp - 0x78]
xor r9d, r9d
mov rdi, qword [rsp + 0x70]
inc r8d
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea edx, [r9 + 0x10]
call fcn.140056030
mov r10, qword [rdi + 0x30]
mov r9, qword [r10 + 0x80]
test r9, r9
je 0x14009a674
or eax, 0xffffffff
sub eax, dword [rbp - 0x18]
movsxd rcx, eax
mov eax, dword [rdi + 0x3c]
mov dword [r9 + rcx*4], eax
mov eax, dword [rdi + 0x3c]
lea rdx, [rbp + 0x40]
dec eax
mov rcx, rbx
mov dword [r10 + 0x64], eax
call fcn.140098710
mov r8d, dword [rsp + 0x5c]
xor r9d, r9d
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea edx, [r9 + 0x10]
call fcn.140056030
jmp 0x14009abf0
mov rdx, qword [rbp + 0x138]
mov qword [rbp - 0x48], rsi
cmp qword [rdx + 0x30], 0
jne 0x14009a9c8
mov rax, qword [rdx]
cmp dword [rax], 1
jne 0x14009a9c8
mov r10, qword [rdx + 0x28]
cmp dword [r10], 1
jne 0x14009a9c8
cmp qword [r10 + 0x30], 0
jne 0x14009a9c8
mov r10, qword [r10 + 0x28]
mov rax, qword [rax + 8]
mov qword [rbp - 0x40], r10
test byte [r10 + 0x46], 0x10
mov r9, qword [rax]
jne 0x14009a9c8
cmp byte [r9], 0x9b
jne 0x14009a9c8
test r8d, r8d
je 0x14009a9c8
mov rax, qword [rbp + 0x70]
mov rcx, qword [rax + 8]
mov eax, 0x100
test word [rcx + 2], ax
je 0x14009a9c8
test byte [r9 + 4], 0x10
jne 0x14009a9c8
mov r8, qword [r10 + 0x68]
mov ecx, 0xfff0bdc0
mov rax, qword [rbx]
mov dword [rbp + 0x130], ecx
test r8, r8
je 0x14009a77e
movsxd rdx, dword [rax + 0x28]
mov ecx, esi
mov dword [rbp + 0x130], ecx
test edx, edx
jle 0x14009a77e
mov rax, qword [rax + 0x20]
mov r9, rdx
add rax, 0x18
mov rdx, rsi
cmp qword [rax], r8
je 0x14009a778
inc ecx
inc rdx
add rax, 0x20
cmp rdx, r9
jl 0x14009a765
mov dword [rbp + 0x130], ecx
mov eax, dword [rbx + 0x50]
mov r11, rbx
mov dword [rbp + 0x148], eax
inc eax
mov dword [rbx + 0x50], eax
mov eax, dword [r10 + 0x38]
mov dword [rsp + 0x68], eax
mov rax, qword [rbx + 0x1c0]
test rax, rax
mov qword [rbp - 0x58], rsi
mov qword [rsp + 0x50], rsi
cmovne r11, rax
mov eax, dword [r11 + 0x16c]
bt eax, ecx
jb 0x14009a7fb
bts eax, ecx
movsxd r9, ecx
mov dword [r11 + 0x16c], eax
mov r8, r9
mov rax, qword [r11]
shl r8, 5
mov rdx, qword [rax + 0x20]
mov rax, qword [r8 + rdx + 0x18]
mov edx, dword [rax]
mov dword [r11 + r9*4 + 0x170], edx
cmp ecx, 1
jne 0x14009a7fb
mov rcx, r11
call fcn.14007d350
mov ecx, dword [rbp + 0x130]
mov r10, qword [rbp - 0x40]
mov rax, qword [r10]
mov edx, ecx
mov r8d, dword [r10 + 0x38]
mov rcx, rbx
xor r9d, r9d
mov qword [rsp + 0x20], rax
call fcn.140076350
mov r8, qword [rbp - 0x40]
test byte [r8 + 0x46], 0x20
je 0x14009a849
mov rcx, qword [r8 + 0x10]
mov qword [rsp + 0x50], rcx
test rcx, rcx
je 0x14009a84c
nop dword [rax]
mov eax, dword [rcx + 0x64]
and al, 3
cmp al, 2
je 0x14009a842
mov rcx, qword [rcx + 0x28]
test rcx, rcx
jne 0x14009a830
mov qword [rsp + 0x50], rcx
jmp 0x14009a84c
mov rcx, rsi
mov rax, qword [r8 + 0x10]
test rax, rax
je 0x14009a889
test byte [rax + 0x64], 4
jne 0x14009a87b
movzx edx, word [rax + 0x5c]
cmp dx, word [r8 + 0x44]
jge 0x14009a87b
cmp qword [rax + 0x48], 0
jne 0x14009a87b
test rcx, rcx
je 0x14009a878
cmp dx, word [rcx + 0x5c]
jge 0x14009a87b
mov rcx, rax
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x14009a855
mov qword [rsp + 0x50], rcx
test rcx, rcx
je 0x14009a8a4
mov eax, dword [rcx + 0x58]
mov rdx, rcx
mov rcx, rbx
mov dword [rsp + 0x68], eax
call fcn.14007de40
mov qword [rbp - 0x58], rax
mov ecx, dword [rbp + 0x130]
mov edx, gethostname
mov r9d, dword [rsp + 0x68]
mov r8d, dword [rbp + 0x148]
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.140056030
mov r8, qword [rdi + 8]
mov rcx, qword [rdi]
test r8, r8
je 0x14009a911
cmp byte [rcx + 0x51], 0
jne 0x14009a911
test eax, eax
jns 0x14009a8e2
mov eax, dword [rdi + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.140056780
mov qword [rdi + 0x10], rsi
mov dword [rdi + 0x10], 1
mov byte [rdi + 1], 0xf2
mov rdi, qword [rsp + 0x70]
jmp 0x14009a91f
mov edx, 0xfffffff2
lea r8d, [rdx + 0xf]
call fcn.140056780
mov rax, qword [rbp - 0x58]
test rax, rax
je 0x14009a978
mov r8, qword [rdi + 8]
mov rcx, qword [rdi]
test r8, r8
je 0x14009a96b
cmp byte [rcx + 0x51], 0
jne 0x14009a96b
mov eax, dword [rdi + 0x3c]
dec eax
cdqe
lea rdx, [rax + rax*2]
lea rdi, [r8 + rdx*8]
movsx edx, byte [r8 + rdx*8 + 1]
mov r8, qword [rdi + 0x10]
call fcn.140056780
mov rax, qword [rbp - 0x58]
mov qword [rdi + 0x10], rax
mov byte [rdi + 1], 0xfa
mov rdi, qword [rsp + 0x70]
jmp 0x14009a978
mov r8, rax
mov edx, 0xfffffffa
call fcn.140056780
mov rax, qword [rbp + 0x70]
mov edx, reloc.WLDAP32.dll_Ordinal_50
mov r8d, dword [rbp + 0x148]
mov rcx, rdi
mov dword [rsp + 0x20], esi
mov r9d, dword [rax + 0x10]
call fcn.140056030
mov r8d, dword [rbp + 0x148]
xor r9d, r9d
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea edx, [r9 + 0x3d]
call fcn.140056030
mov r8, qword [rsp + 0x50]
mov rcx, rbx
mov rdx, qword [rbp - 0x40]
call fcn.140098d50
jmp 0x14009ab88
cmp qword [rdx + 0x40], 0
mov qword [rsp + 0x50], rsi
mov byte [rbp + 0x130], 0
jne 0x14009aae4
mov edx, esi
mov rax, rsi
mov dword [rbp + 0x148], edx
mov qword [rsp + 0x50], rax
cmp r8d, 1
jne 0x14009aa93
mov rax, qword [rbp + 0x70]
mov r8, qword [rax]
mov qword [rbp + 0xb0], r8
mov rax, qword [r8 + 0x20]
mov qword [rbp + 0x130], rax
test rax, rax
je 0x14009aa90
cmp dword [rax], 1
jne 0x14009aa90
mov rax, qword [rax + 8]
mov rcx, qword [rax]
cmp byte [rcx], 0x9c
jne 0x14009aa90
mov rcx, qword [r8 + 8]
lea rdx, [0x14029b29c]
call fcn.140038f60
test eax, eax
jne 0x14009aa56
mov rax, qword [rbp + 0x130]
mov ecx, 1
mov dword [rbp + 0x148], ecx
mov byte [rbp + 0x130], cl
jmp 0x14009aa9d
mov rcx, qword [rbp + 0xb0]
lea rdx, [0x14029b298]
mov rcx, qword [rcx + 8]
call fcn.140038f60
test eax, eax
jne 0x14009aa8a
mov rax, qword [rbp + 0x130]
mov edx, 2
mov dword [rbp + 0x148], edx
mov qword [rsp + 0x50], rax
jmp 0x14009aa93
mov edx, dword [rbp + 0x148]
mov rax, rsi
mov byte [rbp + 0x130], dl
test dl, dl
je 0x14009aae4
mov rcx, qword [rsp + 0x60]
xor r8d, r8d
mov rdx, rax
call fcn.14006cbb0
mov qword [rsp + 0x50], rax
mov rdx, rax
mov qword [rbp - 0x48], rax
test rax, rax
je 0x14009aae4
mov rax, qword [rsp + 0x60]
cmp byte [rax + 0x51], 0
jne 0x14009aae4
mov rax, qword [rdx + 8]
cmp byte [rbp + 0x148], 1
setne cl
mov byte [rax + 0x18], cl
mov rax, qword [rdx + 8]
mov rcx, qword [rax]
mov byte [rcx], 0x9a
lea rdx, [rbp + 0x40]
mov rcx, rbx
call fcn.140098710
movzx eax, byte [rbp + 0x130]
mov rcx, rbx
mov r9, qword [rsp + 0x50]
mov r8, qword [rbp - 0x58]
mov rdx, qword [rsp + 0x78]
mov dword [rsp + 0x30], esi
mov word [rsp + 0x28], ax
mov qword [rsp + 0x20], rsi
call fcn.1400ab100
mov qword [rbp + 0x130], rax
test rax, rax
jne 0x14009ab3d
mov rdi, qword [rsp + 0x60]
mov rdx, qword [rbp - 0x48]
mov rcx, rdi
call fcn.14006d5b0
jmp 0x14009ad6a
lea rdx, [rbp + 0x40]
mov rcx, rbx
call fcn.1400988b0
mov rax, qword [rbp + 0x130]
cmp byte [rax + 0x34], 0
jle 0x14009ab74
mov r9d, dword [rax + 0x44]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x20], esi
lea edx, [r8 + 0xe]
call fcn.140056030
mov rax, qword [rbp + 0x130]
mov rcx, rax
call fcn.1400abb30
lea rdx, [rbp + 0x40]
mov rcx, rbx
call fcn.140098810
mov r8d, dword [rbp - 0x68]
mov r9d, reloc.WS2_32.dll_recv
mov rdx, qword [rbp + 0xa8]
mov rcx, rbx
mov qword [rbp + 0x88], rsi
call fcn.140071340
mov eax, dword [rbp - 0x68]
or r9d, 0xffffffff
mov dword [rsp + 0x40], eax
mov rcx, rbx
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0x140]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x138]
mov qword [rsp + 0x28], rsi
mov rdx, rax
mov qword [rsp + 0x20], rsi
mov r8, qword [rax]
call fcn.140092120
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rsp + 0x60]
call fcn.14006d5b0
mov rdx, qword [rdi + 0x30]
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x14009ac10
or eax, 0xffffffff
sub eax, dword [rbp - 0x68]
movsxd rcx, eax
mov eax, dword [rdi + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rdi + 0x3c]
dec eax
mov dword [rdx + 0x64], eax
cmp byte [rbp - 0x34], 3
jne 0x14009ac74
cmp byte [rbx + 0x1ee], 2
jne 0x14009ac74
mov rcx, qword [rbx]
lea r8, str.DISTINCT
mov rsi, qword [rbx + 0x10]
lea rdx, str.USE_TEMP_B_TREE_FOR__s
call fcn.140037e60
mov r8d, dword [rbx + 0x1fc]
xor r9d, r9d
mov edx, 0xa0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov rdi, rax
call fcn.140056030
or r9d, 0xffffffff
mov r8, rdi
mov edx, eax
mov rcx, rsi
call fcn.140056aa0
cmp qword [rbp + 0x88], 0
je 0x14009ad13
cmp byte [rbx + 0x1ee], 2
jne 0x14009acea
cmp dword [rbp + 0x90], 0
lea rax, str.RIGHT_PART_OF_ORDER_BY
mov rcx, qword [rbx]
lea r8, str.ORDER_BY
mov rsi, qword [rbx + 0x10]
lea rdx, str.USE_TEMP_B_TREE_FOR__s
cmovg r8, rax
call fcn.140037e60
mov r8d, dword [rbx + 0x1fc]
xor r9d, r9d
mov edx, 0xa0
mov dword [rsp + 0x20], 0
mov rcx, rsi
mov rdi, rax
call fcn.140056030
or r9d, 0xffffffff
mov r8, rdi
mov edx, eax
mov rcx, rsi
call fcn.140056aa0
mov rax, qword [rbp + 0x140]
lea r8, [rbp + 0x88]
mov rdx, qword [rbp + 0x138]
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov rax, qword [rbp - 0x60]
mov r9d, dword [rax]
call fcn.140092ef0
mov rdx, qword [rsp + 0x70]
mov r9, qword [rdx + 0x30]
mov r8, qword [r9 + 0x80]
test r8, r8
je 0x14009ad39
or rax, 0xffffffffffffffff
sub eax, dword [rbp - 0x20]
movsxd rcx, eax
mov eax, dword [rdx + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [rdx + 0x3c]
mov rdi, qword [rsp + 0x60]
dec eax
mov dword [r9 + 0x64], eax
mov eax, 0
cmp dword [rbx + 0x4c], 0
setg al
mov dword [rbp + 0xb8], eax
jmp 0x14009ad6a
mov rdi, rax
jmp 0x14009ad6f
mov rdi, qword [rsp + 0x60]
jmp 0x14009ad6f
mov rdi, rax
mov r9, qword [rsp + 0x78]
mov rsi, qword [rbp + 0xb8]
mov ecx, dword [rbp + 0x80]
mov dword [rbx + 0x1fc], ecx
test esi, esi
jne 0x14009ada1
mov rax, qword [rbp + 0x140]
cmp byte [rax], 9
jne 0x14009ada1
mov r8, qword [rbp - 0x60]
mov rdx, r9
mov rcx, rbx
call fcn.140093940
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x14009adf1
cmp qword [rdi + 0x328], 0
je 0x14009adc1
mov rdx, rcx
mov rcx, rdi
call fcn.140035e30
jmp 0x14009adf1
cmp rcx, qword [rdi + 0x170]
jb 0x14009adec
cmp rcx, qword [rdi + 0x178]
jae 0x14009adec
mov rax, qword [rdi + 0x168]
mov qword [rcx], rax
dec dword [rdi + 0x154]
mov qword [rdi + 0x168], rcx
jmp 0x14009adf1
call fcn.140035dc0
mov rdx, qword [rbp + 0x70]
test rdx, rdx
je 0x14009ae5e
cmp qword [rdi + 0x328], 0
je 0x14009ae1a
mov rcx, rdi
call fcn.140035e30
mov eax, esi
add rsp, 0x208
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, qword [rbp + 0x70]
cmp rdx, qword [rdi + 0x170]
jb 0x14009ae55
cmp rdx, qword [rdi + 0x178]
jae 0x14009ae55
mov rax, qword [rdi + 0x168]
mov qword [rdx], rax
mov eax, esi
dec dword [rdi + 0x154]
mov qword [rdi + 0x168], rdx
add rsp, 0x208
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, qword [rbp + 0x70]
call fcn.140035dc0
mov eax, esi
add rsp, 0x208
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov eax, ecx
add rsp, 0x208
pop rdi
pop rsi
pop rbx
pop rbp
ret