Function at 0x180030150
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1e0
vmovaps xmmword [rax - 0x28], xmm6
vmovaps xmmword [rax - 0x38], xmm7
vmovaps xmmword [rax - 0x48], xmm8
vmovaps xmmword [rax - 0x58], xmm9
vmovaps xmmword [rax - 0x68], xmm10
mov rax, qword [0x180279b80]
xor rax, rsp
mov qword [rbp + 0x88], rax
call fcn.1800336b0
call fcn.1800297b0
mov rax, qword [0x180b5ee10]
or dword [rax + 0x47a8], 0x40
mov dword [rax + 0x4808], 0x3f800000
vmovsd xmm0, qword [0x1802395f0]
vmovsd qword [rbp - 0x80], xmm0
mov eax, dword [0x1802395f8]
mov dword [rbp - 0x78], eax
movzx ecx, byte [0x1802395fc]
mov byte [rbp - 0x80], reloc.WLDAP32.dll_Ordinal_35
xor byte [rbp - 0x7f], 0x34
xor byte [rbp - 0x7e], 0x35
xor byte [rbp - 0x7d], 0x36
xor byte [rbp - 0x7c], 0x37
xor byte [rbp - 0x7b], 0x38
xor byte [rbp - 0x7a], 0x39
xor byte [rbp - 0x79], 0x3a
xor al, 0x3b
mov byte [rbp - 0x78], al
xor byte [rbp - 0x77], 0x3c
xor byte [rbp - 0x76], 0x3d
xor byte [rbp - 0x75], 0x3e
xor cl, 0x3f
mov byte [rbp - 0x74], cl
mov r8d, Ordinal_46
lea rdx, [0x180b5ecac]
lea rcx, [rbp - 0x80]
call fcn.1800a6b60
vmovss xmm10, dword [0x1802491e0]
vmovss dword [rbp - 0x10], xmm10
vmovss xmm9, dword [0x180249214]
vmovss dword [rbp - 0xc], xmm9
vmovups xmm0, xmmword [0x1802395a8]
vmovups xmmword [rsp + 0x68], xmm0
movzx eax, word [0x1802395b8]
mov word [rsp + 0x78], ax
cmp byte [0x1802395b9], 0
je 0x1800302bf
mov byte [rsp + 0x68], reloc.WLDAP32.dll_Ordinal_35
xor byte [rsp + 0x69], 0x34
xor byte [rsp + 0x6a], 0x35
xor byte [rsp + 0x6b], 0x36
xor byte [rsp + 0x6c], 0x37
xor byte [rsp + 0x6d], 0x38
xor byte [rsp + 0x6e], 0x39
xor byte [rsp + 0x6f], 0x3a
xor byte [rsp + 0x70], 0x3b
xor byte [rsp + 0x71], 0x3c
xor byte [rsp + 0x72], 0x3d
xor byte [rsp + 0x73], 0x3e
xor byte [rsp + 0x74], 0x3f
xor byte [rsp + 0x75], 0x40
xor byte [rsp + 0x76], 0x41
xor byte [rsp + 0x77], 0x42
xor byte [rsp + 0x78], 0x43
xor byte [rsp + 0x79], 0x44
xor r9d, r9d
mov r8b, 1
lea rdx, [rbp - 0x10]
lea rcx, [rsp + 0x68]
call fcn.1800a4040
xor r15d, r15d
test al, al
je 0x180030512
mov edi, r15d
mov rcx, qword [0x180b60388]
mov r8, qword [0x180b60380]
sub rcx, r8
movabs r14, 0x4ec4ec4ec4ec4ec5
mov rax, r14
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x180030512
mov esi, r15d
vmovss xmm7, dword [0x1802491c8]
vmovss xmm8, dword [0x180249188]
nop dword [rax]
cmp dword [0x180b5f218], edi
jne 0x1800304ad
mov rbx, qword [0x180b5ee10]
mov dword [rbp + 0x10], reloc.WS2_32.dll_setsockopt
vmovups xmm0, xmmword [rbx + 0x39fc]
vmovups xmmword [rbp + 0x14], xmm0
lea rcx, [rbx + 0x4818]
lea rdx, [rbp + 0x10]
call fcn.1800b4910
mov dword [rbx + 0x39fc], r15d
mov dword [rbx + 0x3a00], 0x3f800000
mov dword [rbx + 0x3a04], 0x3f800000
mov dword [rbx + 0x3a08], 0x3f1eb852
vmovups xmm6, xmmword [0x1802495a0]
vmovups xmmword [rbp + 0x58], xmm6
mov rbx, qword [0x180b5ee10]
mov dword [rbp + 0x28], reloc.WS2_32.dll_socket
vmovups xmm0, xmmword [rbx + 0x3a1c]
vmovups xmmword [rbp + 0x2c], xmm0
lea rcx, [rbx + 0x4818]
lea rdx, [rbp + 0x28]
call fcn.1800b4910
vmovups xmmword [rbx + 0x3a1c], xmm6
mov rbx, qword [0x180b5ee10]
mov dword [rbp + 0x40], reloc.WLDAP32.dll_Ordinal_22
vmovups xmm0, xmmword [rbx + 0x3a0c]
vmovups xmmword [rbp + 0x44], xmm0
lea rcx, [rbx + 0x4818]
lea rdx, [rbp + 0x40]
call fcn.1800b4910
mov dword [rbx + 0x3a0c], r15d
mov dword [rbx + 0x3a10], 0x3f800000
mov dword [rbx + 0x3a14], 0x3f800000
mov dword [rbx + 0x3a18], 0x3f1eb852
vmovss dword [rbp - 8], xmm7
vmovss dword [rbp - 4], xmm8
mov rcx, qword [0x180b60380]
add rcx, rsi
cmp qword [rcx + 0x18], 0xf
jbe 0x18003043a
mov rcx, qword [rcx]
xor r8d, r8d
lea rdx, [rbp - 8]
call fcn.1800cef10
mov r9d, 3
mov r8, qword [0x180b5ee10]
mov eax, dword [r8 + 0x4818]
cmp eax, r9d
jge 0x180030470
mov r9d, eax
test eax, eax
jle 0x1800304db
nop word [rax + rax]
cdqe
lea rdx, [rax + rax*4]
mov rcx, qword [r8 + 0x4820]
movsxd rax, dword [rcx + rdx*4 - 0x14]
add rax, rax
vmovups xmm0, xmmword [rcx + rdx*4 - 0x10]
vmovups xmmword [r8 + rax*8 + 0x38ac], xmm0
dec dword [r8 + 0x4818]
mov eax, dword [r8 + 0x4818]
dec r9d
test r9d, r9d
jg 0x180030470
jmp 0x1800304db
vmovss dword [rbp], xmm7
vmovss dword [rbp + 4], xmm8
lea rcx, [rsi + r8]
cmp qword [rcx + 0x18], 0xf
jbe 0x1800304c5
mov rcx, qword [rcx]
xor r8d, r8d
lea rdx, [rbp]
call fcn.1800cef10
test al, al
je 0x1800304db
mov dword [0x180b5f218], edi
inc edi
add rsi, 0x68
mov rcx, qword [0x180b60388]
mov r8, qword [0x180b60380]
sub rcx, r8
mov rax, r14
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, edi
cmp rax, rdx
jb 0x180030330
call fcn.1800a40f0
vmovss xmm1, dword [0x180249274]
vxorps xmm0, xmm0, xmm0
call fcn.1800aca60
vmovss xmm0, dword [0x180249218]
vmovss dword [rbp + 8], xmm0
vmovss dword [rbp + 0xc], xmm9
vmovups xmm1, xmmword [0x180239540]
vmovups xmmword [rbp - 0x70], xmm1
movzx ecx, word [0x180239550]
mov word [rbp - 0x60], cx
movzx eax, byte [0x180239552]
mov byte [rbp - 0x70], reloc.WLDAP32.dll_Ordinal_35
xor byte [rbp - 0x6f], 0x34
xor byte [rbp - 0x6e], 0x35
xor byte [rbp - 0x6d], 0x36
xor byte [rbp - 0x6c], 0x37
xor byte [rbp - 0x6b], 0x38
xor byte [rbp - 0x6a], 0x39
xor byte [rbp - 0x69], 0x3a
xor byte [rbp - 0x68], 0x3b
xor byte [rbp - 0x67], 0x3c
xor byte [rbp - 0x66], 0x3d
xor byte [rbp - 0x65], 0x3e
xor byte [rbp - 0x64], 0x3f
xor byte [rbp - 0x63], 0x40
xor byte [rbp - 0x62], 0x41
xor byte [rbp - 0x61], 0x42
xor cl, 0x43
mov byte [rbp - 0x60], cl
xor byte [rbp - 0x5f], 0x44
xor al, 0x45
mov byte [rbp - 0x5e], al
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 8]
lea rcx, [rbp - 0x70]
call fcn.1800a4040
test al, al
je 0x1800305e0
movsxd rax, dword [0x180b5f218]
imul rcx, rax, 0x68
add rcx, qword [0x180b60380]
mov rcx, qword [rcx + 0x58]
test rcx, rcx
je 0x1800305e0
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
call fcn.1800a40f0
xor r14b, r14b
vmovsd xmm0, qword [0x1802395e0]
vmovsd qword [rsp + 0x20], xmm0
movzx eax, word [0x1802395e8]
mov word [rsp + 0x28], ax
cmp byte [reloc.WLDAP32.dll_Ordinal_60], r14b
je 0x18003063d
mov byte [rsp + 0x20], 0x53
xor byte [rsp + 0x21], 0x34
xor byte [rsp + 0x22], 0x35
xor byte [rsp + 0x23], 0x36
xor byte [rsp + 0x24], 0x37
xor byte [rsp + 0x25], 0x38
xor byte [rsp + 0x26], 0x39
xor byte [rsp + 0x27], 0x3a
xor byte [rsp + 0x28], 0x3b
xor byte [rsp + 0x29], 0x3c
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp + 0x68], xmm0
mov qword [rbp + 0x78], r15
mov qword [rbp + 0x80], r15
lea rax, [rsp + 0x20]
mov rsi, 0xffffffffffffffff
mov r8, rsi
inc r8
cmp byte [rax + r8], r14b
jne 0x180030660
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x68]
call fcn.180005120
nop
mov eax, dword [0x180b5eccc]
cmp eax, 1
jne 0x180030749
vmovups xmm0, xmmword [0x180239590]
vmovups xmmword [rsp + 0x50], xmm0
movzx eax, byte [0x1802395a0]
mov byte [rsp + 0x50], 0x53
xor byte [rsp + 0x51], 0x34
xor byte [rsp + 0x52], 0x35
xor byte [rsp + 0x53], 0x36
xor byte [rsp + 0x54], 0x37
xor byte [rsp + 0x55], 0x38
xor byte [rsp + 0x56], 0x39
xor byte [rsp + 0x57], 0x3a
xor byte [rsp + 0x58], 0x3b
xor byte [rsp + 0x59], 0x3c
xor byte [rsp + 0x5a], 0x3d
xor byte [rsp + 0x5b], 0x3e
xor byte [rsp + 0x5c], 0x3f
xor byte [rsp + 0x5d], 0x40
xor byte [rsp + 0x5e], 0x41
xor byte [rsp + 0x5f], 0x42
xor al, 0x43
mov byte [rsp + 0x60], al
lea rax, [rsp + 0x50]
mov rdi, rsi
nop word [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x180030700
mov rax, qword [rbp + 0x80]
cmp rdi, rax
ja 0x18003073f
lea rbx, [rbp + 0x68]
cmp rax, 0xf
cmova rbx, qword [rbp + 0x68]
mov qword [rbp + 0x78], rdi
mov r8, rdi
lea rdx, [rsp + 0x50]
mov rcx, rbx
call fcn.1801feaf0
mov byte [rbx + rdi], 0
jmp 0x18003080d
lea r9, [rsp + 0x50]
jmp 0x180030801
cmp eax, 2
jne 0x18003080d
vmovsd xmm0, qword [0x1802395c0]
vmovsd qword [rsp + 0x40], xmm0
mov eax, dword [0x1802395c8]
mov dword [rsp + 0x48], eax
movzx ecx, byte [0x1802395cc]
mov byte [rsp + 0x40], 0x53
xor byte [rsp + 0x41], 0x34
xor byte [rsp + 0x42], 0x35
xor byte [rsp + 0x43], 0x36
xor byte [rsp + 0x44], 0x37
xor byte [rsp + 0x45], 0x38
xor byte [rsp + 0x46], 0x39
xor byte [rsp + 0x47], 0x3a
xor al, 0x3b
mov byte [rsp + 0x48], al
xor byte [rsp + 0x49], 0x3c
xor byte [rsp + 0x4a], 0x3d
xor byte [rsp + 0x4b], 0x3e
xor cl, 0x3f
mov byte [rsp + 0x4c], cl
lea rax, [rsp + 0x40]
mov rdi, rsi
nop dword [rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x1800307c0
mov rax, qword [rbp + 0x80]
cmp rdi, rax
ja 0x1800307fc
lea rbx, [rbp + 0x68]
cmp rax, 0xf
cmova rbx, qword [rbp + 0x68]
mov qword [rbp + 0x78], rdi
mov r8, rdi
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.1801feaf0
mov byte [rbx + rdi], 0
jmp 0x18003080d
lea r9, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rbp + 0x68]
call fcn.180005220
mov r9, qword [0x180b60170]
mov r8, qword [0x180b60168]
mov rcx, r9
sub rcx, r8
movabs rax, 0x4924924924924925
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
mov r15d, 1
add rdx, rax
jne 0x18003094f
movzx r14d, r15b
vmovups xmm0, xmmword [str.cXPWD_]
vmovups xmmword [rbp - 0x58], xmm0
vmovsd xmm0, qword [0x180239610]
vmovsd qword [rbp - 0x48], xmm0
mov eax, dword [0x180239618]
mov dword [rbp - 0x40], eax
movzx eax, word [0x18023961c]
mov word [rbp - 0x3c], ax
cmp byte [0x18023961d], dl
je 0x1800308fa
mov byte [rbp - 0x58], 0x50
xor byte [rbp - 0x57], 0x34
xor byte [rbp - 0x56], 0x35
xor byte [rbp - 0x55], 0x36
xor byte [rbp - 0x54], 0x37
xor byte [rbp - 0x53], 0x38
xor byte [rbp - 0x52], 0x39
xor byte [rbp - 0x51], 0x3a
xor byte [rbp - 0x50], 0x3b
xor byte [rbp - 0x4f], 0x3c
xor byte [rbp - 0x4e], 0x3d
xor byte [rbp - 0x4d], 0x3e
xor byte [rbp - 0x4c], 0x3f
xor byte [rbp - 0x4b], 0x40
xor byte [rbp - 0x4a], 0x41
xor byte [rbp - 0x49], 0x42
xor byte [rbp - 0x48], 0x43
xor byte [rbp - 0x47], 0x44
xor byte [rbp - 0x46], 0x45
xor byte [rbp - 0x45], 0x46
xor byte [rbp - 0x44], 0x47
xor byte [rbp - 0x43], 0x48
xor byte [rbp - 0x42], 0x49
xor byte [rbp - 0x41], 0x4a
xor byte [rbp - 0x40], 0x4b
xor byte [rbp - 0x3f], 0x4c
xor byte [rbp - 0x3e], 0x4d
xor byte [rbp - 0x3d], 0x4e
xor byte [rbp - 0x3c], 0x4f
xor byte [rbp - 0x3b], 0x50
lea rax, [rbp - 0x58]
mov rdi, rsi
inc rdi
cmp byte [rax + rdi], 0
jne 0x180030901
mov rax, qword [rbp + 0x80]
cmp rdi, rax
ja 0x18003093f
lea rbx, [rbp + 0x68]
cmp rax, 0xf
cmova rbx, qword [rbp + 0x68]
mov qword [rbp + 0x78], rdi
mov r8, rdi
lea rdx, [rbp - 0x58]
mov rcx, rbx
call fcn.1801feaf0
mov byte [rbx + rdi], 0
jmp 0x180030b4a
lea r9, [rbp - 0x58]
mov rdx, rdi
lea rcx, [rbp + 0x68]
jmp 0x180030b45
mov byte [0x180b5ecad], 0
cmp r8, r9
je 0x180030974
nop dword [rax + rax]
cmp byte [r8 + 0x48], 0
jne 0x180030b2e
add r8, 0x70
cmp r8, r9
jne 0x180030960
movzx r14d, r15b
vmovups ymm0, ymmword [0x180239558]
vmovups ymmword [rbp - 0x58], ymm0
vmovups xmm1, xmmword [0x180239578]
vmovups xmmword [rbp - 0x38], xmm1
movzx eax, byte [0x180239588]
mov byte [rbp - 0x28], al
mov r10d, 2
lea r9, [rbp - 0x57]
nop word [rax + rax]
lea r8d, [r10 - 2]
mov eax, 0xa0a0a0a1
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r15d
sub al, dl
movsx eax, al
imul ecx, eax, 0x33
add cl, r8b
xor byte [r9 - 1], cl
lea ecx, [r10 - 1]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
movzx eax, r8b
sub al, cl
add al, 0x34
xor byte [r9], al
mov eax, 0xa0a0a0a1
imul r10d
add edx, r10d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
movzx eax, r8b
sub al, cl
add al, 0x35
xor byte [r9 + 1], al
lea ecx, [r10 + 1]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
movzx eax, r8b
sub al, cl
add al, 0x36
xor byte [r9 + 2], al
lea ecx, [r10 + 2]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
movzx eax, r8b
sub al, cl
add al, 0x37
xor byte [r9 + 3], al
lea ecx, [r10 + 3]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
movzx eax, r8b
sub al, cl
add al, 0x38
xor byte [r9 + 4], al
lea ecx, [r10 + 4]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x33
sub r8b, cl
add r8b, 0x39
xor byte [r9 + 5], r8b
add r10d, 7
lea r9, [r9 + 7]
lea eax, [r10 - 2]
cmp eax, 0x31
jl 0x1800309b0
lea rax, [rbp - 0x58]
mov rdi, rsi
nop dword [rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x180030af0
mov rax, qword [rbp + 0x80]
cmp rdi, rax
ja 0x180030b37
lea rbx, [rbp + 0x68]
cmp rax, 0xf
cmova rbx, qword [rbp + 0x68]
mov qword [rbp + 0x78], rdi
mov r8, rdi
lea rdx, [rbp - 0x58]
mov rcx, rbx
vzeroupper
call fcn.1801feaf0
mov byte [rbx + rdi], 0
jmp 0x180030b4a
mov byte [0x180b5ecad], r15b
jmp 0x180030b4a
lea r9, [rbp - 0x58]
mov rdx, rdi
lea rcx, [rbp + 0x68]
vzeroupper
call fcn.180005220
mov rcx, qword [0x180b5ee10]
mov rax, qword [rcx + 0x3ed0]
mov byte [rax + 0xb8], r15b
mov rax, qword [rcx + 0x3ed0]
vmovss xmm0, dword [rax + 0x24]
vsubss xmm1, xmm0, dword [rax + 0x88]
vaddss xmm1, xmm1, dword [0x18024920c]
vmovss dword [rax + 0x104], xmm1
mov byte [rax + 0x141], r15b
test r14b, r14b
je 0x180030b94
call fcn.1800a97e0
vmovsd xmm0, qword [0x1802395d0]
vmovsd qword [rsp + 0x30], xmm0
movzx eax, word [0x1802395d8]
mov word [rsp + 0x38], ax
cmp byte [reloc.WLDAP32.dll_Ordinal_60], 0
je 0x180030be9
mov byte [rsp + 0x30], reloc.WLDAP32.dll_Ordinal_35
xor byte [rsp + 0x31], 0x34
xor byte [rsp + 0x32], 0x35
xor byte [rsp + 0x33], 0x36
xor byte [rsp + 0x34], 0x37
xor byte [rsp + 0x35], 0x38
xor byte [rsp + 0x36], 0x39
xor byte [rsp + 0x37], 0x3a
xor byte [rsp + 0x38], 0x3b
xor byte [rsp + 0x39], 0x3c
lea rax, [rsp + 0x30]
nop
inc rsi
cmp byte [rax + rsi], 0
jne 0x180030bf0
mov r8, rsi
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x68]
call fcn.1800246b0
vmovss dword [rbp - 0x18], xmm10
vmovss xmm0, dword [0x180249190]
vmovss dword [rbp - 0x14], xmm0
lea rcx, [rbp + 0x68]
cmp qword [rbp + 0x80], 0xf
cmova rcx, qword [rbp + 0x68]
xor r8d, r8d
lea rdx, [rbp - 0x18]
call fcn.1800cef10
test al, al
je 0x180030c44
xchg byte [0x180b5ec6f], r15b
test r14b, r14b
je 0x180030c99
mov rdx, qword [0x180b5ee10]
dec word [rdx + 0x5b78]
mov eax, dword [rdx + 0x4750]
shr eax, 2
test al, 1
movsxd rcx, dword [rdx + 0x4858]
lea eax, [rcx - 1]
mov dword [rdx + 0x4858], eax
mov rax, qword [rdx + 0x4860]
mov r8d, dword [rax + rcx*4 - 8]
mov dword [rdx + 0x4750], r8d
je 0x180030c99
test r8b, 4
jne 0x180030c99
mov eax, dword [rdx + 0x5b74]
mov dword [rdx + 0x37d0], eax
lea rcx, [rbp + 0x68]
call fcn.180005050
call fcn.1800a8d80
cmp byte [0x180b5eeb5], 0
je 0x180030cb5
call fcn.180036bf0
mov rcx, qword [rbp + 0x88]
xor rcx, rsp
call fcn.1801be920
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm9, xmmword [r11 - 0x40]
vmovaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop rbp
ret