Function at 0x14004c710
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov rsi, rcx
mov eax, dword [0x1402a1fe8]
mov ecx, dword [str.m6J_]
shrd ecx, eax, 0x1c
xor ecx, 0xcadbcca2
mov eax, ecx
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400fe1d0
sub rsp, rax
mov rbx, rsp
mov eax, dword [0x1402a1ff0]
mov ecx, dword [0x1402a1ff4]
shrd ecx, eax, 5
xor ecx, 0xc109774
mov eax, ecx
lea rax, [rax + rax*4]
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.1400fe1d0
sub rsp, rax
mov rdi, rsp
imul eax, dword [0x1402a1ff8], 0xda6dd96b
imul ecx, dword [0x1402a1ffc], 0x15bb7750
add eax, ecx
add eax, 0x372eae6e
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400fe1d0
sub rsp, rax
mov r14, rsp
movabs rax, 0x2cb623809c731297
imul rax, qword [0x1402a2000]
movabs rcx, 0x20863c3cd1a3c7d1
imul rcx, qword [0x1402a2008]
add rcx, rax
movabs rax, 0xf1968fc8088a8b4b
add rax, rcx
cmp qword [rsi + 0x40], rax
jne 0x14004acbd
sub rsp, 0x20
mov rcx, rsi
call fcn.14004b1ac
add rsp, 0x20
test al, al
je 0x14004adb2
movabs r15, 0x100002600
sub rsp, 0x20
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
mov eax, dword [rsi + 0x34]
cmp rax, 0x20
ja 0x14004ace6
bt r15, rax
jb 0x14004acc7
mov cl, byte [0x1402a2010]
mov dl, byte [0x1402a2011]
shr dl, 5
shl cl, 3
or cl, dl
xor cl, 0xa9
cmp byte [rsi + 0x30], cl
je 0x14004ad79
mov ecx, eax
mov eax, dword [0x1402a2014]
mov edx, dword [0x1402a2018]
shrd edx, eax, 6
xor edx, 0xf476f699
mov eax, ecx
cmp ecx, edx
jne 0x14004ad79
sub rsp, 0x20
mov rcx, rsi
call fcn.14004b23a
add rsp, 0x20
test al, al
je 0x14004add7
sub rsp, 0x20
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
mov eax, dword [rsi + 0x34]
cmp rax, 0x20
ja 0x14004ad57
bt r15, rax
jb 0x14004ad38
mov ecx, eax
mov al, byte [0x1402a2012]
mov dl, byte [0x1402a2013]
shr dl, 4
shl al, 4
or al, dl
mov edx, eax
xor dl, 0x90
mov eax, ecx
cmp byte [rsi + 0x30], dl
jne 0x14004ad04
cmp eax, 0x5a
jg 0x14004ade9
mov ecx, eax
add ecx, 0xffffffde
cmp ecx, 0x18
ja case.default.0x14004ad9c
mov eax, ecx
lea rcx, [0x14004b148]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov rcx, rsi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
jmp 0x14004c710
sub rsp, 0x20
lea rdi, [0x1402bf3f0]
lea rdx, [0x14021f8d3]
mov rcx, rdi
call fcn.140071d20
add rsp, 0x20
mov qword [rsi + 0x90], rdi
mov eax, reloc.WS2_32.dll_ntohl
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
cmp eax, 0x6d
jle 0x14004aedf
cmp eax, 0x7a
jg 0x14004affc
cmp eax, 0x6e
je 0x14004b040
cmp eax, 0x74
jne case.0x14004ad9c.35
movzx eax, byte [0x1402a201c]
movzx ecx, byte [0x1402a201d]
imul eax, eax, 0x7b
imul ecx, ecx, 0x35
add cl, al
add cl, 0xc4
mov byte [rbx + 1], cl
movzx eax, byte [0x1402a201e]
movzx ecx, byte [0x1402a201f]
imul eax, eax, 0xffffffa8
imul ecx, ecx, 0xffffffac
add cl, al
add cl, 0x45
mov byte [rbx + 2], cl
movzx eax, byte [0x1402a2020]
movzx ecx, byte [reloc.WS2_32.dll_ntohl]
imul eax, eax, 0x52
mov edx, ecx
shl edx, 5
sub edx, ecx
mov ecx, edx
add cl, al
add cl, 0x5d
mov byte [rbx + 3], cl
movabs rdi, 0x6df73140d8286459
movabs r14, 0xedd3568913285fd
mov r15d, 1
sub rsp, 0x20
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
cmp byte [rbx + r15], al
jne case.0x14004ad9c.35
mov rax, qword [0x1402a2028]
mov rcx, qword [0x1402a2030]
shrd rcx, rax, 2
xor rcx, rdi
mov rax, r15
add rax, rcx
mov rcx, qword [0x1402a2038]
mov rdx, qword [0x1402a2040]
shrd rdx, rcx, 0x13
xor rdx, r14
mov r15, rax
cmp rax, rdx
jne 0x14004ae81
mov eax, 1
jmp 0x14004addc
cmp eax, 0x5b
je 0x14004b134
cmp eax, 0x5d
je 0x14004b13e
cmp eax, 0x66
jne case.0x14004ad9c.35
movzx eax, byte [0x1402a2048]
movzx ecx, byte [0x1402a2049]
imul eax, eax, 0x67
imul ecx, ecx, 0x6f
add cl, al
add cl, 0x15
mov byte [rdi + 1], cl
movzx eax, byte [0x1402a204a]
movzx ecx, byte [0x1402a204b]
shl eax, 5
lea eax, [rax + rax*2]
neg eax
mov edx, ecx
shl edx, 5
sub edx, ecx
mov ecx, edx
add cl, al
add cl, 0xcd
mov byte [rdi + 2], cl
mov al, byte [0x1402a204c]
mov cl, byte [0x1402a204d]
shr cl, 4
shl al, 4
or al, cl
xor al, 0x11
mov byte [rdi + 3], al
mov al, byte [0x1402a204e]
mov cl, byte [0x1402a204f]
shr cl, 2
shl al, 6
or al, cl
xor al, 0x4b
mov byte [rdi + 4], al
movabs rbx, 0xd292d49947067496
movabs r14, 0x5c8c991c1956abe1
mov r15d, 1
sub rsp, 0x20
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
cmp byte [rdi + r15], al
jne case.0x14004ad9c.35
mov rax, qword [0x1402a2050]
mov rcx, qword [0x1402a2058]
shrd rcx, rax, 0x2f
xor rcx, rbx
mov rax, r15
add rax, rcx
mov rcx, qword [0x1402a2060]
mov rdx, qword [0x1402a2068]
shrd rdx, rcx, 3
xor rdx, r14
mov r15, rax
cmp rax, rdx
jne 0x14004af89
mov eax, 2
jmp 0x14004addc
inc eax
cmp eax, 2
jae case.0x14004ad9c.35
mov eax, recv
jmp 0x14004addc
cmp eax, 0x7b
je 0x14004b12a
cmp eax, 0x7d
jne case.0x14004ad9c.35
mov eax, ntohl
jmp 0x14004addc
mov eax, recv
jmp 0x14004addc
mov rcx, rsi
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
jmp fcn.14004b306
mov eax, recv
jmp 0x14004addc
movzx eax, byte [0x1402a2070]
movzx ecx, byte [0x1402a2071]
lea eax, [rax + rax*4]
neg eax
mov edx, ecx
shl edx, 6
lea ecx, [rdx + rcx*2]
add cl, al
add cl, 0x7c
mov byte [r14 + 1], cl
mov al, byte [0x1402a2072]
mov cl, byte [0x1402a2073]
shr cl, 5
shl al, 3
or al, cl
xor al, 0x8f
mov byte [r14 + 2], al
mov al, byte [0x1402a2074]
mov cl, byte [0x1402a2075]
shr cl, 1
shl al, 7
or al, cl
xor al, 0x32
mov byte [r14 + 3], al
movabs rdi, 0x5141e92112d95b28
movabs rbx, 0x56a3dbd327326c53
mov r15d, 1
sub rsp, 0x20
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
cmp byte [r14 + r15], al
jne case.0x14004ad9c.35
mov rax, qword [0x1402a2078]
mov rcx, qword [0x1402a2080]
shrd rcx, rax, 0x18
xor rcx, rdi
mov rax, r15
add rax, rcx
mov rcx, qword [0x1402a2088]
mov rdx, qword [0x1402a2090]
shrd rdx, rcx, 0x26
xor rdx, rbx
mov r15, rax
cmp rax, rdx
jne 0x14004b0b1
mov eax, 3
jmp 0x14004addc
sub rsp, 0x20
lea rdi, [0x1402bf424]
lea rdx, [0x14021f929]
mov rcx, rdi
call fcn.140071e10
jmp 0x14004adcc
mov eax, 9
jmp 0x14004addc
mov eax, 8
jmp 0x14004addc
mov eax, 0xa
jmp 0x14004addc
push rbp
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov rsi, rcx
imul eax, dword [0x1402a2298], 0x602439dd
imul ecx, dword [0x1402a229c], 0x4c62b5b4
add eax, ecx
add eax, 0xf43d8abf
lea rax, [rax*8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400fe1d0
sub rsp, rax
mov rdi, rsp
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d774
add rsp, 0x20
mov eax, dword [rsi + 0x34]
mov ecx, eax
add ecx, 0xffffffcf
cmp ecx, 9
jae 0x14004c79c
mov ebx, 5
mov edx, eax
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
mov ecx, eax
add ecx, 0xffffffd0
cmp ecx, 0xa
jae 0x14004c81d
mov edx, dword [rsi + 0x34]
jmp 0x14004c771
cmp eax, 0x30
je 0x14004c7fe
cmp eax, 0x2d
jne 0x14004c7d3
imul eax, dword [0x1402a22a0], 0x940bf372
imul ecx, dword [0x1402a22a4], 0xea56493c
lea edx, [rax + rcx]
add edx, 0xb7f6d315
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
add rsp, 0x20
sub rsp, 0x20
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
mov ecx, eax
add ecx, 0xffffffcf
cmp ecx, 9
jae 0x14004cc60
mov eax, dword [rsi + 0x34]
mov ebx, 6
jmp 0x14004c76f
mov edx, eax
mov ebx, 5
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
cmp eax, 0x2e
je 0x14004c942
cmp eax, 0x45
je 0x14004c834
cmp eax, 0x65
jne 0x14004c9dd
mov edx, dword [rsi + 0x34]
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
mov ecx, eax
add ecx, 0xffffffd0
cmp ecx, 0xa
jae 0x14004ca6a
mov edx, dword [rsi + 0x34]
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
mov ecx, dword [0x1402a22c8]
mov edx, dword [str.on__]
shrd edx, ecx, 0x1a
xor edx, 0x12c6f5c6
add edx, eax
imul eax, dword [0x1402a22d0], 0xf27a4c06
imul ecx, dword [0x1402a22d4], 0x396e5556
add eax, ecx
add eax, 0x16dd0e08
cmp edx, eax
jb 0x14004c85d
sub rsp, 0x20
mov rcx, rsi
call fcn.14004ce58
add rsp, 0x20
mov qword [rdi], 0
sub rsp, 0x20
call fcn.1401adb8c
add rsp, 0x20
mov ecx, dword [0x1402a22d8]
mov edx, dword [0x1402a22dc]
shrd edx, ecx, 0x17
xor edx, 0x79cdd432
mov dword [rax], edx
lea rax, [rsi + 0x70]
mov rcx, qword [0x1402a2328]
mov rdx, qword [0x1402a2330]
shrd rdx, rcx, 0x18
movabs rcx, 0x8f5d5c00de1c8828
xor rcx, rdx
cmp qword [rsi + 0x88], rcx
jbe 0x14004c91d
mov rcx, qword [rax]
jmp 0x14004c920
mov rcx, rax
sub rsp, 0x20
mov rdx, rdi
call fcn.1401b6534
add rsp, 0x20
movsd qword [rsi + 0xa8], xmm0
mov eax, 7
jmp 0x14004cc9c
mov edx, dword [rsi + 0xb0]
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
imul ecx, dword [0x1402a22a8], 0x1a67d285
imul edx, dword [0x1402a22ac], 0x1aa2e3cc
add edx, ecx
mov ecx, dword [0x1402a22b0]
mov r8d, dword [0x1402a22b4]
shrd r8d, ecx, 0x1a
mov ecx, edx
add eax, ecx
add eax, 0xc073ece3
xor r8d, 0x323bf2ba
cmp eax, r8d
jae 0x14004caf5
mov edx, dword [rsi + 0x34]
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
mov ecx, eax
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x14004c9a1
cmp eax, 0x65
je 0x14004c834
cmp eax, 0x45
je 0x14004c834
jmp 0x14004c8af
sub rsp, 0x20
mov rcx, rsi
call fcn.14004ce58
add rsp, 0x20
mov qword [rdi], 0
sub rsp, 0x20
call fcn.1401adb8c
add rsp, 0x20
imul ecx, dword [0x1402a22e0], 0xadf6b0b8
imul edx, dword [0x1402a22e4], 0x2b8ae2e3
add ecx, edx
add ecx, 0x53d87822
mov dword [rax], ecx
cmp ebx, 6
je 0x14004cb14
cmp ebx, 5
jne 0x14004c8eb
lea rax, [rsi + 0x70]
mov rcx, qword [0x1402a22e8]
mov rdx, qword [0x1402a22f0]
shrd rdx, rcx, 0x2f
movabs rcx, 0x8a28fd42ba185b66
xor rcx, rdx
cmp qword [rsi + 0x88], rcx
jbe 0x14004cb80
mov rcx, qword [rax]
jmp 0x14004cb83
cmp eax, 0x2d
je 0x14004ca78
cmp eax, 0x2b
jne 0x14004cb61
mov edx, dword [rsi + 0x34]
sub rsp, 0x20
mov rcx, rsi
call fcn.14004d88e
mov rcx, rsi
call fcn.14004cca6
add rsp, 0x20
imul ecx, dword [0x1402a22b8], 0xf29f466e
imul edx, dword [0x1402a22bc], 0x8b0a8242
add edx, ecx
mov ecx, edx
add eax, ecx
add eax, 0xd325a256
imul ecx, dword [0x1402a22c0], 0x58ea2a65
imul edx, dword [0x1402a22c4], 0xc53b0d38
add ecx, edx
add ecx, 0xe8a53f18
cmp eax, ecx
jb 0x14004c85d
sub rsp, 0x20
lea rdi, [0x1402c0090]
lea rdx, [0x140220c6a]
mov rcx, rdi
call fcn.140074670
jmp 0x14004cc8c
sub rsp, 0x20
lea rdi, [0x1402c0020]
lea rdx, [0x140220ba7]
mov rcx, rdi
call fcn.140074490
jmp 0x14004cc8c
movabs rcx, 0x21572bb0694b5705
imul rcx, qword [0x1402a2308]
movabs rdx, 0x2a2f86161129a90a
imul rdx, qword [0x1402a2310]
lea rax, [rsi + 0x70]
add rdx, rcx
movabs rcx, 0x30f029daaa2ef187
add rcx, rdx
cmp qword [rsi + 0x88], rcx
jbe 0x14004cbf2
mov rcx, qword [rax]
jmp 0x14004cbf5
sub rsp, 0x20
lea rdi, [0x1402c0050]
lea rdx, [0x140220bff]
mov rcx, rdi
call fcn.140074580
jmp 0x14004cc8c
mov rcx, rax
mov eax, dword [0x1402a22f8]
mov edx, dword [0x1402a22fc]
shrd edx, eax, 6
mov r8d, edx
xor r8d, 0x532f90d7
sub rsp, 0x20
mov rdx, rdi
call fcn.1401b6fb4
add rsp, 0x20
mov rbx, rax
sub rsp, 0x20
call fcn.1401adb8c
add rsp, 0x20
imul ecx, dword [0x1402a2300], 0x5f40264e
imul edx, dword [0x1402a2304], 0x9d11e844
add ecx, edx
add ecx, 0x4dea39ae
cmp dword [rax], ecx
jne 0x14004c8eb
mov qword [rsi + 0xa0], rbx
mov eax, 5
jmp 0x14004cc9c
mov rcx, rax
imul eax, dword [0x1402a2318], 0xb4ea124b
imul edx, dword [0x1402a231c], 0x109edef6
lea r8d, [rax + rdx]
add r8d, 0x75172246
sub rsp, 0x20
mov rdx, rdi
call fcn.1401b6f5c
add rsp, 0x20
mov rbx, rax
sub rsp, 0x20
call fcn.1401adb8c
add rsp, 0x20
mov ecx, dword [0x1402a2320]
mov edx, dword [0x1402a2324]
shrd edx, ecx, 0x15
xor edx, 0xb4f4bbd4
cmp dword [rax], edx
jne 0x14004c8eb
mov qword [rsi + 0x98], rbx
mov eax, 6
jmp 0x14004cc9c
cmp eax, 0x30
jne 0x14004cc72
mov edx, dword [rsi + 0x34]
mov ebx, 6
jmp 0x14004c805
sub rsp, 0x20
lea rdi, [0x1402bfff0]
lea rdx, [0x140220b50]
mov rcx, rdi
call fcn.1400743b0
add rsp, 0x20
mov qword [rsi + 0x90], rdi
mov eax, reloc.WS2_32.dll_ntohl
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop rbp
ret