Function at 0x14008e230
Capabilities:
Encode data using xor
Hash data with md5

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1660]
mov eax, 0x1760
call fcn.14002f320
sub rsp, rax
xorps xmm0, xmm0
lea rdi, [rsp + 0x48]
mov rsi, rcx
xor eax, eax
mov ecx, reloc.WS2_32.dll_recv
mov qword [rbp + 0x30], rax
rep stosd dword [rdi], eax
mov r12, qword [rsi + 0x238]
lea rdi, [rbp - 0x78]
mov ecx, 4
rep stosd dword [rdi], eax
xor edi, edi
mov byte [rbp - 0x68], al
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x30], 0x67452301
mov dword [rsp + 0x34], 0xefcdab89
mov dword [rsp + 0x38], 0x98badcfe
mov dword [rsp + 0x3c], 0x10325476
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp - 0x60], xmm0
cmp r12, 0x2b1
jbe 0x14008eda2
mov r13, qword [rsi + 0x230]
add r12, 0xfffffffffffffd4f
mov r8, r12
mov qword [rbp + 0x16a8], r12
mov rcx, r13
lea rdx, [r13 + 0x2b1]
call fcn.14014dae0
cmp r12, qword [rsi + 0x240]
ja 0x14008e311
mov qword [rsi + 0x238], r12
lea rax, [rbp + 0xd0]
mov dword [rsp + 0x28], 0x3f
mov r14, 0xffffffffffffffff
mov qword [rsp + 0x20], rax
mov r9d, r14d
mov r8, rsi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edx, [r14 + 0x2f]
lea rcx, [rbp + 0xd0]
call fcn.140031060
test rax, rax
je 0x14008e354
mov word [rax], di
mov eax, edi
mov byte [rbp - 0x68], dil
mov dword [rsp + 0x40], eax
lea rcx, [rbp + 0xd0]
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x30], 0x67452301
mov dword [rsp + 0x34], 0xefcdab89
mov dword [rsp + 0x38], 0x98badcfe
mov dword [rsp + 0x3c], 0x10325476
nop dword [rax]
inc r14
cmp word [rcx + r14*2], ax
jne 0x14008e390
add r14d, r14d
mov ebx, 0x40
cmp r14d, 1
jb 0x14008e454
lea eax, [r14*8]
mov dword [rsp + 0x40], eax
mov eax, r14d
shr eax, 0x1d
mov dword [rsp + 0x44], eax
cmp r14d, ebx
jb 0x14008e411
lea rdi, [rsp + 0x48]
mov ecx, reloc.WS2_32.dll_recv
lea rsi, [rbp + 0xd0]
rep movsd dword [rdi], dword [rsi]
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x48]
call fcn.140071d80
mov edi, ebx
cmp r14d, 0x7f
jbe 0x14008e411
mov eax, edi
lea rdx, [rbp + 0xd0]
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140071d80
add edi, ebx
lea eax, [rdi + 0x3f]
cmp eax, r14d
jb 0x14008e3f1
sub r14d, edi
mov eax, edi
lea r8, [rbp + 0xd0]
mov ecx, r14d
shr rcx, 2
lea rdi, [rsp + 0x48]
add r8, rax
mov edx, r14d
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14008e44e
and rdx, 0xfffffffffffffffc
lea rdi, [rsp + 0x48]
add rdi, rdx
lea rsi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rsp + 0x40]
xor edi, edi
cmp byte [rbp - 0x68], 0
lea r10, [0x1401f2e70]
mov r14d, 0x78
lea r15d, [r14 - 0x40]
jne 0x14008e7bb
mov ecx, eax
add eax, 0x50
shr ecx, 3
and ecx, 0x3f
mov dword [rsp + 0x40], eax
cmp eax, 0x50
jae 0x14008e487
inc dword [rsp + 0x44]
mov r14d, ebx
lea r9, str.MetaQuotes
sub r14d, ecx
cmp r14d, 0xa
ja 0x14008e51e
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, r14d
shr rcx, 2
mov rdi, r8
mov rsi, r9
mov edx, r14d
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14008e4d0
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r9]
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [r14 + 0x3f]
cmp eax, 0xa
jae 0x14008e50c
lea rdi, str.MetaQuotes
nop
mov edx, r14d
lea rcx, [rsp + 0x30]
add rdx, rdi
call fcn.140071d80
add r14d, ebx
lea eax, [r14 + 0x3f]
cmp eax, 0xa
jb 0x14008e4f0
xor ecx, ecx
lea r10, [0x1401f2e70]
lea r9, str.MetaQuotes
jmp 0x14008e521
mov r14d, edi
mov eax, ecx
mov edx, 0xa
sub edx, r14d
mov r8d, r14d
add r8, r9
mov ecx, edx
shr rcx, 2
lea r9, [rsp + 0x48]
add r9, rax
mov rsi, r8
mov rdi, r9
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14008e55c
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
cmp byte [rbp - 0x68], 0
jne 0x14008e7b5
mov edx, dword [rsp + 0x40]
lea rdi, [rbp + 0x16a0]
lea rsi, [rsp + 0x40]
mov ecx, 2
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
mov eax, 0x78
shr ecx, 3
mov r12d, r15d
and ecx, 0x3f
sub eax, ecx
sub r12d, ecx
cmp ecx, r15d
cmovae r12d, eax
cmp r12d, 1
jb 0x14008e699
lea eax, [r12*8]
add edx, eax
mov dword [rsp + 0x40], edx
cmp edx, eax
mov edx, dword [rsp + 0x44]
jae 0x14008e5bb
inc edx
mov eax, r12d
mov r14d, ebx
shr eax, 0x1d
sub r14d, ecx
add edx, eax
mov dword [rsp + 0x44], edx
cmp r12d, r14d
jb 0x14008e650
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, r14d
shr rcx, 2
mov rdi, r8
mov rsi, r10
mov edx, r14d
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14008e604
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r10]
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [r14 + 0x3f]
lea rdi, [0x1401f2e70]
cmp eax, r12d
jae 0x14008e64c
nop dword [rax]
nop word [rax + rax]
mov edx, r14d
lea rcx, [rsp + 0x30]
add rdx, rdi
call fcn.140071d80
add r14d, ebx
lea eax, [r14 + 0x3f]
cmp eax, r12d
jb 0x14008e630
xor ecx, ecx
jmp 0x14008e65a
xor r14d, r14d
lea rdi, [0x1401f2e70]
mov eax, ecx
lea r9, [rsp + 0x48]
sub r12d, r14d
mov r8d, r14d
add r8, rdi
mov ecx, r12d
shr rcx, 2
add r9, rax
mov rdi, r9
mov edx, r12d
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, r12d
and ecx, 3
je 0x14008e695
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
mov edx, dword [rsp + 0x40]
cmp byte [rbp - 0x68], 0
jne 0x14008e78c
mov ecx, edx
add edx, ebx
shr ecx, 3
and ecx, 0x3f
mov dword [rsp + 0x40], edx
cmp edx, ebx
jae 0x14008e6b9
inc dword [rsp + 0x44]
mov r14d, ebx
sub r14d, ecx
cmp r14d, 8
ja 0x14008e747
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, r14d
shr rcx, 2
lea rsi, [rbp + 0x16a0]
mov rdi, r8
mov edx, r14d
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14008e705
and rdx, 0xfffffffffffffffc
lea rsi, [rbp + 0x16a0]
add rsi, rdx
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [r14 + 0x3f]
cmp eax, 8
jae 0x14008e743
nop dword [rax]
mov eax, r14d
lea rdx, [rbp + 0x16a0]
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140071d80
add r14d, ebx
lea eax, [r14 + 0x3f]
cmp eax, 8
jb 0x14008e720
xor ecx, ecx
jmp 0x14008e74a
xor r14d, r14d
mov edx, 8
mov eax, r14d
sub edx, r14d
lea r8, [rbp + 0x16a0]
add r8, rax
lea r9, [rsp + 0x48]
mov eax, ecx
mov rsi, r8
add r9, rax
mov ecx, edx
shr rcx, 2
mov rdi, r9
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14008e78c
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r8]
lea rdi, [rdx + r9]
rep movsb byte [rdi], byte [rsi]
mov r12, qword [rbp + 0x16a8]
lea rdi, [rbp - 0x78]
lea rsi, [rsp + 0x30]
mov ecx, 4
rep movsd dword [rdi], dword [rsi]
lea rdi, [rsp + 0x48]
mov ecx, reloc.WS2_32.dll_recv
xor eax, eax
rep stosd dword [rdi], eax
mov byte [rbp - 0x68], 1
mov r14d, 0x78
lea rdi, [rbp - 0x60]
mov ecx, 4
lea rsi, [rbp - 0x78]
rep movsd dword [rdi], dword [rsi]
test r13, r13
je 0x14008e802
test r12d, r12d
je 0x14008e802
xor dl, dl
mov r8d, r12d
xor esi, esi
mov rdi, r13
nop
movzx ecx, byte [rdi]
lea rdi, [rdi + 1]
mov rax, rsi
inc rsi
and eax, 0xf
add dl, byte [rbp + rax - 0x60]
xor dl, cl
mov byte [rdi - 1], dl
movzx edx, cl
sub r8, 1
jne 0x14008e7e0
cmp byte [r13], 0x50
jne 0x14008eda2
cmp byte [r13 + 1], 0x4b
jne 0x14008eda2
lea rsi, [r13 - 0x88]
mov ecx, 0x22
add rsi, r12
lea rdi, [rbp - 0x50]
rep movsd dword [rdi], dword [rsi]
lea rcx, [rbp + 0x15c]
mov dword [rbp + 0x150], 0x21
xor edx, edx
mov qword [rbp + 0x154], rbx
mov r8d, 0x280
mov qword [rbp + 0x3dc], 0x280
xor edi, edi
call fcn.14014e180
xorps xmm0, xmm0
lea rcx, [rbp + 0x4e4]
xorps xmm1, xmm1
xor edx, edx
mov r8d, 0x1078
movups xmmword [rbp + 0x3e4], xmm0
movups xmmword [rbp + 0x3f4], xmm0
movups xmmword [rbp + 0x404], xmm0
movups xmmword [rbp + 0x414], xmm0
movups xmmword [rbp + 0x424], xmm0
movups xmmword [rbp + 0x434], xmm0
movups xmmword [rbp + 0x444], xmm0
movups xmmword [rbp + 0x454], xmm0
movups xmmword [rbp + 0x464], xmm1
movups xmmword [rbp + 0x474], xmm1
movups xmmword [rbp + 0x484], xmm1
movups xmmword [rbp + 0x494], xmm1
movups xmmword [rbp + 0x4a4], xmm1
movups xmmword [rbp + 0x4b4], xmm1
movups xmmword [rbp + 0x4c4], xmm1
movups xmmword [rbp + 0x4d4], xmm1
call fcn.14014e180
lea rax, [rbp + 0x4e4]
mov qword [rbp + 0x1560], rdi
mov qword [rbp + 0x1568], rax
lea rax, [rbp + 0x56c]
mov qword [rbp + 0x1570], rax
lea rax, [rbp + 0x5f4]
mov qword [rbp + 0x1578], rax
lea rax, [rbp + 0x67c]
mov qword [rbp + 0x1580], rax
lea rax, [rbp + 0x704]
mov qword [rbp + 0x1588], rax
lea rax, [rbp + 0x78c]
mov qword [rbp + 0x1590], rax
lea rax, [rbp + 0x814]
mov qword [rbp + 0x1598], rax
lea rax, [rbp + 0x89c]
mov qword [rbp + 0x15a0], rax
lea rax, [rbp + 0x924]
mov qword [rbp + 0x15a8], rax
lea rax, [rbp + 0x9ac]
mov qword [rbp + 0x15b0], rax
lea rax, [rbp + 0xa34]
mov qword [rbp + 0x15b8], rax
lea rax, [rbp + 0xabc]
mov qword [rbp + 0x15c0], rax
lea rax, [rbp + 0xb44]
mov qword [rbp + 0x15c8], rax
lea rax, [rbp + 0xbcc]
mov qword [rbp + 0x15d0], rax
lea rax, [rbp + 0xc54]
mov qword [rbp + 0x15d8], rax
lea rax, [rbp + 0xcdc]
mov qword [rbp + 0x15e0], rax
lea rax, [rbp + 0xd64]
mov qword [rbp + 0x15e8], rax
lea rax, [rbp + 0xdec]
mov qword [rbp + 0x15f0], rax
lea rax, [rbp + 0xe74]
mov qword [rbp + 0x15f8], rax
lea rax, [rbp + 0xefc]
mov qword [rbp + 0x1600], rax
lea rax, [rbp + 0xf84]
mov qword [rbp + 0x1608], rax
lea rax, [rbp + 0x100c]
mov qword [rbp + 0x1610], rax
lea rax, [rbp + 0x1094]
mov qword [rbp + 0x1618], rax
lea r9, [0x1401f36a8]
xorps xmm0, xmm0
lea rax, [rbp + 0x111c]
mov qword [rbp + 0x1620], rax
lea r8, [rbp - 0x50]
lea rax, [rbp + 0x11a4]
mov qword [rbp + 0x1628], rax
lea rdx, [rbp + 0x40]
lea rax, [rbp + 0x122c]
mov qword [rbp + 0x1630], rax
lea rcx, [rbp + 0x150]
lea rax, [rbp + 0x12b4]
mov qword [rbp + 0x1638], rax
lea rax, [rbp + 0x133c]
mov qword [rbp + 0x1640], rax
lea rax, [rbp + 0x13c4]
mov qword [rbp + 0x1648], rax
lea rax, [rbp + 0x144c]
mov qword [rbp + 0x1650], rax
lea rax, [rbp + 0x14d4]
mov qword [rbp + 0x1658], rax
xor eax, eax
mov qword [rbp + 0xc0], rax
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
call fcn.140020c40
test eax, eax
js 0x14008eda2
xor eax, eax
mov byte [rbp - 0x68], 0
lea rdi, [rbp - 0x50]
mov qword [rsp + 0x40], rax
lea rsi, [rbp + 0x40]
mov dword [rsp + 0x30], 0x67452301
mov ecx, 0x22
mov dword [rsp + 0x34], 0xefcdab89
rep movsd dword [rdi], dword [rsi]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x38], 0x98badcfe
lea r8d, [r12 - 0x88]
mov dword [rsp + 0x3c], 0x10325476
mov rdx, r13
call fcn.140072a10
cmp byte [rbp - 0x68], 0
jne 0x14008ed79
mov edx, dword [rsp + 0x40]
lea rdi, [rbp + 0x16a0]
lea rsi, [rsp + 0x40]
mov ecx, 2
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
shr ecx, 3
and ecx, 0x3f
sub r14d, ecx
sub r15d, ecx
cmp ecx, 0x38
cmovae r15d, r14d
cmp r15d, 1
jb 0x14008ec72
lea eax, [r15*8]
add edx, eax
mov dword [rsp + 0x40], edx
cmp edx, eax
mov edx, dword [rsp + 0x44]
jae 0x14008eba4
inc edx
mov eax, r15d
lea r12, [0x1401f2e70]
shr eax, 0x1d
mov r14d, ebx
add edx, eax
sub r14d, ecx
mov dword [rsp + 0x44], edx
cmp r15d, r14d
jb 0x14008ec30
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, r14d
shr rcx, 2
mov rdi, r8
mov rsi, r12
mov edx, r14d
rep movsd dword [rdi], dword [rsi]
mov ecx, r14d
and ecx, 3
je 0x14008ebf4
and rdx, 0xfffffffffffffffc
lea rsi, [rdx + r12]
lea rdi, [rdx + r8]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [r14 + 0x3f]
cmp eax, r15d
jae 0x14008ec2c
nop dword [rax]
mov edx, r14d
lea rcx, [rsp + 0x30]
add rdx, r12
call fcn.140071d80
add r14d, ebx
lea eax, [r14 + 0x3f]
cmp eax, r15d
jb 0x14008ec10
xor ecx, ecx
jmp 0x14008ec33
xor r14d, r14d
mov eax, ecx
lea r9, [rsp + 0x48]
sub r15d, r14d
mov r8d, r14d
add r8, r12
mov ecx, r15d
shr rcx, 2
add r9, rax
mov rdi, r9
mov edx, r15d
mov rsi, r8
rep movsd dword [rdi], dword [rsi]
mov ecx, r15d
and ecx, 3
je 0x14008ec6e
and rdx, 0xfffffffffffffffc
lea rsi, [r8 + rdx]
lea rdi, [r9 + rdx]
rep movsb byte [rdi], byte [rsi]
mov edx, dword [rsp + 0x40]
cmp byte [rbp - 0x68], 0
jne 0x14008ed57
mov ecx, edx
add edx, ebx
shr ecx, 3
and ecx, 0x3f
mov dword [rsp + 0x40], edx
cmp edx, ebx
jae 0x14008ec92
inc dword [rsp + 0x44]
sub ebx, ecx
cmp ebx, 8
ja 0x14008ed15
mov eax, ecx
lea r8, [rsp + 0x48]
add r8, rax
mov ecx, ebx
shr rcx, 2
lea rsi, [rbp + 0x16a0]
mov rdi, r8
mov edx, ebx
rep movsd dword [rdi], dword [rsi]
mov ecx, ebx
and ecx, 3
je 0x14008ecd6
and rdx, 0xfffffffffffffffc
lea rsi, [rbp + 0x16a0]
add rsi, rdx
lea rdi, [r8 + rdx]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x30]
call fcn.140071d80
lea eax, [rbx + 0x3f]
cmp eax, 8
jae 0x14008ed11
nop dword [rax]
mov eax, ebx
lea rdx, [rbp + 0x16a0]
add rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140071d80
add ebx, 0x40
lea eax, [rbx + 0x3f]
cmp eax, 8
jb 0x14008ecf0
xor ecx, ecx
jmp 0x14008ed17
xor ebx, ebx
mov edx, 8
mov eax, ebx
sub edx, ebx
lea r8, [rbp + 0x16a0]
add r8, rax
lea r9, [rsp + 0x48]
mov eax, ecx
mov rsi, r8
add r9, rax
mov ecx, edx
shr rcx, 2
mov rdi, r9
rep movsd dword [rdi], dword [rsi]
mov ecx, edx
and ecx, 3
je 0x14008ed57
and rdx, 0xfffffffffffffffc
lea rsi, [r8 + rdx]
lea rdi, [r9 + rdx]
rep movsb byte [rdi], byte [rsi]
lea rdi, [rbp - 0x78]
mov ecx, 4
lea rsi, [rsp + 0x30]
xor eax, eax
rep movsd dword [rdi], dword [rsi]
lea rdi, [rsp + 0x48]
mov ecx, reloc.WS2_32.dll_recv
rep stosd dword [rdi], eax
mov byte [rbp - 0x68], 1
lea rdi, [rbp - 0x60]
mov ecx, 4
lea rsi, [rbp - 0x78]
rep movsd dword [rdi], dword [rsi]
mov rax, qword [rbp - 0x60]
sub rax, qword [rbp - 0x50]
jne 0x14008ed9a
mov rax, qword [rbp - 0x58]
sub rax, qword [rbp - 0x48]
test rax, rax
sete dl
jmp 0x14008eda4
xor dl, dl
mov rbx, qword [rsp + 0x17b0]
lea rdi, [rbp - 0x78]
xor eax, eax
mov ecx, 4
rep stosd dword [rdi], eax
lea rdi, [rsp + 0x30]
mov ecx, 4
rep stosd dword [rdi], eax
movzx eax, dl
add rsp, 0x1760
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret