Function at 0x14009f430
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 [0x1402e0068]
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 0x14009f4ee
xor eax, eax
jmp 0x1400a05f4
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 0x1400a05da
mov rcx, qword [rsp + 0x98]
movzx eax, word [rcx]
cmp word [r15 + 0x58], ax
jne 0x1400a05da
movzx eax, word [rcx + 2]
cmp word [r15 + 0x5a], ax
jne 0x1400a05da
mov eax, dword [rcx + 4]
cmp dword [r15 + 0x28], eax
jne 0x1400a05da
cmp dword [r15 + 0x3c], 4
jne 0x14009f591
mov rax, qword [rsp + 0xb0]
cmp word [rax], 0x7b
jne 0x14009f591
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.140079c70
cmp dword [r15 + 0x50], 4
jne 0x14009f5c3
mov rax, qword [rsp + 0xa0]
cmp word [rax], 0x7b
jne 0x14009f5c3
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.140079c70
mov esi, 1
lea edx, [r14 + r12 - 0x14]
mov rcx, rdi
mov r8d, esi
call fcn.14007a0e0
mov r12, rax
mov qword [rsp + 0xc8], rax
test rax, rax
je 0x1400a05da
test rbx, rbx
je 0x14009f608
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 0x14009f641
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 0x14009f65f
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r12
jmp 0x1400a05d5
mov r14, qword [r13]
mov eax, dword [r14 + 0x160]
cmp dword [r15 + 0x10], eax
jge 0x14009f6c7
movzx eax, byte [r14 + 0x2c2]
cmp byte [r14 + 0x2c1], al
je 0x14009f6c7
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.1400bf700
jmp 0x14009f70f
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.1400bf700
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 0x14009f75a
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x14009f75a
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x14009f740
jmp 0x1400a05d2
test rsi, rsi
je 0x1400a05d2
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, r12d
jl 0x14009f780
movsxd rbx, ecx
add rbx, qword [rsi + 0x10]
jne 0x14009f7eb
jmp 0x1400a05d2
test r12d, r12d
jle 0x14009f7cd
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.1401e75a0
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 0x14009f780
jmp 0x14009f7d2
test rsi, rsi
jne 0x14009f7db
test r12d, r12d
jg 0x1400a05ca
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 0x14009f810
test r8d, r8d
je 0x14009f8be
mov eax, dword [r14 + 0x160]
cmp dword [r15 + 0x10], eax
jne 0x14009f8d6
movzx eax, byte [r14 + 0x2c2]
cmp byte [r14 + 0x2c1], al
je 0x14009f8ca
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.1400bf700
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 0x14009f8a0
test r8d, r8d
jne 0x14009f8e2
mov dl, 1
jmp 0x14009f8e4
mov r14d, dword [rsp + 0x90]
mov dl, 1
jmp 0x14009f8e4
mov r14d, dword [rsp + 0x90]
xor dl, dl
jmp 0x14009f8e4
mov r14d, dword [rsp + 0x90]
xor dl, dl
jmp 0x14009f8e4
xor dl, dl
cmp qword [rdi], 0
mov rax, rdi
je 0x14009f8f9
nop dword [rax]
mov rax, qword [rax]
cmp qword [rax], 0
jne 0x14009f8f0
mov rcx, qword [rsp + 0xc8]
mov qword [rax], rcx
test dl, dl
je 0x1400a05da
cmp dword [r15 + 0x18], 0x36ee80
ja 0x1400a05da
mov esi, dword [r15 + 0x10]
mov r12d, dword [r15 + 0x14]
mov dword [rsp + 0xc8], r12d
test esi, esi
js 0x1400a05da
cmp r12d, 0xf423f
ja 0x1400a05da
lea rcx, [rsp + 0xe8]
call fcn.140078f80
mov rbx, qword [rsp + 0xe8]
cmp ebx, esi
jl 0x1400a05da
mov r8d, dword [rsp + 0xec]
cmp ebx, esi
jne 0x14009f971
cmp r8d, r12d
jl 0x1400a05da
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 0x1400a035d
cmp ebx, eax
jne 0x14009f9c0
cmp r8d, r12d
jg 0x1400a035d
cmp dword [r15 + 0x3c], 4
jne 0x1400a05da
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 0x14009fb3c
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.14007b2f0
mov qword [rbp], rax
test rax, rax
jne 0x14009fa9c
mov r8, qword [rsp + 0x100]
cmp r8, qword [r13]
je 0x14009fb0c
mov rax, qword [0x1402e8778]
test rax, rax
je 0x14009fb24
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 0x14009fb7e
mov rbx, qword [rsp + 0xa8]
cmp qword [rbx], 0
jne 0x14009fb5c
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 0x14009fb6c
mov rax, qword [0x1402e8778]
test rax, rax
je 0x14009fb76
lea rcx, str.Huh__ep:_p_diff_then_l_inp:_p__n
call rax
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009fb7e
mov rbx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009fb7e
mov rbx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009fb7e
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xf8]
mov r12, qword [rsp + 0xa0]
mov r9d, 1
jmp 0x14009fb7e
mov r8, qword [rsp + 0x98]
mov r9d, 1
jmp 0x14009fb7e
mov r8, qword [rsp + 0x98]
jmp 0x14009fb7e
mov r8, qword [rsp + 0x98]
mov edx, dword [rsp + 0xf4]
mov rcx, qword [rbp]
add edx, 0xffffffec
test rcx, rcx
jne 0x14009fc2d
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.14009ec70
mov r12d, dword [rsp + 0xf0]
mov r15, qword [rsp + 0xa0]
mov qword [rbp], rax
jmp 0x14009fccb
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.14009d2a0
mov qword [rbp], rax
test rax, rax
jne 0x14009fcd6
mov qword [rbx], rax
cmp qword [rbp], 0
je 0x1400a05da
mov r10, qword [rbp]
lea rdx, [rsp + 0xd8]
mov rcx, r10
call fcn.14007e610
mov rdi, rax
test rax, rax
jne 0x14009fd3c
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.14007e660
test eax, eax
jne 0x1400a05da
mov rcx, qword [rbp]
lea rdx, [rsp + 0xd8]
call fcn.14007e610
mov rdi, rax
test rax, rax
jne 0x14009fd3e
mov r14d, esi
jmp 0x14009fd7c
xor esi, esi
movzx eax, word [rdi + 0x23c]
mov ecx, 0x200
test cx, ax
je 0x14009fd74
mov ecx, 0xfdff
mov r8, rdi
xor edx, edx
and ax, cx
mov word [rdi + 0x23c], ax
mov rcx, qword [rbp]
call fcn.1400834e0
mov r14d, 1
jmp 0x14009fd7c
mov r14d, dword [rsp + 0xc0]
mov rcx, qword [rbp]
call fcn.14009c2f0
mov rbx, qword [r13]
mov eax, dword [rbx + 0x158]
test al, 2
je 0x1400a02a0
test r12d, r12d
je 0x14009fda6
bt eax, 0x15
jb 0x1400a02a0
cmp dword [rsp + 0x94], 0xa
jne 0x14009fe68
mov rdx, qword [rbp]
xor r9d, r9d
xor r8d, r8d
lea ecx, [r9 + 0xa]
mov dword [rsp + 0x20], esi
call fcn.1400954d0
test r14d, r14d
je 0x1400a0350
mov rsi, qword [rbp]
mov eax, dword [rsi + 0x58]
mov rbp, qword [rsi + 8]
bt eax, 8
jb 0x1400a0350
and eax, 0x7f
cmp eax, 2
je 0x1400a0350
cmp eax, 4
je 0x1400a0350
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rbp + 0x158]
bt r11d, 0x1c
jb 0x1400a0343
bt r11d, 0x1d
jb 0x1400a0343
bt r11d, 0x1e
jb 0x1400a0343
xor eax, eax
lea r8, [rdi + 0xd8]
xor r9d, r9d
lea edx, [rax + 6]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1400928a0
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsp + 0xd0]
jmp 0x1400a05dc
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.140074930
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 0x14009ff5d
lea ecx, [rsi + 5]
lea rdx, [0x14028e586]
call fcn.140097b70
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.140096ce0
test eax, eax
je 0x14009ff0f
test rbx, rbx
je 0x14009ff42
mov rcx, rbx
call fcn.1400795b0
jmp 0x14009ff42
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.1400b5530
mov rdx, qword [rbp]
mov rcx, qword [r13]
mov r9d, 0x10000017
xor r8d, r8d
call fcn.14007f7c0
jmp 0x1400a05da
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 0x1400a00f9
call fcn.1401e64f8
mov rcx, qword [r13]
mov rcx, qword [rcx + 0x1f8]
call fcn.1400bf240
mov rcx, qword [rbx + 0x1f0]
mov qword [rbx + 0x1f8], rax
test rcx, rcx
je 0x1400a0121
call fcn.1401e64f8
mov rcx, qword [r13]
mov rcx, qword [rcx + 0x1f0]
call fcn.1400bea60
mov qword [rbx + 0x1f0], rax
mov rax, qword [rbp]
test rax, rax
je 0x1400a0148
or dword [rax + 0x58], 0x1000
mov r8, qword [rbp]
mov rcx, qword [r13]
mov rdx, rbx
call fcn.14007c8f0
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.140096f30
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 0x1400a01c3
lock xadd dword [rbx + 0x3b8], esi
jmp 0x1400a05da
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.1400954d0
test r14d, r14d
je 0x1400a028b
mov rsi, qword [rbp]
mov eax, dword [rsi + 0x58]
mov rbp, qword [rsi + 8]
bt eax, 8
jb 0x1400a028b
and eax, 0x7f
cmp eax, 2
je 0x1400a028b
cmp eax, 4
je 0x1400a028b
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rbp + 0x158]
bt r11d, 0x1c
jb 0x1400a027e
bt r11d, 0x1d
jb 0x1400a027e
bt r11d, 0x1e
jb 0x1400a027e
lea r8, [rdi + 0xd8]
lea edx, [r13 + 6]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x20], r13d
call fcn.1400928a0
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r12
call fcn.140074690
mov rax, qword [rsp + 0xd0]
jmp 0x1400a05dc
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, r12
call fcn.140074690
mov rax, qword [rsp + 0xd0]
jmp 0x1400a05dc
mov ecx, dword [rsp + 0x94]
test ecx, ecx
je 0x1400a02be
mov rdx, qword [rbp]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], esi
call fcn.1400954d0
test r14d, r14d
je 0x1400a0350
mov rsi, qword [rbp]
mov eax, dword [rsi + 0x58]
mov rbp, qword [rsi + 8]
bt eax, 8
jb 0x1400a0350
and eax, 0x7f
cmp eax, 2
je 0x1400a0350
cmp eax, 4
je 0x1400a0350
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rbp + 0x158]
bt r11d, 0x1c
jb 0x1400a0343
bt r11d, 0x1d
jb 0x1400a0343
bt r11d, 0x1e
jb 0x1400a0343
xor eax, eax
lea r8, [rdi + 0xd8]
xor r9d, r9d
lea edx, [rax + 6]
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1400928a0
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsp + 0xd0]
jmp 0x1400a05dc
lea rcx, [rbp + 0x390]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rsp + 0xd0]
jmp 0x1400a05dc
xor edi, edi
mov ebp, 8
mov r14, rdi
mov r13, rdi
mov r12d, edi
nop dword [rax]
cmp ebp, 0xb0
jle 0x1400a0422
mov rcx, qword [0x1402e8788]
call fcn.1401e6440
mov rsi, rax
test rax, rax
je 0x1400a03cf
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 [0x1402e8790]
mov qword [rsi + 0x50], rdi
call fcn.1401e6440
mov rcx, qword [0x1402e8798]
mov rdi, rax
call fcn.1401e6440
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 0x1400a04c3
test r12b, 2
je 0x1400a0487
mov rcx, qword [0x1402e8788]
call fcn.1401e6440
mov rsi, rax
test rax, rax
je 0x1400a047b
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 0x1400a04c3
mov rcx, qword [0x1402e8788]
call fcn.1401e6440
mov rsi, rax
test rax, rax
je 0x1400a04b9
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 0x1400a05c0
cmp eax, 8
jl 0x1400a05bb
sub ebp, eax
test r13, r13
je 0x1400a04e2
mov qword [r13], rsi
jmp 0x1400a04e5
mov r14, rsi
and r12d, 0xfffffffd
mov r13, rsi
test ebp, ebp
jg 0x1400a0370
test r12b, 4
je 0x1400a0500
or dword [rsi + 0x1c], 4
nop
test r14, r14
je 0x1400a05da
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 0x1400a054f
dec ebx
add ecx, 0xf4240
cmp ebx, 0x10c6
jbe 0x1400a0560
mov edx, 0xffffffff
mov ebx, edx
jmp 0x1400a056b
imul ebx, ebx, 0xf4240
mov edx, 0xffffffff
mov eax, edx
sub eax, ebx
cmp eax, ecx
jb 0x1400a0577
add ebx, ecx
jmp 0x1400a0579
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.1400b5530
jmp 0x1400a05da
mov rcx, rsi
jmp 0x1400a05d5
test r14, r14
je 0x1400a05da
mov rcx, r14
jmp 0x1400a05d5
mov rdx, qword [rsp + 0xc8]
mov rcx, rdx
call fcn.1400795b0
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.1401e6720
add rsp, 0x160
pop r14
pop r13
pop rdi
pop rbp
pop rbx
ret