Function at 0x180401510
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov rcx, rsi
call fcn.1804538a0
mov r14, rsi
add r14, 0x18
mov rdi, qword [r14]
cmp rdi, 0xffffffffffffffff
je 0x1804017e7
mov eax, dword [0x1807991a0]
or eax, dword [0x1807991a4]
sub eax, 0x61b11adb
mov ecx, 0x6e8d427e
xor edx, edx
div ecx
xor eax, 0x9120f1f3
cmp eax, 0x5628d05e
je 0x180401bcf
mov eax, dword [0x1807991a8]
add eax, dword [0x1807991ac]
or eax, 0xcb6783b4
imul eax, eax, 0xd9dc0dd8
imul eax, eax, 0x5588ee8c
cmp eax, 0xcdf2f914
je 0x180401bcf
jmp 0x18040158f
mov r15, rsi
add r15, 0x20
mov rbx, qword [rsi + 0x20]
cmp rbx, 0
je 0x18040178a
mov rcx, rbx
call fcn.1806595d0
mov rax, qword [rbx]
lock dec qword [rax]
sete al
test al, 1
jne 0x1804015bc
jmp 0x1804015c6
mov rcx, rbx
call fcn.1804b9d30
jmp 0x1804015c6
mov eax, dword [0x1807991b0]
sub eax, dword [0x1807991b4]
and eax, 0x3b4fe30f
xor eax, 0x34183823
imul eax, eax, 0x421ed846
cmp eax, 0xb298a766
jae 0x180401bdc
mov eax, dword [0x1807991b8]
add eax, dword [0x1807991bc]
sub eax, 0x95619569
add eax, 0x1bb96e54
or eax, 0x6ac934ef
mov rcx, rbx
add rcx, 8
mov r8, qword [rbx + 8]
cmp eax, 0xaf497e4b
je 0x180401bdc
jmp 0x180401620
mov eax, dword [0x1807991c0]
add eax, dword [0x1807991c4]
mov r9d, 0xab96ccbb
xor edx, edx
div r9d
or eax, 0x51178890
add eax, 0xa4ba9f3f
cmp eax, 0xea670771
jb 0x180401be9
jmp 0x18040164e
mov eax, dword [str.__n4]
or eax, dword [0x1807991cc]
xor eax, 0x1a7ff06c
or eax, 0xac8e2177
and eax, 0x407d2f9
lock dec qword [r8]
sete r9b
cmp eax, 0xc2d3fcf3
ja 0x18040164e
jmp 0x18040167a
mov eax, dword [0x1807991d0]
and eax, dword [0x1807991d4]
xor eax, 0xbc3a167e
sub eax, 0x63aa7741
add eax, 0x88b3593b
cmp eax, 0xc937cd4c
jbe 0x180401c01
jmp 0x1804016a2
mov eax, dword [0x1807991d8]
xor edx, edx
div dword [0x1807991dc]
and eax, 0x71737efe
add eax, 0xd74525c9
xor eax, 0x1e51e67f
cmp eax, 0x5b8801
jb 0x1804016a2
test r9b, 1
jne 0x1804016ce
jmp 0x1804016d5
call fcn.1804c6740
jmp 0x1804016d5
mov rbx, qword [r15]
mov eax, dword [str.3G_]
sub eax, dword [0x1807991e4]
xor eax, 0xc73ad72e
and eax, 0x47e1cd9a
and eax, 0x7ca7b638
cmp eax, 0xa795bb7d
ja 0x180401c12
jmp 0x180401700
mov ebp, dword [0x1807991e8]
and ebp, dword [0x1807991ec]
sub ebp, 0xd89f0ecd
or ebp, 0x321fd382
or ebp, 0x9b7d82c0
mov rcx, rbx
mov edx, 0x20
mov r8d, 8
call fcn.1804cafa0
mov rdi, qword [r14]
cmp ebp, 0xf989375b
ja 0x180401700
jmp 0x18040173e
mov eax, dword [0x1807991f0]
xor eax, dword [0x1807991f4]
and eax, 0x1f5db730
add eax, 0x5a7fc489
add eax, 0x631c3fab
cmp eax, 0x85ee8b13
jbe 0x180401c32
jmp 0x180401766
mov eax, dword [0x1807991f8]
sub eax, dword [0x1807991fc]
xor eax, 0x6fba5970
add eax, 0x2b98a8c1
or eax, 0xd3240de5
cmp eax, 0x6bb2e6d0
jbe 0x180401766
jmp 0x18040178a
mov eax, dword [0x180799200]
and eax, dword [0x180799204]
xor eax, 0x819a4cfa
add eax, 0x47bc6203
sub eax, 0xa93d2956
cmp eax, 0x7bf39a16
jae 0x180401c3f
jmp 0x1804017b2
mov eax, dword [0x180799208]
xor edx, edx
div dword [0x18079920c]
mov ebx, eax
sub ebx, 0xbeb84a3
and ebx, 0xa9fee0ef
or ebx, 0x86945581
mov rcx, rdi
call qword [sym.imp.ws2_32.dll_closesocket]
cmp ebx, 0xabf67c0e
ja 0x1804017b2
jmp 0x1804017e7
mov rcx, rsi
call fcn.18063b100
mov rax, qword [rsi]
mov ecx, dword [0x180799210]
sub ecx, dword [0x180799214]
sub ecx, 0x96455a84
add ecx, 0xa3e7c3c1
and ecx, 0xac5e1c70
cmp ecx, 0xebb76610
je 0x180401c59
mov ecx, dword [0x180799218]
xor ecx, dword [0x18079921c]
or ecx, 0x3b156fe7
sub ecx, 0xe52612da
xor ecx, 0x5c472a3c
cmp ecx, 0xc02c080c
jae 0x180401c59
test rax, rax
je 0x1804018d0
jmp 0x180401851
sub rax, 1
je 0x180401a41
jmp 0x18040185d
mov rcx, rsi
add rcx, 8
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x180401b06
mov eax, dword [0x180799220]
imul eax, dword [0x180799224]
add eax, 0xa6f4c1e0
or eax, 0xe37e1a3e
and eax, 0x9ed44b74
cmp eax, 0xf18f1098
jae 0x180401c6a
jmp 0x18040189f
mov eax, dword [0x180799228]
mov edx, dword [0x18079922c]
imul eax, edx
or eax, 0xb436a84b
add eax, 0x3d09cc6d
and eax, 0xb8c989cc
cmp eax, 0x1e5165bf
je 0x18040189f
jmp 0x1804018c6
call fcn.1804be730
jmp 0x180401b06
mov rdi, rsi
add rdi, 8
mov r8, qword [rsi + 8]
mov eax, dword [0x180799230]
xor edx, edx
div dword [0x180799234]
sub eax, 0xf4729c55
add eax, 0xffdd67e8
or eax, 0xb9ecd9b7
cmp eax, 0xe66f1444
ja 0x180401c7b
jmp 0x180401905
mov eax, dword [0x180799238]
or eax, dword [0x18079923c]
imul eax, eax, 0x95873c9
or eax, 0xa196f9f7
or eax, 0x6404057d
lock dec qword [r8]
sete cl
cmp eax, 0x5566e182
je 0x180401905
jmp 0x180401931
mov eax, dword [0x180799240]
imul eax, dword [0x180799244]
add eax, 0x6961172c
add eax, 0xe3a75dda
add eax, 0xd001a7af
cmp eax, 0x53485aad
je 0x180401c93
mov eax, dword [0x180799248]
or eax, dword [0x18079924c]
mov r8d, 0xb18cd4c3
xor edx, edx
div r8d
and eax, 0x85277b91
or eax, 0x50350df0
cmp eax, 0x5e599d8d
ja 0x180401c93
test cl, 1
jne 0x18040198e
jmp 0x180401b06
mov eax, dword [0x180799250]
xor edx, edx
div dword [0x180799254]
sub eax, 0x5fc1ee9f
sub eax, 0x9325fd50
sub eax, 0x8dead10a
cmp eax, 0x6197cb78
je 0x180401ca4
jmp 0x1804019b8
mov eax, dword [0x180799258]
mov ecx, dword [0x18079925c]
or eax, ecx
imul rax, rax, 0x230e99a7
shr rax, 0x3d
imul eax, eax, 0xb6476c34
xor eax, 0xdf32da52
cmp eax, 0xed6d9262
ja 0x1804019b8
jmp 0x1804019e5
mov eax, dword [0x180799260]
imul eax, dword [0x180799264]
sub eax, 0x2d0a9ddf
or eax, 0xf994b458
sub eax, 0xeae02c17
cmp eax, 0xbd52f3b8
je 0x180401cb1
jmp 0x180401a0e
mov eax, dword [0x180799268]
add eax, dword [0x18079926c]
or eax, 0x96618e72
xor eax, 0x59d5f7ee
imul ebx, eax, 0x8532db98
mov rcx, rdi
call fcn.1804bab90
cmp ebx, 0x9e49b037
jb 0x180401a0e
jmp 0x180401a3c
jmp 0x180401b06
mov rdi, rsi
add rdi, 8
mov rax, qword [rdi]
lock dec qword [rax]
sete al
test al, 1
je 0x180401b06
mov eax, dword [0x180799270]
add eax, dword [0x180799274]
and eax, 0x7b771f76
xor eax, 0x1f2996bb
xor eax, 0x4264fcc7
cmp eax, 0x5634cbc6
je 0x180401cca
jmp 0x180401a82
mov eax, dword [0x180799278]
imul eax, dword [0x18079927c]
and eax, 0x1b6bb193
and eax, 0x26c497e2
imul ebx, eax, 0x8dd988d
mov rcx, rdi
call fcn.1804b80b0
cmp ebx, 0x593eede2
jb 0x180401a82
jmp 0x180401ab1
mov eax, dword [0x180799280]
and eax, dword [0x180799284]
mov ecx, 0xf4afb89
xor edx, edx
div ecx
or eax, 0x1c777422
mov ecx, 0x2182ebcd
xor edx, edx
div ecx
cmp eax, 0x5983e1e9
ja 0x180401ce3
jmp 0x180401ae1
mov eax, dword [0x180799288]
and eax, dword [0x18079928c]
add eax, 0x650b2f0d
or eax, 0xd02e9536
imul eax, eax, 0xb16dd555
cmp eax, 0x972c9ca4
je 0x180401ae1
jmp 0x180401b06
add rsi, 0x10
mov eax, dword [0x180799290]
and eax, dword [0x180799294]
mov ecx, 0xab730a54
xor edx, edx
div ecx
imul eax, eax, 0xb1cb06f
xor eax, 0xb8e85979
cmp eax, 0x70695013
jbe 0x180401cf4
jmp 0x180401b37
mov eax, dword [0x180799298]
or eax, dword [0x18079929c]
sub eax, 0x3eebe85b
sub eax, 0x80fb873d
sub eax, 0x23201b07
cmp eax, 0xd199729d
je 0x180401b37
fsubp st(3)
add byte [rax - 0x75], cl
invalid
jmp 0x180401b5b
mov rax, qword [rsi]
lock dec qword [rax]
sete al
test al, 1
je 0x180401b73
mov rcx, rsi
call fcn.1804c2000
jmp 0x180401b73
mov eax, dword [0x1807992a0]
and eax, dword [str.jr2_]
and eax, 0x12ee6bd7
imul eax, eax, 0x676d0954
xor eax, 0xe1b26118
cmp eax, 0x9df5694d
jbe 0x180401d05
jmp 0x180401b9c
mov eax, dword [0x1807992a8]
sub eax, dword [0x1807992ac]
or eax, 0xcf1a1950
and eax, 0xe858345f
mov ecx, 0x16a76ee6
xor edx, edx
div ecx
cmp eax, 0xac2e223b
ja 0x180401b9c
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
cmp ebp, dword [rax]
jrcxz 0x180401b58
sub al, 0x8e
push 0xfffffffff989e9ab
invalid
or ebx, dword [rcx + 0x76]
int 0xe5
sbb eax, 0xfa04e959
invalid
xchg dword [rsi + 0x47], ebp
adc dword [rsp + rax - 0x38], esi
test eax, 0x4d3c4fe0
lock dec qword [r8]
sete al
jmp 0x18040164c
push rsp
fyl2x
and ebp, dword [rdi + 0x6a]
mov eax, 0xbb09b07b
hlt
jge 0x180401bc9
cmp byte [0x18f0fede8], dh
mov rcx, rbx
mov edx, 0x20
mov r8d, 8
call fcn.1804cafa0
jmp 0x1804016fe
push 0xffffffff8b14ced0
or bh, byte [rdi - 0x4da1677]
invalid
imul ecx, dword [rsi + 0x14308e84], 0x2c
lodsd eax, dword [rsi]
test byte [rsi - 0x52d3ebd0], cl
mov bh, 0x5e
xchg ecx, eax
and ecx, dword [rax - 0x77]
stc
call qword [sym.imp.ws2_32.dll_closesocket]
jmp 0x1804017b0
push qword [rbp - 0x1a]
jne 0x180401c41
jle 0x180401ca7
jbe 0x180401c58
sub eax, 0xa4f3e7da
jmp 0x18040181c
call rsp
xchg edi, eax
add ebp, dword [rdx - 0x1ceb5426]
add dword [rsi + 0x13], 0xffffffe9
stosb byte [rdi], al
fisubr dword [rbx + 0x4683e314]
adc ebp, ecx
and bh, ah
invalid
stosb byte [rdi], al
invalid
hlt
in al, dx
push rdx
xor byte [rbp - 0x2e4bc110], al
invalid
movabs dword [0xe9ebd4fbeff50aab], eax
add eax, 0x3afffffd
adc bh, bl
cmc
out dx, eax
sti
invalid
cmp dl, byte [rdx]
sti
stc
sti
jae 0x180401c6e
invalid
jb 0x180401c94
sub al, 0xe9
iretd
cmpsb byte [rsi], byte [rdi]
nop
ret 0xdfd
adc dword [rbx - 0x123322a4], esp
mov ah, 0xa7
add byte [rsi - 0x80], ch
mov esp, 0xfffe30e9
jmp qword [rdi - 0x3ca8c7e4]
cmpsd dword [rsi], dword [rdi]
sbb al, 0x38
push rdi
ret