Function at 0x14009cfa0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push rbx
push rbp
push rdi
push r13
push r14
sub rsp, 0x160
mov rax, qword [0x1402de400]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x1b0]
mov r13, qword [rsp + 0x1c8]
mov rbp, qword [rsp + 0x1d0]
mov rbx, qword [rbp]
mov rdi, rcx
mov qword [rsp + 0xd0], rcx
mov rcx, qword [rsp + 0x1d8]
mov r14d, r8d
mov dword [rsp + 0x90], r8d
mov r8, qword [rsp + 0x1b8]
mov qword [rsp + 0xf8], rcx
mov rcx, qword [rsp + 0x1f8]
mov qword [rsp + 0xa8], rcx
xor ecx, ecx
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0x98], r8
mov dword [rsp + 0x94], ecx
mov dword [rsp + 0xf0], ecx
mov dword [rsp + 0xc0], ecx
test r13, r13
jne 0x14009d05e
xor eax, eax
jmp 0x14009e164
movzx ecx, word [rax + 2]
mov qword [rsp + 0x198], rsi
mov qword [rsp + 0x158], r12
mov qword [rsp + 0x150], r15
lea r15, [rax + 4]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r12d, ax
mov dword [rsp + 0xf4], r12d
cmp r12d, 0xa8
jb 0x14009e14a
mov rcx, qword [rsp + 0x98]
movzx eax, word [rcx]
cmp word [r15 + 0x58], ax
jne 0x14009e14a
movzx eax, word [rcx + 2]
cmp word [r15 + 0x5a], ax
jne 0x14009e14a
mov eax, dword [rcx + 4]
cmp dword [r15 + 0x28], eax
jne 0x14009e14a
cmp dword [r15 + 0x3c], 4
jne 0x14009d101
mov rax, qword [rsp + 0xb0]
cmp word [rax], 0x7b
jne 0x14009d101
lea r9, [rax + 8]
lea edx, [r14 + 0x30]
mov r8d, 8
mov rax, qword [r9]
mov rcx, rdi
mov qword [r15 + 0x2c], rax
call fcn.1400777e0
cmp dword [r15 + 0x50], 4
jne 0x14009d133
mov rax, qword [rsp + 0xa0]
cmp word [rax], 0x7b
jne 0x14009d133
lea r9, [rax + 8]
lea edx, [r14 + 0x44]
mov r8d, 8
mov rax, qword [r9]
mov rcx, rdi
mov qword [r15 + 0x40], rax
call fcn.1400777e0
mov esi, 1
lea edx, [r14 + r12 - 0x14]
mov rcx, rdi
mov r8d, esi
call fcn.140077c50
mov r12, rax
mov qword [rsp + 0xc8], rax
test rax, rax
je 0x14009e14a
test rbx, rbx
je 0x14009d178
mov eax, esi
lock xadd dword [rbx + 0x6c8], eax
lea rcx, [rbx + 0x7e8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r14, qword [r13]
mov qword [rsp + 0x100], r14
lea rsi, [r14 + 0x340]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test rbx, rbx
je 0x14009d1b1
lea rcx, [rbx + 0x7e8]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
or eax, 0xffffffff
lock xadd dword [rbx + 0x6c8], eax
test dword [r14 + 0x158], 0x30000000
je 0x14009d1cf
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r12
jmp 0x14009e145
mov r14, qword [r13]
mov eax, dword [r14 + 0x160]
cmp dword [r15 + 0x10], eax
jge 0x14009d237
movzx eax, byte [r14 + 0x2c2]
cmp byte [r14 + 0x2c1], al
je 0x14009d237
movsx rax, al
mov dword [rsp + 0x30], 0
mov ecx, 1
shl rax, 5
lea r8d, [rcx + 0x1f]
mov r9, rdi
lea rdx, [rax + r14 + 0x164]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x90]
add eax, 4
mov dword [rsp + 0x20], eax
call fcn.1400bd270
jmp 0x14009d27f
movsx rax, byte [r14 + 0x2c1]
mov dword [rsp + 0x30], 0
mov ecx, 1
shl rax, 5
lea r8d, [rcx + 0x1f]
mov r9, rdi
lea rdx, [rax + r14 + 0x164]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x90]
add eax, 4
mov dword [rsp + 0x20], eax
call fcn.1400bd270
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rdx, qword [rsp + 0xc8]
lea r9, [rsp + 0x128]
xor r10d, r10d
mov rsi, rdx
mov r12d, reloc.WS2_32.dll_sendto
mov ecx, r10d
mov qword [rsp + 0x108], r9
nop
test ecx, ecx
jle 0x14009d2ca
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x14009d2ca
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x14009d2b0
jmp 0x14009e142
test rsi, rsi
je 0x14009e142
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x14009d2f0
movsxd rbx, ecx
add rbx, qword [rsi + 0x10]
jne 0x14009d35b
jmp 0x14009e142
test r12d, r12d
jle 0x14009d33d
mov eax, dword [rsi + 0x18]
movsxd rdx, ecx
mov edi, r12d
sub eax, ecx
mov rcx, r9
cmp eax, r12d
cmovl edi, eax
add rdx, qword [rsi + 0x10]
mov r8d, edi
mov ebx, edi
call fcn.1401e3ed0
mov r9, qword [rsp + 0x108]
mov rsi, qword [rsi]
add r9, rbx
xor r10d, r10d
sub r12d, edi
mov qword [rsp + 0x108], r9
mov ecx, r10d
test rsi, rsi
jne 0x14009d2f0
jmp 0x14009d342
test rsi, rsi
jne 0x14009d34b
test r12d, r12d
jg 0x14009e13a
mov rdi, qword [rsp + 0xd0]
lea rbx, [rsp + 0x128]
lea rax, [rsp + 0x110]
mov esi, reloc.WS2_32.dll_sendto
lea rdx, [rsp + 0x110]
sub rbx, rax
mov r9, rsi
mov r8d, r10d
nop dword [rax]
movzx ecx, byte [rbx + rdx]
movzx eax, byte [rdx]
inc rdx
xor ecx, eax
or r8d, ecx
sub r9, 1
jne 0x14009d380
test r8d, r8d
je 0x14009d42e
mov eax, dword [r14 + 0x160]
cmp dword [r15 + 0x10], eax
jne 0x14009d446
movzx eax, byte [r14 + 0x2c2]
cmp byte [r14 + 0x2c1], al
je 0x14009d43a
movsx rax, al
lea ecx, [r9 + 1]
mov dword [rsp + 0x30], r10d
shl rax, 5
lea r8d, [rcx + 0x1f]
mov r9, rdi
lea rdx, [rax + r14 + 0x164]
mov r14d, dword [rsp + 0x90]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x28], rax
lea eax, [r14 + 4]
mov dword [rsp + 0x20], eax
call fcn.1400bd270
lea rdx, [rsp + 0x110]
xor r8d, r8d
nop dword [rax]
movzx ecx, byte [rbx + rdx]
movzx eax, byte [rdx]
inc rdx
xor ecx, eax
or r8d, ecx
sub rsi, 1
jne 0x14009d410
test r8d, r8d
jne 0x14009d452
mov dl, 1
jmp 0x14009d454
mov r14d, dword [rsp + 0x90]
mov dl, 1
jmp 0x14009d454
mov r14d, dword [rsp + 0x90]
xor dl, dl
jmp 0x14009d454
mov r14d, dword [rsp + 0x90]
xor dl, dl
jmp 0x14009d454
xor dl, dl
cmp qword [rdi], 0
mov rax, rdi
je 0x14009d469
nop dword [rax]
mov rax, qword [rax]
cmp qword [rax], 0
jne 0x14009d460
mov rcx, qword [rsp + 0xc8]
mov qword [rax], rcx
test dl, dl
je 0x14009e14a
cmp dword [r15 + 0x18], 0x36ee80
ja 0x14009e14a
mov esi, dword [r15 + 0x10]
mov r12d, dword [r15 + 0x14]
mov dword [rsp + 0xc8], r12d
test esi, esi
js 0x14009e14a
cmp r12d, 0xf423f
ja 0x14009e14a
lea rcx, [rsp + 0xe8]
call fcn.140076af0
mov rbx, qword [rsp + 0xe8]
cmp ebx, esi
jl 0x14009e14a
mov r8d, dword [rsp + 0xec]
cmp ebx, esi
jne 0x14009d4e1
cmp r8d, r12d
jl 0x14009e14a
mov ecx, dword [r15 + 0x18]
movabs rax, 0x624dd2f1a9fbe77
add rcx, 0x3e7
mul rcx
mov eax, 0xffffffff
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 9
cmp rcx, rax
cmova ecx, eax
lea eax, [rcx + rsi]
cmp ebx, eax
mov dword [rsp + 0x90], eax
jg 0x14009decd
cmp ebx, eax
jne 0x14009d530
cmp r8d, r12d
jg 0x14009decd
cmp dword [r15 + 0x3c], 4
jne 0x14009e14a
mov r8, qword [rsp + 0x98]
xor eax, eax
cmp qword [rbp], 0
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rax
mov eax, 0x7b
mov word [rsp + 0xd8], ax
movzx eax, word [r8]
mov word [rsp + 0xda], ax
mov rax, qword [r15 + 0x2c]
mov qword [rsp + 0xe0], rax
jne 0x14009d6ac
mov rax, qword [r13]
mov r12, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xf8]
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0xd8]
mov r9, r12
mov r8, rsi
mov rcx, r13
mov qword [rsp + 0x20], 0
call fcn.140078e60
mov qword [rbp], rax
test rax, rax
jne 0x14009d60c
mov r8, qword [rsp + 0x100]
cmp r8, qword [r13]
je 0x14009d67c
mov rax, qword [0x1402e6b38]
test rax, rax
je 0x14009d694
lea rcx, str.Bad_problem_find_ep_got_a_diff_inp_then_special_locate__n
call rax
mov rbx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009d6ee
mov rbx, qword [rsp + 0xa8]
cmp qword [rbx], 0
jne 0x14009d6cc
mov qword [rbx], rax
mov rax, qword [rbp]
mov r9d, 1
mov rcx, qword [rax + 8]
mov eax, r9d
lock xadd dword [rcx + 0x3b8], eax
mov rax, qword [rbp]
mov r8, qword [rsp + 0x100]
mov rdx, qword [rax + 8]
cmp rdx, r8
je 0x14009d6dc
mov rax, qword [0x1402e6b38]
test rax, rax
je 0x14009d6e6
lea rcx, str.Huh__ep:_p_diff_then_l_inp:_p__n
call rax
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009d6ee
mov rbx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009d6ee
mov rbx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009d6ee
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xf8]
mov r12, qword [rsp + 0xa0]
mov r9d, 1
jmp 0x14009d6ee
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009d6ee
mov r8, qword [rsp + 0x98]
jmp 0x14009d6ee
mov r8, qword [rsp + 0x98]
mov edx, dword [rsp + 0xf4]
mov rcx, qword [rbp]
add edx, 0xffffffec
test rcx, rcx
jne 0x14009d79d
mov r9, qword [rsp + 0xb0]
xor eax, eax
mov rcx, rdi
mov word [rsp + 0x80], ax
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x1f0]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x1e8]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x1e0]
mov dword [rsp + 0x60], eax
lea rax, [rsp + 0x94]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x50], rax
mov rax, qword [r13]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r8
xor edx, edx
mov r8d, r14d
mov qword [rsp + 0x20], r12
call fcn.14009c7e0
mov r12d, dword [rsp + 0xf0]
mov r15, qword [rsp + 0xa0]
mov qword [rbp], rax
jmp 0x14009d83b
xor eax, eax
mov r12d, r9d
mov r9, qword [rsp + 0xb0]
mov word [rsp + 0x88], ax
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x1f0]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x1e8]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x1e0]
mov dword [rsp + 0x68], eax
lea rax, [rsp + 0x94]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x58], rax
mov rax, qword [r13]
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x30], r15
mov r15, qword [rsp + 0xa0]
mov qword [rsp + 0x28], r8
mov r8d, r14d
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], r15
call fcn.14009ae10
mov qword [rbp], rax
test rax, rax
jne 0x14009d846
mov qword [rbx], rax
cmp qword [rbp], 0
je 0x14009e14a
mov r10, qword [rbp]
lea rdx, [rsp + 0xd8]
mov rcx, r10
call fcn.14007c180
mov rdi, rax
test rax, rax
jne 0x14009d8ac
lea rdx, [rsp + 0xd8]
xor esi, esi
xor r9d, r9d
xor r8d, r8d
mov rcx, r10
mov dword [rsp + 0x28], 0x64
mov dword [rsp + 0x20], esi
call fcn.14007c1d0
test eax, eax
jne 0x14009e14a
mov rcx, qword [rbp]
lea rdx, [rsp + 0xd8]
call fcn.14007c180
mov rdi, rax
test rax, rax
jne 0x14009d8ae
mov r14d, esi
jmp 0x14009d8ec
xor esi, esi
movzx eax, word [rdi + 0x23c]
mov ecx, 0x200
test cx, ax
je 0x14009d8e4
mov ecx, 0xfdff
mov r8, rdi
xor edx, edx
and ax, cx
mov word [rdi + 0x23c], ax
mov rcx, qword [rbp]
call fcn.140081050
mov r14d, 1
jmp 0x14009d8ec
mov r14d, dword [rsp + 0xc0]
mov rcx, qword [rbp]
call fcn.140099e60
mov rbx, qword [r13]
mov eax, dword [rbx + 0x158]
test al, 2
je 0x14009de10
test r12d, r12d
je 0x14009d916
bt eax, 0x15
jb 0x14009de10
cmp dword [rsp + 0x94], 0xa
jne 0x14009d9d8
mov rdx, qword [rbp]
xor r9d, r9d
xor r8d, r8d
lea ecx, [r9 + 0xa]
mov dword [rsp + 0x20], esi
call fcn.140093040
test r14d, r14d
je 0x14009dec0
mov rsi, qword [rbp]
mov eax, dword [rsi + 0x58]
mov rbp, qword [rsi + 8]
bt eax, 8
jb 0x14009dec0
and eax, 0x7f
cmp eax, 2
je 0x14009dec0
cmp eax, 4
je 0x14009dec0
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rbp + 0x158]
bt r11d, 0x1c
jb 0x14009deb3
bt r11d, 0x1d
jb 0x14009deb3
bt r11d, 0x1e
jb 0x14009deb3
xor eax, eax
lea r8, [rdi + 0xd8]
xor r9d, r9d
lea edx, [rax + 6]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140090410
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsp + 0xd0]
jmp 0x14009e14c
mov rbx, qword [rbx + 0x148]
mov rcx, qword [rbp]
mov eax, 1
lock xadd dword [rcx + 0x6c8], eax
mov rcx, qword [rbp]
add rcx, 0x7e8
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edx, edx
mov rcx, rbx
call fcn.1400724a0
mov rcx, qword [rbp]
add rcx, 0x7e8
mov r12, rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11, qword [rbp]
or esi, 0xffffffff
mov ecx, esi
lock xadd dword [r11 + 0x6c8], ecx
test r12, r12
jne 0x14009dacd
lea ecx, [rsi + 5]
lea rdx, [0x14028b986]
call fcn.1400956e0
mov rcx, qword [rsp + 0xd0]
lea r8, [rsp + 0xb8]
xor edi, edi
xor edx, edx
mov rbx, rax
mov dword [rsp + 0xb8], edi
call fcn.140094850
test eax, eax
je 0x14009da7f
test rbx, rbx
je 0x14009dab2
mov rcx, rbx
call fcn.140077120
jmp 0x14009dab2
mov r9d, dword [rsp + 0xb8]
mov r8, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xb0]
mov word [rsp + 0x38], di
mov dword [rsp + 0x30], edi
mov rdx, r15
mov qword [rsp + 0x28], rbx
mov byte [rsp + 0x20], 6
call fcn.1400b30a0
mov rdx, qword [rbp]
mov rcx, qword [r13]
mov r9d, 0x10000017
xor r8d, r8d
call fcn.14007d330
jmp 0x14009e14a
mov rbx, qword [r12 + 0x10]
mov r15d, 1
mov eax, r15d
lock xadd dword [rbx + 0x3b8], eax
mov rax, qword [r13]
mov ecx, dword [rax + 0x158]
and ecx, 0x86e00016
or ecx, 0xe00012
mov dword [rbx + 0x158], ecx
mov rax, qword [r13]
mov rcx, qword [rax + 0x150]
mov qword [rbx + 0x150], rcx
mov rax, qword [r13]
mov ecx, dword [rax + 0x15c]
mov qword [rbx + 0x148], r12
mov dword [rbx + 0x15c], ecx
mov rax, qword [r13]
mov ecx, dword [rax + 0x2e0]
mov dword [rbx + 0x2e0], ecx
mov rax, qword [r13]
mov ecx, dword [rax + 0x2ec]
mov dword [rbx + 0x2ec], ecx
mov rax, qword [r13]
mov ecx, dword [rax + 0x2f4]
mov dword [rbx + 0x2f4], ecx
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2f8]
mov byte [rbx + 0x2f8], cl
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2f9]
mov byte [rbx + 0x2f9], cl
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2fa]
mov byte [rbx + 0x2fa], cl
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2fc]
mov byte [rbx + 0x2fc], cl
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2fd]
mov byte [rbx + 0x2fd], cl
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2fe]
mov byte [rbx + 0x2fe], cl
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2ff]
mov byte [rbx + 0x2ff], cl
mov rax, qword [r13]
mov ecx, dword [rax + 0x2e4]
mov dword [rbx + 0x2e4], ecx
mov rax, qword [r13]
mov ecx, dword [rax + 0x2e8]
mov dword [rbx + 0x2e8], ecx
mov rax, qword [r13]
movzx ecx, byte [rax + 0x2f0]
mov byte [rbx + 0x2f0], cl
mov rax, qword [r13]
movzx ecx, word [rax + 0x3c0]
mov word [rbx + 0x3c0], cx
mov rax, qword [r13]
mov rcx, qword [rax + 0x3e8]
mov qword [rbx + 0x3e8], rcx
mov rax, qword [r13]
mov rcx, qword [rax + 0x3f0]
mov qword [rbx + 0x3f0], rcx
mov rax, qword [r13]
mov rcx, qword [rax + 0x400]
mov qword [rbx + 0x400], rcx
mov rax, qword [r13]
mov ecx, dword [rax + 0x3f8]
mov dword [rbx + 0x3f8], ecx
mov rcx, qword [rbx + 0x1f8]
test rcx, rcx
je 0x14009dc69
call fcn.1401e36c8
mov rcx, qword [r13]
mov rcx, qword [rcx + 0x1f8]
call fcn.1400bcdb0
mov rcx, qword [rbx + 0x1f0]
mov qword [rbx + 0x1f8], rax
test rcx, rcx
je 0x14009dc91
call fcn.1401e36c8
mov rcx, qword [r13]
mov rcx, qword [rcx + 0x1f0]
call fcn.1400bc5d0
mov qword [rbx + 0x1f0], rax
mov rax, qword [rbp]
test rax, rax
je 0x14009dcb8
or dword [rax + 0x58], 0x1000
mov r8, qword [rbp]
mov rcx, qword [r13]
mov rdx, rbx
call fcn.14007a460
mov r11, qword [rbp]
mov eax, r15d
lock xadd dword [r11 + 0x6c8], eax
mov rcx, qword [rbp]
add rcx, 0x7e8
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r8, qword [rbp]
mov rcx, qword [r13]
mov r9d, r15d
mov rdx, rbx
call fcn.140094aa0
mov rcx, qword [rbp]
add rcx, 0x7e8
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11, qword [rbp]
mov eax, esi
lock xadd dword [r11 + 0x6c8], eax
bt dword [rbx + 0x158], 0x1c
jae 0x14009dd33
lock xadd dword [rbx + 0x3b8], esi
jmp 0x14009e14a
lock xadd dword [rbx + 0x3b8], esi
mov ecx, dword [rsp + 0x94]
mov qword [r13], rbx
mov rdx, qword [rbp]
xor r13d, r13d
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], r13d
call fcn.140093040
test r14d, r14d
je 0x14009ddfb
mov rsi, qword [rbp]
mov eax, dword [rsi + 0x58]
mov rbp, qword [rsi + 8]
bt eax, 8
jb 0x14009ddfb
and eax, 0x7f
cmp eax, 2
je 0x14009ddfb
cmp eax, 4
je 0x14009ddfb
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rbp + 0x158]
bt r11d, 0x1c
jb 0x14009ddee
bt r11d, 0x1d
jb 0x14009ddee
bt r11d, 0x1e
jb 0x14009ddee
lea r8, [rdi + 0xd8]
lea edx, [r13 + 6]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x20], r13d
call fcn.140090410
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r12
call fcn.140072200
mov rax, qword [rsp + 0xd0]
jmp 0x14009e14c
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r12
call fcn.140072200
mov rax, qword [rsp + 0xd0]
jmp 0x14009e14c
mov ecx, dword [rsp + 0x94]
test ecx, ecx
je 0x14009de2e
mov rdx, qword [rbp]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], esi
call fcn.140093040
test r14d, r14d
je 0x14009dec0
mov rsi, qword [rbp]
mov eax, dword [rsi + 0x58]
mov rbp, qword [rsi + 8]
bt eax, 8
jb 0x14009dec0
and eax, 0x7f
cmp eax, 2
je 0x14009dec0
cmp eax, 4
je 0x14009dec0
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rbp + 0x158]
bt r11d, 0x1c
jb 0x14009deb3
bt r11d, 0x1d
jb 0x14009deb3
bt r11d, 0x1e
jb 0x14009deb3
xor eax, eax
lea r8, [rdi + 0xd8]
xor r9d, r9d
lea edx, [rax + 6]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140090410
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsp + 0xd0]
jmp 0x14009e14c
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsp + 0xd0]
jmp 0x14009e14c
xor edi, edi
mov ebp, 8
mov r14, rdi
mov r13, rdi
mov r12d, edi
nop dword [rax]
cmp ebp, 0xb0
jle 0x14009df92
mov rcx, qword [0x1402e6b48]
call fcn.1401e3610
mov rsi, rax
test rax, rax
je 0x14009df3f
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov dword [rax + 0x18], edi
mov dword [rax + 0x1c], 2
mov eax, 1
mov qword [rsi + 0x28], rdi
mov word [rsi + 0x20], ax
lea rax, [rsi + 0x50]
mov dword [rsi + 0x38], edi
mov qword [rsi + 0x30], rdi
mov dword [rsi + 0x3c], edi
mov dword [rsi + 0x40], edi
mov qword [rsi + 0x10], rax
mov word [rsi + 0x44], di
mov word [rsi + 0x46], di
mov qword [rsi + 0x48], rdi
mov rcx, qword [0x1402e6b50]
mov qword [rsi + 0x50], rdi
call fcn.1401e3610
mov rcx, qword [0x1402e6b58]
mov rdi, rax
call fcn.1401e3610
mov ecx, 1
mov dword [rax], ecx
or dword [rsi + 0x1c], ecx
mov qword [rsi + 0x50], rdi
mov qword [rsi + 0x10], rdi
xor edi, edi
mov qword [rsi + 0x70], rax
mov dword [rsi + 0x68], 0x800
mov dword [rsi + 0x78], ecx
mov eax, 0x800
mov qword [rsi + 0x58], rdi
mov qword [rsi + 0x60], rdi
jmp 0x14009e033
test r12b, 2
je 0x14009dff7
mov rcx, qword [0x1402e6b48]
call fcn.1401e3610
mov rsi, rax
test rax, rax
je 0x14009dfeb
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov dword [rax + 0x18], edi
mov dword [rax + 0x1c], 2
mov eax, 1
mov qword [rsi + 0x28], rdi
mov word [rsi + 0x20], ax
lea rax, [rsi + 0x50]
mov dword [rsi + 0x38], edi
mov qword [rsi + 0x30], rdi
mov dword [rsi + 0x3c], edi
mov dword [rsi + 0x40], edi
mov qword [rsi + 0x10], rax
mov word [rsi + 0x44], di
mov word [rsi + 0x46], di
mov qword [rsi + 0x48], rdi
mov eax, 0xb0
cmp ebp, eax
cmovl eax, ebp
jmp 0x14009e033
mov rcx, qword [0x1402e6b48]
call fcn.1401e3610
mov rsi, rax
test rax, rax
je 0x14009e029
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov dword [rax + 0x18], edi
mov dword [rax + 0x1c], edi
mov eax, 1
mov word [rsi + 0x20], ax
lea rax, [rsi + 0x28]
mov qword [rsi + 0x10], rax
mov eax, 0xd8
cmp ebp, eax
cmovl eax, ebp
test rsi, rsi
je 0x14009e130
cmp eax, 8
jl 0x14009e12b
sub ebp, eax
test r13, r13
je 0x14009e052
mov qword [r13], rsi
jmp 0x14009e055
mov r14, rsi
and r12d, 0xfffffffd
mov r13, rsi
test ebp, ebp
jg 0x14009dee0
test r12b, 4
je 0x14009e070
or dword [rsi + 0x1c], 4
nop
test r14, r14
je 0x14009e14a
mov rdi, qword [r14 + 0x10]
mov ecx, 3
mov dword [r14 + 0x18], 8
call sub.WS2_32.dll_htons
mov ecx, 8
mov word [rdi], ax
call sub.WS2_32.dll_htons
mov ecx, dword [rsp + 0xec]
sub ebx, dword [rsp + 0x90]
sub ecx, dword [rsp + 0xc8]
mov word [rdi + 2], ax
jns 0x14009e0bf
dec ebx
add ecx, 0xf4240
cmp ebx, 0x10c6
jbe 0x14009e0d0
mov edx, 0xffffffff
mov ebx, edx
jmp 0x14009e0db
imul ebx, ebx, 0xf4240
mov edx, 0xffffffff
mov eax, edx
sub eax, ebx
cmp eax, ecx
jb 0x14009e0e7
add ebx, ecx
jmp 0x14009e0e9
mov ebx, edx
mov ecx, ebx
call sub.WS2_32.dll_htonl
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xb0]
mov dword [rdi + 4], eax
mov r9d, dword [r15 + 0x24]
xor eax, eax
mov word [rsp + 0x38], ax
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r14
mov byte [rsp + 0x20], 9
call fcn.1400b30a0
jmp 0x14009e14a
mov rcx, rsi
jmp 0x14009e145
test r14, r14
je 0x14009e14a
mov rcx, r14
jmp 0x14009e145
mov rdx, qword [rsp + 0xc8]
mov rcx, rdx
call fcn.140077120
xor eax, eax
mov r12, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x198]
mov r15, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.1401e42a0
add rsp, 0x160
pop r14
pop r13
pop rdi
pop rbp
pop rbx
ret