Function at 0x1803557a0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rax, rsi
add rax, 0x40
movzx eax, byte [rax]
test eax, eax
je 0x1803557cd
jmp 0x1803557ba
sub eax, 3
je 0x180355982
jmp 0x1803557c5
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov rbx, rsi
add rbx, 8
mov rdi, qword [rsi + 8]
cmp rdi, 0
sete al
test al, 1
jne 0x180355974
jmp 0x1803557e9
mov rcx, rdi
call fcn.1806595d0
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
jne 0x180355801
jmp 0x180355859
mov rcx, rdi
call fcn.1804b9d30
mov eax, dword [0x180788930]
or eax, dword [0x180788934]
add eax, 0x9fc2744c
add eax, 0xef02118f
imul eax, eax, 0x229df4b7
cmp eax, 0xa491da67
je 0x180355a89
mov eax, dword [0x180788938]
xor eax, dword [0x18078893c]
imul eax, eax, 0xd8e362e4
xor eax, 0x9ccb825d
and eax, 0xa42a18c7
cmp eax, 0xfd0815ba
ja 0x180355a89
jmp 0x180355859
add rdi, 8
mov eax, dword [0x180788940]
or eax, dword [0x180788944]
or eax, 0xcc48aed2
and eax, 0xf95caec
or eax, 0x1d6b93fc
cmp eax, 0x58168135
je 0x180355a9a
jmp 0x180355885
mov ecx, dword [0x180788948]
imul ecx, dword [0x18078894c]
xor ecx, 0xfe7cd23f
and ecx, 0xa546c6cd
add ecx, 0x5ac99371
mov rax, qword [rdi]
lock dec qword [rax]
sete al
cmp ecx, 0xa99e46ab
jb 0x180355885
test al, 1
jne 0x1803558bc
jmp 0x180355914
mov rcx, rdi
call fcn.1804c6740
mov eax, dword [0x180788950]
xor eax, dword [0x180788954]
xor eax, 0x201e5c12
and eax, 0x31fad4a3
mov ecx, 0xda057edc
xor edx, edx
div ecx
cmp eax, 0x3c39ca0f
ja 0x180355ab5
jmp 0x1803558f0
mov eax, dword [0x180788958]
or eax, dword [0x18078895c]
add eax, 0x134cd03a
xor eax, 0x1b967963
or eax, 0xc101cc91
cmp eax, 0x1f103353
je 0x1803558f0
jmp 0x180355914
mov rcx, qword [rbx]
mov edx, 0x20
mov r8d, 8
call fcn.1804cafa0
mov eax, dword [0x180788960]
sub eax, dword [0x180788964]
and eax, 0xa5c2e52b
imul eax, eax, 0xc5d64dcb
and eax, 0xde7495c7
cmp eax, 0xccf58409
jae 0x180355ac6
jmp 0x180355950
mov eax, dword [0x180788968]
or eax, dword [0x18078896c]
sub eax, 0x98845586
sub eax, 0x24d9e13b
xor eax, 0xab93579e
cmp eax, 0xfc365d86
jae 0x180355950
jmp 0x180355974
mov rcx, qword [rsi]
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x1803557c5
mov eax, dword [0x180788970]
xor edx, edx
div dword [0x180788974]
xor eax, 0x8080c5a6
mov ecx, 0xfde22265
xor edx, edx
div ecx
add eax, 0xa3ae588a
cmp eax, 0xea11162d
ja 0x180355ad3
jmp 0x1803559b0
mov eax, dword [0x180788978]
imul eax, dword [0x18078897c]
mov ecx, 0xae06f855
xor edx, edx
div ecx
sub eax, 0x19efb5b9
mov ecx, 0x1c5ce6a
xor edx, edx
div ecx
mov rdi, rsi
add rdi, 0x10
cmp eax, 0x133a82a6
jae 0x1803559b0
jmp 0x1803559e4
mov eax, dword [0x180788980]
xor eax, dword [0x180788984]
xor eax, 0x97cdddd7
or eax, 0x5fa98be7
sub eax, 0xe778d7f4
cmp eax, 0xe5e9c899
ja 0x180355ae4
jmp 0x180355a0c
mov eax, dword [0x180788988]
imul eax, dword [0x18078898c]
xor eax, 0x4fbe2898
xor eax, 0x97185a37
pop rdx
sbb byte [rdi + 0x2cfbf069], dl
outsb dx, byte [rsi]
adc byte [rax - 0x77], cl
stc
call fcn.180352950
cmp esi, 0xdd73d563
jae 0x180355a0c
jmp 0x180355a3b
mov eax, dword [0x180788990]
xor eax, dword [0x180788994]
add eax, 0xfc98a8ce
sub eax, 0x758a7e6
and eax, 0x13fcdefa
cmp eax, 0x1fd8d115
je 0x180355afd
invalid
adc eax, 0xf1fd8d1
test byte [rax + rax + 0x58b0000], bl
add byte [rbx + 0x432f3105], cl
add byte [rbx], cl
mov eax, dword [0x180788998]
or eax, dword [0x18078899c]
add eax, 0x432f2f
and eax, 0x2feb22dc
add eax, 0x1462c10e
imul eax, eax, 0x19676469
cmp eax, 0x48e5396e
ja 0x180355afd
invalid
jmp 0x1803557c5
mov sil, 0x3c
mov byte [rsi + 0x63], r9b
cmpsb byte [rsi], byte [rdi]
int1
lodsb al, byte [rsi]
jg 0x180355a57
jmp 0x180355830
nop
mov edx, 0x11d6387c
xor ecx, dword [rcx + 0x35]
push 0x59
insb byte [rdi], dx
mov rax, qword [rdi]
lock dec qword [rax]
sete al
jmp 0x180355883
test eax, 0xc02da9d
cwde
invalid
jrcxz 0x180355acc
stc
push rdi
jmp 0x1699dfa76
lahf
push 0xfffffffffffe7be9
invalid
jns 0x180355ae1
invalid
invalid
invalid
push rsp
and al, 0x8b
push rax
and dword [rcx + 0x57e995a5], esp
invalid