Function at 0x4c32f0
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
mov rax, rsp
sub rsp, 0xe8
movzx r11d, byte [rcx + 0x1e6]
mov qword [rax - 0x28], r12
mov r12, qword [rcx]
bt dword [r12 + 0x2c], 0x13
mov qword [rax - 0x38], r14
mov qword [rax - 0x40], r15
mov r14, rdx
mov r15, rcx
mov qword [rsp + 0x78], r12
jae 0x4c3f80
mov r10, qword [rdx + 0x70]
mov qword [rax - 8], rbx
mov ebx, 0xfff0bdc0
xor r9d, r9d
test r10, r10
mov dword [rsp + 0x50], ebx
je 0x4c3386
cmp dword [r12 + 0x28], r9d
mov ebx, r9d
mov dword [rsp + 0x50], r9d
jle 0x4c3386
mov rax, qword [r12 + 0x20]
add rax, 0x18
nop
cmp qword [rax], r10
je 0x4c3382
inc ebx
add rax, 0x20
cmp ebx, dword [r12 + 0x28]
jl 0x4c3370
mov dword [rsp + 0x50], ebx
mov rax, qword [r12 + 0x20]
mov qword [rsp + 0xd8], rbp
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xc8], rdi
movsxd rcx, ebx
mov qword [rsp + 0xb8], r13
mov r13, qword [rdx + 0x20]
shl rcx, 5
mov qword [rsp + 0x88], r11
test r13, r13
mov rbp, qword [rcx + rax]
lea rdi, [0x0069aea0]
mov qword [rsp + 0x90], rbp
je 0x4c3a06
mov r10, qword [rsp + 0x110]
jmp 0x4c33f3
xor r9d, r9d
test r10, r10
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], r9
mov esi, r9d
mov dword [rsp + 0x68], r9d
je 0x4c3492
mov rdx, qword [r14]
mov r8, qword [r13 + 0x10]
movzx ecx, byte [rdx]
test cl, cl
je 0x4c343d
nop
movzx eax, byte [r8]
movzx ecx, cl
movzx eax, byte [rax + rdi]
cmp byte [rcx + rdi], al
jne 0x4c343d
mov cl, byte [rdx + 1]
inc rdx
inc r8
test cl, cl
jne 0x4c3420
movzx eax, byte [r8]
movzx ecx, byte [rax + rdi]
movzx eax, byte [rdx]
movzx eax, byte [rax + rdi]
cmp eax, ecx
je 0x4c3492
mov r8d, r9d
mov r9d, dword [r13 + 0x28]
test r9d, r9d
jle 0x4c39f1
lea rcx, [r13 + 0x40]
movsxd rdx, dword [rcx]
cmp dword [r10 + rdx*4], 0
jge 0x4c3492
movsx eax, word [r14 + 0x40]
cmp edx, eax
jne 0x4c3481
cmp dword [rsp + 0x118], 0
jne 0x4c3492
inc r8d
add rcx, 0x10
cmp r8d, r9d
jl 0x4c3464
jmp 0x4c39f1
cmp byte [r15 + 0x1e6], 0
je 0x4c34b3
mov rdx, qword [r13 + 0x10]
mov r8, rbp
mov rcx, r12
call fcn.00432480
mov rdi, rax
jmp 0x4c368d
mov rcx, qword [r15]
mov rbx, qword [r13 + 0x10]
cmp byte [rcx + 0xa1], 0
jne 0x4c3630
lea rdx, [r15 + 8]
call fcn.004c12e0
test eax, eax
je 0x4c3630
inc dword [r15 + 0x4c]
mov dword [r15 + 0x18], eax
xor edi, edi
cmp qword [rsp + 0x88], 0
je 0x4c3f58
cmp byte [r12 + 0x50], 0
jne 0x4c3f58
test rdi, rdi
jne 0x4c39a7
mov rcx, r15
call fcn.00454b30
mov edx, dword [r13 + 0x28]
xor esi, esi
test edx, edx
mov ecx, dword [rax + 0x3c]
mov rbx, rax
lea r14d, [rcx + rdx + 1]
jle 0x4c35b3
mov r15d, dword [rsp + 0x100]
lea rdi, [r13 + 0x40]
nop
nop
nop
nop
mov eax, dword [rdi]
movsxd rbp, dword [rbx + 0x3c]
lea r12d, [rax + r15 + 1]
mov rax, qword [rbx + 0x30]
cmp dword [rax + 0x60], ebp
jg 0x4c3565
mov edx, 1
mov rcx, rbx
call fcn.00441a80
test eax, eax
jne 0x4c359a
mov rax, qword [rbx + 8]
inc dword [rbx + 0x3c]
lea rcx, [rbp + rbp*2]
mov byte [rax + rcx*8], Ordinal_79
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 8], r14d
mov dword [rax + rcx*8 + 0xc], 0
mov qword [rax + rcx*8 + 0x10], 0
mov byte [rax + rcx*8 + 1], 0
inc esi
add rdi, 0x10
cmp esi, dword [r13 + 0x28]
jl 0x4c3540
mov r12, qword [rsp + 0x78]
mov r15, qword [rsp + 0xf0]
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
movzx esi, byte [r13 + 0x2c]
cmp dword [rax + 0x60], edi
jg 0x4c35da
mov edx, 1
mov rcx, rbx
call fcn.00441a80
test eax, eax
jne 0x4c398a
mov rax, qword [rbx + 8]
inc dword [rbx + 0x3c]
mov r14, qword [rsp + 0xf8]
mov ebx, dword [rsp + 0x50]
mov r10, qword [rsp + 0x110]
lea rcx, [rdi + rdi*2]
mov byte [rax + rcx*8], 0x86
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], esi
mov dword [rax + rcx*8 + 8], 0xffffffff
mov dword [rax + rcx*8 + 0xc], 0
mov qword [rax + rcx*8 + 0x10], 0
mov byte [rax + rcx*8 + 1], 0
lea rdi, [0x0069aea0]
jmp 0x4c39f1
mov rcx, qword [r15]
mov r8, rbp
mov rdx, rbx
call fcn.00432480
test rax, rax
mov rdi, rax
jne 0x4c3689
test rbp, rbp
je 0x4c366b
lea r8, str.no_such_table
lea rdx, str._s:__s._s
mov r9, rbp
mov rcx, r15
mov qword [rsp + 0x20], rbx
call fcn.00462100
jmp 0x4c3684
lea r8, str.no_such_table
lea rdx, str._s:__s
mov r9, rbx
mov rcx, r15
call fcn.00462100
mov byte [r15 + 0x1d], 1
mov ebx, dword [rsp + 0x50]
test rdi, rdi
je 0x4c34e2
lea rax, [rsp + 0x58]
lea r9, [rsp + 0x60]
mov r8, r13
mov rdx, rdi
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.0046d2f0
test eax, eax
jne 0x4c34e2
mov rbp, qword [rsp + 0x58]
test rbp, rbp
je 0x4c36cf
mov r15, rbp
mov qword [rsp + 0x70], rbp
jmp 0x4c36e7
mov eax, dword [r13 + 0x40]
lea r15, [rsp + 0x80]
mov dword [rsp + 0x80], eax
mov qword [rsp + 0x70], r15
mov r14, qword [rsp + 0x60]
xor r12d, r12d
cmp dword [r13 + 0x28], r12d
jle 0x4c3797
mov ebp, dword [rsp + 0x50]
mov rbx, r15
mov r15, qword [rsp + 0x78]
xor esi, esi
nop
nop
nop
mov rax, qword [rsp + 0xf8]
movsx eax, word [rax + 0x40]
cmp dword [rbx], eax
jne 0x4c3726
mov dword [rbx], 0xffffffff
cmp qword [r15 + 0x178], 0
je 0x4c3774
test r14, r14
je 0x4c373f
mov rax, qword [r14 + 8]
movsx ecx, word [rax + rsi]
jmp 0x4c3743
movsx ecx, word [rdi + 0x40]
mov rdx, qword [rdi]
movsxd rax, ecx
mov rcx, qword [rsp + 0xf0]
lea r8, [rax + rax*2]
mov rax, qword [rdi + 8]
mov r9d, ebp
add r8, r8
mov r8, qword [rax + r8*8]
call fcn.00467e00
xor ecx, ecx
cmp eax, 2
sete cl
mov dword [rsp + 0x68], ecx
inc r12d
add rbx, 4
add rsi, 2
cmp r12d, dword [r13 + 0x28]
jl 0x4c3710
mov rbp, qword [rsp + 0x58]
mov r15, qword [rsp + 0x70]
mov esi, dword [rsp + 0x68]
mov ebx, dword [rsp + 0x50]
mov rax, qword [rdi]
mov r12, qword [rsp + 0xf0]
mov r8d, dword [rdi + 0x3c]
mov rcx, r12
xor r9d, r9d
mov edx, ebx
mov qword [rsp + 0x20], rax
call fcn.00446990
mov eax, dword [rsp + 0x100]
inc dword [r12 + 0x50]
test eax, eax
je 0x4c37f2
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], 0xffffffff
mov dword [rsp + 0x30], eax
mov r9, r14
mov r8, rdi
mov edx, ebx
mov rcx, r12
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r13
call fcn.00499650
mov eax, dword [rsp + 0x108]
test eax, eax
je 0x4c3831
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r15
mov r15, qword [rsp + 0xf0]
mov r9, r14
mov r8, rdi
mov edx, ebx
mov rcx, r15
mov qword [rsp + 0x20], r13
call fcn.00499650
jmp 0x4c3839
mov r15, qword [rsp + 0xf0]
test rbp, rbp
je 0x4c39bc
mov r12, qword [rsp + 0x78]
cmp qword [r12 + 0x320], 0
je 0x4c3879
mov rdx, rbp
mov rcx, r12
call fcn.00425e50
mov r14, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x110]
lea rdi, [0x0069aea0]
jmp 0x4c39f1
cmp rbp, qword [r12 + 0x168]
jb 0x4c38c5
cmp rbp, qword [r12 + 0x170]
jae 0x4c38c5
mov rax, qword [r12 + 0x160]
mov r14, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x110]
mov qword [rbp], rax
dec dword [r12 + 0x14c]
lea rdi, [0x0069aea0]
mov qword [r12 + 0x160], rbp
jmp 0x4c39f1
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x4c3968
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x4c38e4
call qword [0x0072d0f8]
mov rcx, rbp
call qword [0x0072d0b0]
mov ecx, dword [0x00772960]
neg eax
add ecx, eax
mov eax, dword [0x00772988]
cmp ecx, eax
mov dword [0x00772960], ecx
cmovg eax, ecx
mov ecx, dword [0x00772984]
dec ecx
mov dword [0x00772988], eax
mov eax, dword [0x007729ac]
cmp ecx, eax
mov dword [0x00772984], ecx
cmovg eax, ecx
mov rcx, rbp
mov dword [0x007729ac], eax
call qword [0x0072d0a0]
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x4c39da
call qword [0x0072d108]
mov r14, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x110]
lea rdi, [0x0069aea0]
jmp 0x4c39f1
mov rcx, rbp
call qword [0x0072d0a0]
mov r14, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x110]
lea rdi, [0x0069aea0]
jmp 0x4c39f1
mov ebx, dword [rsp + 0x50]
mov r14, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x110]
lea rdi, [0x0069aea0]
jmp 0x4c39f1
mov ebx, dword [rsp + 0x50]
mov r10, qword [rsp + 0x110]
lea rdi, [0x0069aea0]
jmp 0x4c39f1
mov r12, qword [rsp + 0x78]
mov r14, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x110]
lea rdi, [0x0069aea0]
jmp 0x4c39f1
mov r14, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x110]
lea rdi, [0x0069aea0]
mov r13, qword [r13 + 8]
mov rbp, qword [rsp + 0x90]
test r13, r13
jne 0x4c33f0
mov r10, qword [r14 + 0x70]
mov r11, qword [r14]
mov r9, qword [r10 + 0x60]
test r9, r9
je 0x4c3a57
movzx ecx, byte [r11]
xor eax, eax
mov r8, r11
test cl, cl
je 0x4c3a3f
movzx ecx, cl
inc r8
movzx edx, byte [rcx + rdi]
lea ecx, [rax*8]
xor edx, ecx
mov cl, byte [r8]
xor eax, edx
test cl, cl
jne 0x4c3a23
xor edx, edx
div dword [r10 + 0x50]
mov ecx, edx
shl rcx, 4
add rcx, r9
mov r9, qword [rcx + 8]
mov r10d, dword [rcx]
jmp 0x4c3a5f
mov r9, qword [r10 + 0x58]
mov r10d, dword [r10 + 0x54]
test r10d, r10d
je 0x4c3f58
nop
nop
mov rdx, qword [r9 + 0x18]
dec r10d
mov r8, r11
movzx ecx, byte [rdx]
test cl, cl
je 0x4c3aad
nop
nop
nop
nop
movzx eax, byte [r8]
movzx ecx, cl
movzx eax, byte [rax + rdi]
cmp byte [rcx + rdi], al
jne 0x4c3aad
mov cl, byte [rdx + 1]
inc rdx
inc r8
test cl, cl
jne 0x4c3a90
movzx eax, byte [r8]
movzx ecx, byte [rax + rdi]
movzx eax, byte [rdx]
movzx eax, byte [rax + rdi]
cmp eax, ecx
je 0x4c3acd
test r10d, r10d
mov r9, qword [r9]
jne 0x4c3a70
jmp 0x4c3f58
mov r13, qword [r9 + 0x10]
test r13, r13
je 0x4c3f58
nop
nop
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x70], 0
test rax, rax
je 0x4c3bc0
mov r15d, dword [r13 + 0x28]
xor ebp, ebp
test r15d, r15d
jle 0x4c3f4b
movsx edi, word [r14 + 0x42]
lea rsi, [r13 + 0x48]
nop
nop
mov rbx, qword [rsi]
xor r9d, r9d
test edi, edi
jle 0x4c3c13
xor r10d, r10d
mov r11, rax
cmp dword [r11], 0
jge 0x4c3b56
movsx eax, word [r14 + 0x40]
cmp r9d, eax
jne 0x4c3bf7
cmp dword [rsp + 0x118], 0
je 0x4c3bf7
test rbx, rbx
mov rax, qword [r14 + 8]
je 0x4c3bef
mov rdx, qword [r10 + rax]
mov r8, rbx
movzx ecx, byte [rdx]
test cl, cl
je 0x4c3ba4
lea r12, [0x0069aea0]
nop
nop
movzx eax, byte [r8]
movzx ecx, cl
movzx eax, byte [rax + r12]
cmp byte [rcx + r12], al
jne 0x4c3b9f
mov cl, byte [rdx + 1]
inc rdx
inc r8
test cl, cl
jne 0x4c3b80
mov r12, qword [rsp + 0x78]
movzx eax, byte [r8]
lea r8, [0x0069aea0]
movzx ecx, byte [rax + r8]
movzx eax, byte [rdx]
movzx eax, byte [rax + r8]
cmp eax, ecx
jne 0x4c3bf7
cmp byte [r13 + 0x2c], 0
jne 0x4c3c31
bt dword [r12 + 0x2c], 0x18
jb 0x4c3c27
mov r15, qword [rsp + 0xf0]
cmp qword [r15 + 0x1c0], 0
jne 0x4c3c39
cmp byte [r15 + 0x20], 0
je 0x4c3f4b
jmp 0x4c3c39
test byte [r10 + rax + 0x2b], 1
jne 0x4c3bc0
inc r9d
add r11, 4
add r10, 0x30
cmp r9d, edi
jl 0x4c3b34
mov rax, qword [rsp + 0x110]
inc ebp
add rsi, 0x10
cmp ebp, r15d
jl 0x4c3b20
jmp 0x4c3f4b
mov r15, qword [rsp + 0xf0]
jmp 0x4c3c39
mov r15, qword [rsp + 0xf0]
lea rax, [rsp + 0x70]
lea r9, [rsp + 0x60]
mov r8, r13
mov rdx, r14
mov rcx, r15
mov qword [rsp + 0x20], rax
call fcn.0046d2f0
test eax, eax
je 0x4c3c7a
cmp qword [rsp + 0x88], 0
je 0x4c3f58
cmp byte [r12 + 0x50], 0
jne 0x4c3f58
jmp 0x4c3f4b
cmp byte [r12 + 0x50], 0
mov rdi, qword [rsp + 0x70]
jne 0x4c3e69
cmp byte [r12 + 0x14a], 0
je 0x4c3cab
cmp word [r12 + 0x148], 0x80
jae 0x4c3cf2
inc dword [r12 + 0x158]
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x4c3d40
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x4c3cca
call qword [0x0072d0f8]
lea rdx, [rsp + 0x58]
mov ecx, 0x80
call fcn.0043a720
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x4c3d55
call qword [0x0072d108]
mov rbx, qword [rsp + 0x58]
jmp 0x4c3d5a
mov rbx, qword [r12 + 0x160]
test rbx, rbx
jne 0x4c3d09
inc dword [r12 + 0x15c]
jmp 0x4c3cab
mov rax, qword [rbx]
inc dword [r12 + 0x14c]
inc dword [r12 + 0x154]
mov qword [r12 + 0x160], rax
mov eax, dword [r12 + 0x14c]
cmp eax, dword [r12 + 0x150]
jle 0x4c3d65
mov dword [r12 + 0x150], eax
jmp 0x4c3d65
mov ecx, 0x80
call qword [0x0072d098]
mov rbx, rax
mov qword [rsp + 0x58], rax
jmp 0x4c3d5a
mov rbx, qword [rsp + 0x58]
test rbx, rbx
jne 0x4c3d65
mov byte [r12 + 0x50], 1
test rbx, rbx
je 0x4c3e69
xor edx, edx
mov r8d, 0x80
mov rcx, rbx
call sub.msvcrt.dll_memset
mov dword [rbx + 4], 1
mov r9d, dword [rbx]
mov r8d, 1
mov rdx, rbx
mov rcx, r12
call fcn.004482d0
cmp byte [r12 + 0x50], 0
mov rbx, rax
je 0x4c3db4
mov rdx, rax
mov rcx, r12
call fcn.004334e0
jmp 0x4c3e69
mov eax, dword [rax]
mov rsi, qword [rsp + 0x60]
xor ebp, ebp
dec eax
movsxd rcx, eax
imul rcx, rcx, 0x78
mov qword [rcx + rbx + 0x18], rbp
mov qword [rcx + rbx + 0x10], rbp
mov rax, qword [r13]
mov qword [rbx + 0x28], rax
mov rax, qword [r13]
mov rcx, qword [rax]
mov rax, qword [rbx + 0x28]
mov qword [rbx + 0x18], rcx
inc word [rax + 0x44]
mov eax, dword [r15 + 0x50]
mov dword [rbx + 0x50], eax
mov eax, dword [rsp + 0x108]
inc dword [r15 + 0x50]
test eax, eax
je 0x4c3e28
mov dword [rsp + 0x38], 0xffffffff
mov dword [rsp + 0x30], eax
mov r9, rsi
mov r8, r14
mov rdx, rbx
mov rcx, r15
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r13
call fcn.004adda0
mov eax, dword [rsp + 0x100]
test eax, eax
je 0x4c3e5a
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], eax
mov r9, rsi
mov r8, r14
mov rdx, rbx
mov rcx, r15
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], r13
call fcn.004adda0
mov rdx, rbx
mov rcx, r12
mov qword [rbx + 0x18], rbp
call fcn.004334e0
test rdi, rdi
je 0x4c3f4b
cmp qword [r12 + 0x320], 0
je 0x4c3e8d
mov rdx, rdi
mov rcx, r12
call fcn.00425e50
jmp 0x4c3f4b
cmp rdi, qword [r12 + 0x168]
jb 0x4c3ec1
cmp rdi, qword [r12 + 0x170]
jae 0x4c3ec1
mov rax, qword [r12 + 0x160]
mov qword [rdi], rax
dec dword [r12 + 0x14c]
mov qword [r12 + 0x160], rdi
jmp 0x4c3f4b
cmp dword [reloc.WS2_32.dll_accept], 0
je 0x4c3f42
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x4c3edc
call qword [0x0072d0f8]
mov rcx, rdi
call qword [0x0072d0b0]
mov ecx, dword [0x00772960]
neg eax
add ecx, eax
mov eax, dword [0x00772988]
cmp ecx, eax
mov dword [0x00772960], ecx
cmovg eax, ecx
mov ecx, dword [0x00772984]
dec ecx
mov dword [0x00772988], eax
mov eax, dword [0x007729ac]
cmp ecx, eax
mov dword [0x00772984], ecx
cmovg eax, ecx
mov rcx, rdi
mov dword [0x007729ac], eax
call qword [0x0072d0a0]
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x4c3f4b
call qword [0x0072d108]
jmp 0x4c3f4b
mov rcx, rdi
call qword [0x0072d0a0]
mov r13, qword [r13 + 0x18]
test r13, r13
jne 0x4c3ae0
mov rdi, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xd8]
mov r13, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xa8]
mov r14, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xc0]
add rsp, 0xe8
ret