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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2e0
mov r9, qword [rdx + 0x20]
mov r14, rcx
mov rax, qword [rdx]
mov r8, qword [rcx + 8]
movaps xmmword [rsp + 0x2d0], xmm6
movss xmm6, dword [0x14023edc8]
mov qword [rsp + 0x78], rdx
mov qword [r8 + 0x180], rax
mov qword [rcx + 0xd0], rdx
mov qword [rcx + 0xd8], r9
mov eax, dword [r9 + 0x10]
mov dword [rcx + 0xe0], eax
mov eax, dword [r9 + 0x18]
mov dword [rcx + 0xe4], eax
xor eax, eax
xor r8b, r8b
mov byte [rsp + 0x40], 0
mov byte [rsp + 0x30], r8b
mov qword [rsp + 0x80], rax
nop word [rax + rax]
mov rdi, qword [r14 + 0xd8]
mov eax, dword [r14 + 0xe4]
movzx ebp, r8b
movzx edx, r8b
shl edx, 3
mov ecx, edx
mov qword [rsp + 0x60], rbp
mov r15d, dword [rdi + rbp*4 + 0x2c]
xor edx, edx
shr eax, cl
mov ebx, edx
movzx r13d, al
mov r9d, edx
mov eax, dword [rdi + 0x14]
mov r12d, r13d
shr rax, cl
mov r11d, edx
movzx eax, al
mov ecx, edx
shl rax, 5
mov esi, edx
add rax, 0x4c
mov dword [rsp + 0x3c], r13d
add rax, rdi
mov dword [rsp + 0x34], r15d
mov edi, dword [rdi + rbp*4 + 0x3c]
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x4c], edx
mov dword [rsp + 0x50], edx
test r13d, r13d
je 0x140029bc9
nop dword [rax + rax]
mov r8d, esi
shl r8, 5
add r8, rax
mov edx, dword [r8 + 8]
test edx, 0x1c00
je 0x140029ac7
mov eax, edx
mov ecx, edx
shr ecx, 0xd
and ecx, 3
shr eax, 0xc
test al, 1
mov eax, 0
cmovne ecx, eax
bt r11d, ecx
jb 0x14002ab7f
bts r11d, ecx
mov qword [rsp + rcx*8 + 0x98], r8
mov ecx, dword [rsp + 0x50]
test edx, 0x40008
je 0x140029ae2
mov eax, r9d
inc r9d
mov dword [rsp + 0x4c], r9d
mov qword [rsp + rax*8 + 0xd0], r8
mov eax, edx
shr eax, 0x10
test al, 1
je 0x140029afb
mov eax, ecx
inc ecx
mov dword [rsp + 0x50], ecx
mov qword [rsp + rax*8 + 0x1d0], r8
mov eax, edx
shr eax, 2
test al, 1
jne 0x140029b14
or dword [r8 + 8], 0x100
dec r12d
jmp 0x140029bb3
mov eax, edx
shr eax, 0xa
test al, 1
jne 0x140029bb3
mov rax, qword [r14 + 0x50]
mov ecx, dword [r8]
movzx r9d, byte [rcx + rax]
movzx eax, byte [r8 + 0xe]
cmp al, 0xff
je 0x140029b80
mov ecx, eax
mov r10d, 1
shl r10d, cl
cmp r9d, eax
jne 0x140029b72
bts edx, 8
mov dword [r8 + 8], edx
shr edx, 1
test dl, 1
je 0x140029b65
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rbp*4 + 0x10]
bts eax, r9d
mov dword [rcx + rbp*4 + 0x10], eax
dec r12d
or r15d, r10d
mov dword [rsp + 0x34], r15d
jmp 0x140029bae
mov rax, qword [r14 + 0x58]
mov ecx, dword [rax + rbp*4]
and ecx, r10d
or ebx, ecx
jmp 0x140029bae
cmp r9d, 0xff
je 0x140029bae
mov ecx, r9d
mov r10d, 1
shl r10d, cl
mov eax, r15d
mov ecx, dword [r8 + 0x10]
not eax
and ecx, eax
test r10d, ecx
je 0x140029bab
mov byte [r8 + 0xe], r9b
jmp 0x140029b46
or ebx, r10d
mov r9d, dword [rsp + 0x4c]
mov rax, qword [rsp + 0x68]
inc esi
mov ecx, dword [rsp + 0x50]
cmp esi, r13d
jb 0x140029a80
xor edx, edx
mov dword [rsp + 0x58], edx
test r11d, r11d
je 0x140029dd4
lea eax, [r11 + 1]
test r11d, eax
jne 0x14002ab7f
not r11d
bsf ecx, r11d
mov r11, qword [rsp + 0x98]
mov dword [rsp + 0x58], ecx
mov eax, dword [r11 + 8]
shr eax, 0xa
test al, 1
je 0x140029dd4
mov eax, dword [rsp + 0x34]
mov r13d, ebx
or r13d, dword [r14 + rbp*4 + 0x18]
not eax
and r13d, eax
mov dword [rsp + 0x38], edx
mov r8d, edx
mov r15d, 0xffffffff
test ecx, ecx
je 0x140029c60
mov r10, qword [r14 + 0x50]
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0x98]
mov r9d, ecx
nop
mov rax, qword [r8]
lea rdx, [rdx + 4]
lea r8, [r8 + 8]
mov ecx, dword [rax]
movzx eax, byte [rcx + r10]
mov dword [rdx - 4], eax
sub r9, 1
jne 0x140029c40
mov r8d, dword [rsp + 0x38]
mov r9d, dword [r11 + 0x10]
mov eax, r9d
mov dword [rsp + 0x54], r9d
test r9d, r9d
je 0x14002ab86
mov ebp, dword [rsp + 0x58]
nop dword [rax]
bsf edx, eax
lea ecx, [rax - 1]
and eax, ecx
mov dword [rsp + 0x48], edx
bt r9d, edx
jae 0x140029d27
mov esi, reloc.WS2_32.dll_ntohs
test ebp, ebp
je 0x140029d0c
mov r11d, edx
mov r10d, edx
neg r11d
bt r13d, r10d
jae 0x140029d1d
lea ecx, [r11 + r10]
mov r9d, ecx
mov rcx, qword [rsp + rcx*8 + 0x98]
mov r8d, dword [rcx]
mov rcx, qword [r14]
mov rdx, qword [rcx + 0x140]
mov rcx, qword [rdx + r8*8]
movzx edx, byte [rcx + 0x4a]
xor ecx, ecx
cmp edx, r10d
mov r8d, ecx
mov edx, 2
sete r8b
cmp dword [rsp + r9*4 + 0xb8], r10d
cmove ecx, edx
inc r10d
add esi, ecx
add esi, r8d
lea ecx, [r11 + r10]
cmp ecx, ebp
jb 0x140029ca8
mov edx, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x38]
mov r9d, dword [rsp + 0x54]
cmp esi, r8d
jbe 0x140029d27
mov r8d, esi
mov dword [rsp + 0x38], esi
mov r15d, edx
jmp 0x140029d27
mov r8d, dword [rsp + 0x38]
mov r9d, dword [rsp + 0x54]
test eax, eax
jne 0x140029c80
mov rbp, qword [rsp + 0x60]
cmp r15d, 0xffffffff
je 0x14002ab86
mov ecx, dword [rsp + 0x58]
test ecx, ecx
je 0x140029dcd
mov edi, dword [rsp + 0x34]
lea r10, [rsp + 0x98]
mov r11d, ecx
nop dword [rax]
mov r8, qword [r10]
mov ecx, r15d
mov rax, qword [r14 + 0x50]
mov edx, 1
shl edx, cl
mov ecx, dword [r8]
movzx r9d, byte [rcx + rax]
mov byte [r8 + 0xe], r15b
cmp r9d, r15d
jne 0x140029da9
mov eax, dword [r8 + 8]
bts eax, 8
mov dword [r8 + 8], eax
shr eax, 1
test al, 1
je 0x140029da4
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rbp*4 + 0x10]
bts eax, r9d
mov dword [rcx + rbp*4 + 0x10], eax
dec r12d
jmp 0x140029db4
mov rax, qword [r14 + 0x58]
mov ecx, dword [rax + rbp*4]
and ecx, edx
or ebx, ecx
or edx, edi
inc r15d
add r10, 8
mov edi, edx
sub r11, 1
jne 0x140029d60
mov edi, dword [rsp + 0x44]
mov dword [rsp + 0x34], edx
mov r13d, dword [rsp + 0x3c]
xor edx, edx
test r12d, r12d
je 0x14002a0e5
mov rax, qword [r14 + 0x58]
mov ecx, ebx
not ecx
mov dword [rsp + 0x48], edx
mov r10d, dword [rax + rbp*4]
mov eax, edx
and r10d, ecx
mov dword [rsp + 0x38], r10d
test r13d, r13d
je 0x14002a0e5
mov r15d, eax
shl r15, 5
add r15, qword [rsp + 0x68]
mov ecx, dword [r15 + 8]
mov eax, ecx
shr eax, 8
test al, 1
jne 0x14002a0d2
cmp byte [rsp + 0x40], 0
mov r8d, dword [r15]
mov rax, qword [r14 + 0x50]
movzx r9d, byte [r8 + rax]
jne 0x140029f49
shr ecx, 4
test cl, 1
je 0x140029f49
cmp r9d, 0xff
jne 0x140029f49
mov ecx, dword [r15 + 0x18]
test ecx, ecx
je 0x140029f49
lea eax, [rcx - 1]
test ecx, eax
jne 0x140029f49
mov rdx, qword [r14]
bsf esi, ecx
mov rax, qword [rdx + 0x140]
movzx ecx, byte [r15 + 0xd]
mov qword [rsp + 0x60], rdx
mov dword [rsp + 0x44], ecx
mov r13, qword [rax + r8*8]
mov rax, qword [r13 + 8]
mov r11d, dword [rax + 8]
cmp ecx, r11d
ja 0x140029f44
shr rsi, 2
add rsi, 4
shl rsi, 4
add rsi, qword [rsp + 0x78]
cmp qword [r13 + 0x18], 0
jne 0x140029ee5
movzx r9d, byte [rax + 0xc]
lea rcx, [rdx + 0x1f8]
mov edx, dword [rdx + 0x1dc]
mov r8d, r11d
mov dword [rsp + 0x20], 1
call fcn.1400316c0
or dword [r13 + 0x24], 0x10
mov rdx, qword [rsp + 0x60]
mov ecx, dword [rsp + 0x44]
mov r10d, dword [rsp + 0x38]
mov qword [r13 + 0x18], rax
mov eax, dword [rdx + 0x1d8]
xor edx, edx
shr eax, 3
and eax, 0x1f
shl ecx, 0x18
shl eax, 3
or eax, 0x2002
mov qword [rsp + 0x90], rdx
mov dword [rsp + 0x88], eax
mov eax, dword [r13 + 4]
mov dword [rsp + 0x8c], eax
movups xmm0, xmmword [rsp + 0x88]
mov byte [rsp + 0x40], 1
movups xmmword [rsi], xmm0
and dword [rsi], 0xffffff
or dword [rsi], ecx
or dword [r15 + 8], 0x100
dec r12d
mov dword [r15 + 0x18], edx
jmp 0x14002a0cd
mov r13d, dword [rsp + 0x3c]
cmp byte [r15 + 0xe], 0xff
jne 0x14002a0d2
mov rax, qword [r14]
mov edx, ebx
or edx, dword [rsp + 0x34]
not edx
and edx, dword [r15 + 0x10]
mov rcx, qword [rax + 0x140]
mov r11, qword [rcx + r8*8]
movzx eax, byte [r11 + 0x4a]
cmp al, 0xff
je 0x140029f7f
bt edx, eax
mov r13d, eax
jb 0x140029f8c
mov eax, edx
and eax, dword [r11 + 0x38]
cmovne edx, eax
bsf r13d, edx
mov ecx, r13d
mov byte [r15 + 0xe], r13b
mov esi, 1
shl esi, cl
or dword [rsp + 0x34], esi
mov eax, esi
and eax, r10d
or ebx, eax
cmp r9d, 0xff
je 0x14002a065
mov ecx, r9d
mov edx, 1
shl edx, cl
mov eax, edx
or ebx, edx
not eax
and r10d, eax
mov dword [rsp + 0x38], r10d
test r10d, esi
jne 0x14002a0c5
cmp r13d, r9d
jne 0x140029fde
lea rdx, [rbp + 4]
jmp 0x14002a043
mov rax, qword [r14 + 0x50]
mov r10d, edx
bts r10d, r13d
mov r11d, r8d
mov byte [r8 + rax], r13b
mov rax, qword [r14 + rbp*8 + 0x60]
mov dword [rax + r9*4], 0xffffffff
mov rax, qword [r14 + rbp*8 + 0x60]
mov dword [rax + r13*4], r8d
mov r8d, r13d
mov rax, qword [r14 + 0x58]
xor dword [rax + rbp*4], r10d
test dword [rax + rbp*4 + 0x10], edx
mov eax, 0
mov rcx, qword [r14 + 0x58]
mov edx, r11d
cmovne eax, r10d
xor dword [rcx + rbp*4 + 0x10], eax
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x40]
lea rdx, [rbp + 4]
test eax, eax
jne 0x14002ab5c
mov r10d, dword [rsp + 0x38]
mov eax, dword [r15 + 8]
bts eax, 8
mov dword [r15 + 8], eax
shr eax, 1
test al, 1
je 0x14002a0c2
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rdx*4]
bts eax, r13d
mov dword [rcx + rdx*4], eax
jmp 0x14002a0c2
test eax, eax
jne 0x14002a0c5
mov rax, qword [r14 + 0x50]
mov r11d, r8d
mov edx, r11d
mov byte [r8 + rax], r13b
mov rax, qword [r14 + rbp*8 + 0x60]
mov dword [rax + r13*4], r8d
mov r8d, r13d
mov rax, qword [r14 + 0x58]
or dword [rax + rbp*4], esi
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x50]
test eax, eax
jne 0x14002ab5c
mov eax, dword [r15 + 8]
bts eax, 8
mov dword [r15 + 8], eax
shr eax, 1
test al, 1
je 0x14002a0bd
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rbp*4 + 0x10]
bts eax, r13d
mov dword [rcx + rbp*4 + 0x10], eax
mov r10d, dword [rsp + 0x38]
dec r12d
or r10d, esi
mov dword [rsp + 0x38], r10d
mov r13d, dword [rsp + 0x3c]
mov eax, dword [rsp + 0x48]
inc eax
mov dword [rsp + 0x48], eax
cmp eax, r13d
jb 0x140029e00
mov ecx, dword [rsp + 0x34]
mov eax, edi
or eax, ecx
mov dword [rsp + 0x38], eax
test ebx, ebx
je 0x14002a246
mov rax, qword [r14 + 0x58]
mov r15d, ebx
or r15d, dword [rax + rbp*4]
or r15d, edi
or r15d, ecx
not r15d
and r15d, dword [r14 + rbp*4 + 0x18]
nop dword [rax]
nop word [rax + rax]
mov r8, qword [r14 + 0x58]
lea eax, [rbx - 1]
bsf esi, ebx
and ebx, eax
mov eax, dword [r8 + rbp*4]
bt eax, esi
jae 0x14002a23e
mov rax, qword [r14 + rbp*8 + 0x60]
mov edx, dword [rax + rsi*4]
mov dword [rsp + 0x44], edx
test r15d, r15d
je 0x14002a1e4
mov rax, qword [r14]
mov rcx, qword [rax + 0x140]
mov rax, qword [rcx + rdx*8]
movzx ecx, byte [rax + 0x4a]
cmp cl, 0xff
je 0x14002a1e4
mov r13d, ecx
bt r15d, r13d
jae 0x14002a1e4
cmp r13d, 0xff
je 0x14002a1e4
cmp r13d, esi
je 0x14002a1de
mov rax, qword [r14 + 0x50]
mov r11d, 1
mov r9d, esi
mov r8d, r13d
mov byte [rdx + rax], cl
mov rax, qword [r14 + rbp*8 + 0x60]
mov dword [rax + rsi*4], 0xffffffff
mov rax, qword [r14 + rbp*8 + 0x60]
mov dword [rax + rcx*4], edx
mov ecx, esi
mov rax, qword [r14 + 0x58]
shl r11d, cl
mov r10d, r11d
bts r10d, r13d
xor dword [rax + rbp*4], r10d
test dword [rax + rbp*4 + 0x10], r11d
mov eax, 0
mov rcx, qword [r14 + 0x58]
cmovne eax, r10d
xor dword [rcx + rbp*4 + 0x10], eax
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x40]
test eax, eax
jne 0x14002ab5c
btc r15d, r13d
jmp 0x14002a23e
mov eax, dword [r8 + rbp*4 + 0x10]
bt eax, esi
jae 0x14002a20e
btr eax, esi
mov dword [r8 + rbp*4 + 0x10], eax
mov r8d, esi
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x58]
test eax, eax
jne 0x14002ab5c
mov edx, dword [rsp + 0x44]
mov rax, qword [r14 + 0x50]
mov ecx, edx
mov edx, 1
mov byte [rcx + rax], 0xff
mov ecx, esi
mov rax, qword [r14 + rbp*8 + 0x60]
shl edx, cl
not edx
mov dword [rax + rsi*4], 0xffffffff
mov rax, qword [r14 + 0x58]
and dword [rax + rbp*4], edx
mov rax, qword [r14 + 0x58]
and dword [rax + rbp*4 + 0x10], edx
test ebx, ebx
jne 0x14002a120
test r12d, r12d
je 0x14002a56f
movzx esi, byte [rsp + 0x30]
xor bl, bl
mov ecx, dword [rsp + 0x3c]
mov byte [rsp + 0x41], bl
nop
xor eax, eax
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x54], eax
test ecx, ecx
je 0x14002a55a
nop dword [rax]
nop word [rax + rax]
mov r15d, eax
shl r15, 5
add r15, qword [rsp + 0x68]
mov eax, dword [r15 + 8]
shr eax, 8
test al, 1
jne 0x14002a53d
mov edx, dword [r15]
mov rax, qword [r14 + 0x50]
movzx ebp, byte [r15 + 0xe]
mov dword [rsp + 0x48], edx
movzx r13d, byte [rdx + rax]
mov rax, qword [r14 + rsi*8 + 0x60]
mov r9d, dword [rax + rbp*4]
cmp r9d, 0xffffffff
je 0x14002a46f
mov rax, qword [r14]
mov qword [rsp + 0x70], r9
mov rcx, qword [rax + 0x140]
mov rax, qword [rcx + r9*8]
mov qword [rsp + 0x60], rax
mov rax, qword [r14 + 0x10]
test byte [rax + rsi + 0x10], 1
je 0x14002a404
cmp r13d, 0xff
je 0x14002a404
mov rax, qword [r14 + 0x50]
mov ecx, r13d
mov r11d, 1
mov dword [rsp + 0x20], ebp
mov ebx, 1
shl ebx, cl
mov ecx, ebp
mov byte [rdx + rax], bpl
mov rax, qword [r14 + 0x50]
shl r11d, cl
mov byte [r9 + rax], r13b
mov rax, qword [r14 + rsi*8 + 0x60]
mov dword [rax + r13*4], r9d
mov rax, qword [r14 + rsi*8 + 0x60]
mov dword [rax + rbp*4], edx
mov eax, 0
mov r10, qword [r14 + 0x58]
mov ecx, eax
mov r8d, dword [r10 + rsi*4 + 0x10]
test r8d, r11d
setne cl
test r8d, ebx
setne al
or r11d, ebx
xor ecx, eax
neg ecx
and ecx, r11d
xor ecx, r8d
mov r8d, r13d
mov dword [r10 + rsi*4 + 0x10], ecx
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x48]
test eax, eax
jne 0x14002ab5c
mov eax, dword [r15 + 8]
bts eax, 8
mov dword [r15 + 8], eax
shr eax, 1
test al, 1
je 0x14002a394
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rsi*4 + 0x10]
bts eax, ebp
mov dword [rcx + rsi*4 + 0x10], eax
mov r8, qword [rsp + 0x60]
dec r12d
mov edx, dword [rsp + 0x3c]
xor eax, eax
mov r8d, dword [r8]
test rdx, rdx
je 0x14002a53d
mov rcx, qword [rsp + 0x68]
cmp dword [rcx], r8d
je 0x14002a3c9
inc rax
add rcx, 0x20
cmp rax, rdx
jb 0x14002a3b3
jmp 0x14002a53d
test rcx, rcx
je 0x14002a53d
movzx eax, byte [rcx + 0xe]
cmp eax, r13d
jne 0x14002a53d
mov eax, dword [rcx + 8]
bts eax, 8
mov dword [rcx + 8], eax
shr eax, 1
test al, 1
je 0x14002a53a
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rsi*4 + 0x10]
bts eax, r13d
jmp 0x14002a536
test bl, bl
je 0x14002a53d
mov r8, qword [r14 + 0x58]
mov ecx, ebp
mov ebx, 1
shl ebx, cl
mov eax, dword [r8 + rsi*4 + 0x10]
test eax, ebx
je 0x14002a445
btr eax, ebp
mov edx, r9d
mov dword [r8 + rsi*4 + 0x10], eax
mov r8d, ebp
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x58]
test eax, eax
jne 0x14002ab5c
mov edx, dword [rsp + 0x48]
mov rax, qword [r14 + 0x50]
not ebx
mov rcx, qword [rsp + 0x70]
mov byte [rcx + rax], 0xff
mov rax, qword [r14 + rsi*8 + 0x60]
mov dword [rax + rbp*4], 0xffffffff
mov rax, qword [r14 + 0x58]
and dword [rax + rsi*4], ebx
mov rax, qword [r14 + 0x58]
and dword [rax + rsi*4 + 0x10], ebx
cmp r13d, 0xff
je 0x14002a4e6
cmp ebp, r13d
je 0x14002a519
mov rax, qword [r14 + 0x50]
mov r10d, 1
mov ecx, edx
mov r9d, r13d
mov byte [rcx + rax], bpl
mov ecx, r13d
mov rax, qword [r14 + rsi*8 + 0x60]
shl r10d, cl
mov r8d, r10d
bts r8d, ebp
mov dword [rax + r13*4], 0xffffffff
mov rax, qword [r14 + rsi*8 + 0x60]
mov dword [rax + rbp*4], edx
mov rax, qword [r14 + 0x58]
mov edx, dword [rsp + 0x48]
xor dword [rax + rsi*4], r8d
test dword [rax + rsi*4 + 0x10], r10d
mov eax, 0
mov rcx, qword [r14 + 0x58]
cmovne eax, r8d
mov r8d, ebp
xor dword [rcx + rsi*4 + 0x10], eax
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x40]
jmp 0x14002a511
mov rax, qword [r14 + 0x50]
mov r8d, ebp
mov ecx, edx
mov byte [rcx + rax], bpl
mov rax, qword [r14 + rsi*8 + 0x60]
mov dword [rax + rbp*4], edx
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rsi*4]
bts eax, ebp
mov dword [rcx + rsi*4], eax
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x50]
test eax, eax
jne 0x14002ab5c
mov eax, dword [r15 + 8]
bts eax, 8
mov dword [r15 + 8], eax
shr eax, 1
test al, 1
je 0x14002a53a
mov rcx, qword [r14 + 0x58]
mov eax, dword [rcx + rsi*4 + 0x10]
bts eax, ebp
mov dword [rcx + rsi*4 + 0x10], eax
dec r12d
mov eax, dword [rsp + 0x54]
movzx ebx, byte [rsp + 0x41]
inc eax
mov dword [rsp + 0x54], eax
cmp eax, dword [rsp + 0x3c]
jb 0x14002a280
mov ecx, dword [rsp + 0x3c]
cmp dword [rsp + 0x44], r12d
sete bl
mov byte [rsp + 0x41], bl
test r12d, r12d
jne 0x14002a260
mov eax, dword [rsp + 0x4c]
mov r13d, eax
cmp eax, 1
jb 0x14002a5f3
movzx esi, byte [rsp + 0x30]
lea r10, [rsp + 0xd0]
mov ebx, eax
nop word [rax + rax]
mov r11, qword [r10]
mov rax, qword [r14 + 0x50]
mov ecx, dword [r11]
movzx r8d, byte [rax + rcx]
cmp r8d, 0xff
je 0x14002a5d8
mov byte [rcx + rax], 0xff
mov edx, 1
mov rax, qword [r14 + rsi*8 + 0x60]
mov ecx, r8d
shl edx, cl
not edx
mov dword [rax + r8*4], 0xffffffff
mov rax, qword [r14 + 0x58]
and dword [rax + rsi*4], edx
mov rax, qword [r14 + 0x58]
and dword [rax + rsi*4 + 0x10], edx
btr edi, r8d
mov eax, dword [r11 + 8]
add r10, 8
shr eax, 3
not al
and eax, 1
sub r13d, eax
sub rbx, 1
jne 0x14002a590
jmp 0x14002a5f8
movzx esi, byte [rsp + 0x30]
test edi, edi
je 0x14002a67a
movzx r12d, sil
movzx esi, sil
bsf r8d, edi
lea eax, [rdi - 1]
and edi, eax
mov r15d, r8d
mov rax, qword [r14 + r12*8 + 0x60]
mov ebp, dword [rax + r8*4]
cmp ebp, 0xffffffff
je 0x14002a676
mov rdx, qword [r14 + 0x58]
mov ecx, r8d
mov ebx, 1
shl ebx, cl
mov eax, dword [rdx + rsi*4 + 0x10]
test ebx, eax
je 0x14002a64f
btr eax, r8d
mov dword [rdx + rsi*4 + 0x10], eax
mov edx, ebp
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x58]
test eax, eax
jne 0x14002ab5c
mov rax, qword [r14 + 0x50]
not ebx
mov byte [rbp + rax], 0xff
mov rax, qword [r14 + rsi*8 + 0x60]
mov dword [rax + r15*4], 0xffffffff
mov rax, qword [r14 + 0x58]
and dword [rax + rsi*4], ebx
mov rax, qword [r14 + 0x58]
and dword [rax + rsi*4 + 0x10], ebx
test edi, edi
jne 0x14002a604
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x14002a6ca
lea r15, [rsp + 0x1d0]
mov ebp, eax
nop dword [rax]
mov rbx, qword [r15]
mov esi, dword [rbx]
movzx edi, byte [rbx + 0xe]
mov ebx, dword [rbx + 0x10]
test ebx, ebx
je 0x14002a6c0
bsf r8d, ebx
lea eax, [rbx - 1]
and ebx, eax
cmp r8d, edi
je 0x14002a6bc
mov rcx, qword [r14]
mov r9d, edi
mov edx, esi
mov rax, qword [rcx]
call qword [rax + 0x40]
test ebx, ebx
jne 0x14002a6a0
add r15, 8
sub rbp, 1
jne 0x14002a690
mov rcx, qword [rsp + 0x78]
cmp byte [rcx + 0x10], 0x12
jne 0x14002a799
movzx r9d, byte [rsp + 0x30]
cmp r9b, 1
jne 0x14002a79f
mov rbx, qword [r14 + 0x58]
mov ebx, dword [rbx + r9*4]
and ebx, dword [rcx + r9*4 + 0xa4]
je 0x14002a79f
movzx ebp, byte [r9 + rcx + 0x8c]
nop dword [rax + rax]
bsf r8d, ebx
lea eax, [rbx - 1]
and ebx, eax
mov esi, r8d
mov rax, qword [r14 + 0x68]
mov edx, dword [rax + r8*4]
mov rax, qword [r14]
mov r15d, edx
mov rcx, qword [rax + 0x140]
mov rax, qword [rcx + rdx*8]
mov rcx, qword [rax + 8]
cmp dword [rcx + 8], ebp
jbe 0x14002a791
mov r9, qword [r14 + 0x58]
mov ecx, r8d
mov edi, 1
shl edi, cl
mov eax, dword [r9 + 0x14]
test edi, eax
je 0x14002a76d
btr eax, r8d
mov dword [r9 + 0x14], eax
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x58]
test eax, eax
jne 0x14002ab5c
mov rax, qword [r14 + 0x50]
not edi
mov byte [r15 + rax], 0xff
mov rax, qword [r14 + 0x68]
mov dword [rax + rsi*4], 0xffffffff
mov rax, qword [r14 + 0x58]
and dword [rax + 4], edi
mov rax, qword [r14 + 0x58]
and dword [rax + 0x14], edi
test ebx, ebx
jne 0x14002a710
movzx r9d, byte [rsp + 0x30]
test r13d, r13d
je 0x14002ab29
mov edx, dword [rsp + 0x38]
xor r11d, r11d
mov rax, qword [r14 + 0x58]
not edx
mov r8d, dword [rsp + 0x34]
and edx, r8d
mov r13d, dword [rsp + 0x58]
movzx ecx, r9b
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x3c], edx
mov r12d, dword [rax + rcx*4]
mov dword [rsp + 0x48], r12d
test r13d, r13d
je 0x14002a8d8
mov r10, qword [rsp + 0x98]
mov eax, dword [r10 + 8]
shr eax, 0xb
test al, 1
je 0x14002a8d8
mov r15d, dword [r10 + 0x14]
xor r8d, r8d
movzx eax, r9b
mov ecx, edx
not ecx
mov ebp, r8d
mov esi, 0xffffffff
mov edi, dword [r14 + rax*4 + 0x18]
mov eax, r15d
and edi, ecx
test r15d, r15d
je 0x14002ab86
bsf ebx, eax
lea ecx, [rax - 1]
and eax, ecx
bt r15d, ebx
jae 0x14002a88b
mov r11d, reloc.WS2_32.dll_ntohs
mov r9d, r8d
test r13d, r13d
je 0x14002a881
nop
lea r10d, [rbx + r9]
bt edi, r10d
jae 0x14002a88b
mov ecx, r9d
mov rdx, qword [rsp + rcx*8 + 0x98]
mov rcx, qword [r14]
mov r8d, dword [rdx]
mov rdx, qword [rcx + 0x140]
mov rcx, qword [rdx + r8*8]
xor r8d, r8d
movzx edx, byte [rcx + 0x4a]
mov ecx, r8d
cmp edx, r10d
sete cl
inc r9d
add r11d, ecx
cmp r9d, r13d
jb 0x14002a840
cmp r11d, ebp
jbe 0x14002a88b
mov ebp, r11d
mov esi, ebx
test eax, eax
jne 0x14002a822
cmp esi, 0xffffffff
je 0x14002ab86
mov edx, r8d
test r13d, r13d
je 0x14002a8c4
lea r8, [rsp + 0x98]
nop dword [rax + rax]
mov rax, qword [r8]
lea ecx, [rdx + rsi]
inc edx
lea r8, [r8 + 8]
mov byte [rax + 0xf], cl
cmp edx, r13d
jb 0x14002a8b0
movzx r9d, byte [rsp + 0x30]
mov r8d, dword [rsp + 0x34]
mov edx, dword [rsp + 0x3c]
mov r11d, dword [rsp + 0x50]
mov esi, dword [rsp + 0x4c]
xor r13d, r13d
test esi, esi
je 0x14002ab24
movzx edi, r9b
nop dword [rax + rax]
mov r15, qword [rsp + r13*8 + 0xd0]
mov ecx, dword [r15 + 8]
mov eax, ecx
shr eax, 3
test al, 1
je 0x14002ab0f
mov r10d, dword [r15]
mov eax, edx
shr ecx, 0xf
test cl, 1
mov dword [rsp + 0x44], r10d
mov rcx, qword [r14 + 0x50]
cmovne eax, r8d
movzx ecx, byte [rcx + r10]
cmp ecx, 0xff
je 0x14002a960
mov rdx, qword [r14 + 0x50]
mov r8d, 1
shl r8d, cl
not r8d
mov byte [r10 + rdx], 0xff
mov rdx, qword [r14 + rdi*8 + 0x60]
mov dword [rdx + rcx*4], 0xffffffff
mov rdx, qword [r14 + 0x58]
and dword [rdx + rdi*4], r8d
mov rcx, qword [r14 + 0x58]
and dword [rcx + rdi*4 + 0x10], r8d
movzx ebx, byte [r15 + 0xf]
cmp ebx, 0xff
jne 0x14002aab1
or eax, r11d
mov edx, r12d
not eax
not edx
and eax, dword [r15 + 0x14]
and edx, eax
jne 0x14002aa87
and eax, r12d
bsf ebx, eax
lea ecx, [rax - 1]
and eax, ecx
mov r8d, ebx
mov rcx, qword [r14 + rdi*8 + 0x60]
mov ebp, dword [rcx + rbx*4]
je 0x14002aa21
mov rcx, qword [r14]
mov r11, qword [rcx + 0x140]
mov rcx, qword [r14 + 0x58]
mov rdx, qword [r11 + rbp*8]
mov esi, dword [rcx + rdi*4 + 0x10]
bt esi, r8d
movss xmm0, dword [rdx + 0x64]
mulss xmm0, xmm6
cvttss2si r10d, xmm0
jae 0x14002a9d4
add r10d, 0x40000
mov r12, qword [r14 + rdi*8 + 0x60]
nop dword [rax]
bsf r8d, eax
lea ecx, [rax - 1]
and eax, ecx
bt esi, r8d
mov r9d, dword [r12 + r8*4]
mov rdx, qword [r11 + r9*8]
movss xmm0, dword [rdx + 0x64]
mulss xmm0, xmm6
cvttss2si ecx, xmm0
jae 0x14002aa0a
add ecx, 0x40000
cmp ecx, r10d
jae 0x14002aa18
mov r10d, ecx
mov ebx, r8d
mov ebp, r9d
test eax, eax
jne 0x14002a9e0
mov r12d, dword [rsp + 0x48]
mov rdx, qword [r14 + 0x58]
mov ecx, ebx
mov esi, 1
shl esi, cl
mov eax, dword [rdx + rdi*4 + 0x10]
test eax, esi
je 0x14002aa53
btr eax, ebx
mov r8d, ebx
mov dword [rdx + rdi*4 + 0x10], eax
mov edx, ebp
mov rcx, qword [r14]
mov rax, qword [rcx]
call qword [rax + 0x58]
test eax, eax
jne 0x14002ab5c
mov rax, qword [r14 + 0x50]
not esi
mov r10d, dword [rsp + 0x44]
mov ecx, ebp
mov byte [rcx + rax], 0xff
mov rax, qword [r14 + rdi*8 + 0x60]
mov ecx, ebx
mov dword [rax + rcx*4], 0xffffffff
mov rax, qword [r14 + 0x58]
and dword [rax + rdi*4], esi
mov rax, qword [r14 + 0x58]
and dword [rax + rdi*4 + 0x10], esi
mov esi, dword [rsp + 0x4c]
jmp 0x14002aab1
mov rax, qword [r14]
mov rcx, qword [rax + 0x140]
mov r8, qword [rcx + r10*8]
movzx eax, byte [r8 + 0x4a]
cmp al, 0xff
je 0x14002aaa5
bt edx, eax
mov ebx, eax
jb 0x14002aab1
mov eax, edx
and eax, dword [r8 + 0x38]
cmovne edx, eax
bsf ebx, edx
mov eax, dword [r15 + 8]
shr eax, 0x12
test al, 1
jne 0x14002aae9
mov rax, qword [r14 + 0x50]
mov edx, 1
mov ecx, r10d
mov byte [rcx + rax], bl
mov rax, qword [r14 + rdi*8 + 0x60]
mov ecx, ebx
mov dword [rax + rcx*4], r10d
mov ecx, ebx
mov rax, qword [r14 + 0x58]
shl edx, cl
or dword [rax + rdi*4], edx
mov rax, qword [r14 + 0x58]
or dword [rax + rdi*4 + 0x10], edx
mov r11d, dword [rsp + 0x50]
movzx eax, bl
or dword [r15 + 8], 0x100
bts r11d, ebx
btr r12d, ebx
mov byte [r15 + 0xf], bl
mov dword [rsp + 0x48], r12d
mov dword [rsp + 0x50], r11d
mov edx, dword [rsp + 0x3c]
inc r13d
mov r8d, dword [rsp + 0x34]
cmp r13d, esi
jb 0x14002a8f0
or dword [rsp + 0x38], r11d
movzx eax, byte [rsp + 0x30]
movzx r8d, byte [rsp + 0x80]
mov ecx, dword [rsp + 0x38]
inc r8b
mov byte [rsp + 0x30], r8b
or dword [r14 + rax*4 + 0x28], ecx
mov byte [rsp + 0x80], r8b
cmp r8b, 4
jne 0x140029a00
xor eax, eax
mov rbx, qword [rsp + 0x330]
movaps xmm6, xmmword [rsp + 0x2d0]
add rsp, 0x2e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, 3
jmp 0x14002ab5c
mov eax, 0x3d
jmp 0x14002ab5c