Function at 0x1400a6a80
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12d0]
mov eax, 0x13d0
call fcn.1400e3030
sub rsp, rax
lea r12, [0x140113920]
mov rcx, r12
lea rdx, str.Function_2
call fcn.140037880
mov rcx, rax
call fcn.140037e60
call fcn.1400ea8d8
mov edi, 1
mov dword [rbp + 0x12c4], 0xffffffff
mov edx, edi
mov dword [rsp + 0x44], eax
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x44], eax
inc rdx
cmp rdx, 0x270
jb 0x1400a6ae0
mov r15, qword [0x140111e20]
lea rdx, str.____________________________________________________________
sub r15, qword [0x140111e18]
mov rcx, r12
mov ebx, dword [0x140110138]
sar r15, 6
dec r15d
mov dword [rsp + 0x40], 0x270
call fcn.140037880
mov edx, dword [0x140110138]
mov rcx, rax
call fcn.140038950
mov rcx, rax
lea rdx, str._______________________________________________________________________
call fcn.140037880
mov rcx, rax
call fcn.140037e60
mov esi, 0x80000000
lea rax, [rsp + 0x40]
cmp ebx, esi
mov qword [rbp + 0x1310], rax
lea eax, [rbx - 0x80000000]
lea rcx, [rbp + 0x1310]
lea r14d, [rbx + rsi]
mov ebx, 0x80000064
cmovae r14d, eax
sub ebx, r14d
cmp ebx, 0xffffffff
jne 0x1400a6b94
call fcn.140039580
mov ecx, eax
jmp 0x1400a6bdf
inc ebx
mov esi, ebx
call fcn.140039580
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1400a6bd6
mov eax, ebx
xor edx, edx
neg eax
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400a6bd6
nop word [rax + rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1400a6bc0
shr rcx, 0x20
mov esi, 0x80000000
lea edx, [rcx + r14]
cmp edx, esi
lea eax, [rdx + rsi]
lea ecx, [rdx - 0x80000000]
cmovae ecx, eax
mov eax, dword [0x140110138]
cmp ecx, eax
jg 0x1400a6c13
cmp byte [0x140111e10], 0
jne 0x1400a6c13
mov byte [0x140111e10], dil
call qword [0x140110148]
jmp 0x1400a6c2b
add eax, 7
mov dword [0x140110138], eax
cmp eax, 0x64
jle 0x1400a6c2b
mov dword [0x140110138], 0x64
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 6
jae 0x1400a6c7a
cmp ebx, 4
jae 0x1400a6c7a
nop word [rax + rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a6c60
lea rdx, str.Condition:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
xor r13d, r13d
mov rcx, r12
test ebx, ebx
jne 0x1400a6cb5
lea rdx, str.Condition_is_0
jmp 0x1400a75f8
cmp ebx, edi
jne 0x1400a6d8c
lea rdx, str.Condition_is_1
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400a6d1a
cmp ecx, 6
jae 0x1400a6d1a
nop dword [rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a6d00
shr rcx, 0x20
lea rdx, str.Loop_count:
add ecx, 0x80000001
cmp ecx, esi
lea eax, [rcx + rsi]
lea edi, [rcx - 0x80000000]
mov rcx, r12
cmovae edi, eax
call fcn.140037880
mov edx, edi
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
mov ebx, r13d
test edi, edi
jle 0x1400a7605
nop
lea rdx, str.Iteration:
mov rcx, r12
call fcn.140037880
inc ebx
mov rcx, rax
mov edx, ebx
call fcn.140038950
mov rcx, rax
call fcn.140037e60
cmp ebx, edi
jl 0x1400a6d60
jmp 0x1400a7605
cmp ebx, 2
jne 0x1400a70e1
lea rdx, str.Condition_is_2
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400a6dee
cmp ecx, 6
jae 0x1400a6dee
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a6dd4
shr rcx, 0x20
lea rdx, str.Loop_count:
add ecx, 0x80000001
cmp ecx, esi
lea eax, [rcx + rsi]
lea edi, [rcx - 0x80000000]
mov rcx, r12
cmovae edi, eax
call fcn.140037880
mov edx, edi
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
mov ebx, r13d
test edi, edi
jle 0x1400a6e57
nop
lea rdx, str.Iteration:
mov rcx, r12
call fcn.140037880
inc ebx
mov rcx, rax
mov edx, ebx
call fcn.140038950
mov rcx, rax
call fcn.140037e60
cmp ebx, edi
jl 0x1400a6e30
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 6
jae 0x1400a6e9c
cmp ebx, 4
jae 0x1400a6e9c
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a6e82
lea rdx, str.Nested_Condition:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
mov rcx, r12
test ebx, ebx
jne 0x1400a6ee1
lea rdx, str.Nested_condition_is_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
jmp 0x1400a7047
lea rdx, str.Nested_condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 6
jae 0x1400a6f3a
cmp ebx, 4
jae 0x1400a6f3a
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a6f20
lea rdx, str.Additional_Condition_within_Nested_Condition:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
mov rcx, r12
test ebx, ebx
jne 0x1400a6f7f
lea rdx, str.Additional_Condition_is_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
jmp 0x1400a7047
lea rdx, str.Additional_Condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400a6fda
cmp ecx, 6
jae 0x1400a6fda
nop
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a6fc0
shr rcx, 0x20
lea rdx, str.Nested_Loop_count_within_Additional_Condition:
add ecx, 0x80000001
cmp ecx, esi
lea eax, [rcx + rsi]
lea edi, [rcx - 0x80000000]
mov rcx, r12
cmovae edi, eax
call fcn.140037880
mov edx, edi
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
mov ebx, r13d
test edi, edi
jle 0x1400a7047
nop word [rax + rax]
lea rdx, str.Nested_iteration_within_Additional_Condition:
mov rcx, r12
call fcn.140037880
inc ebx
mov rcx, rax
mov edx, ebx
call fcn.140038950
mov rcx, rax
call fcn.140037e60
cmp ebx, edi
jl 0x1400a7020
lea rax, [rsp + 0x40]
mov qword [rbp + 0x1310], rax
cmp r15d, esi
jb 0x1400a706e
cmp r15d, 0xffffffff
jne 0x1400a706e
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov ecx, eax
jmp 0x1400a70ba
lea ebx, [r15 + 1]
lea rcx, [rbp + 0x1310]
mov edi, ebx
call fcn.140039580
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1400a70b6
mov eax, ebx
xor edx, edx
neg eax
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400a70b6
nop dword [rax + rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1400a70a0
shr rcx, 0x20
mov rax, qword [0x140111e18]
movsxd rcx, ecx
shl rcx, 6
mov rcx, qword [rcx + rax + 0x38]
test rcx, rcx
je 0x1400a77fd
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x1400a7605
cmp ebx, 3
jne 0x1400a7357
lea rdx, str.Condition_is_3
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rax, [rax + rax*4]
add rax, rax
cmp eax, 0xa
jae 0x1400a714a
cmp eax, 6
jae 0x1400a714a
nop dword [rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rax, [rax + rax*4]
add rax, rax
cmp eax, 6
jb 0x1400a7130
shr rax, 0x20
lea r8, [rbp + 0x1310]
inc eax
lea rcx, [rsp + 0x20]
movsxd r12, eax
mov rdx, r12
call fcn.1400a8bf0
mov r15, qword [rsp + 0x20]
mov r14d, r13d
test r12, r12
jle 0x1400a730d
lea rax, [rsp + 0x40]
mov rsi, r13
mov qword [rbp + 0x1310], rax
lea rdi, str.Additional_Condition_is_0
nop
mov eax, r14d
lea rdx, str.Array_element_at_index
imul eax, r14d
lea rcx, [0x140113920]
mov dword [r15 + rsi*4], eax
call fcn.140037880
mov edx, r14d
mov rcx, rax
call fcn.140038950
mov rcx, rax
lea rdx, [0x1400f0908]
call fcn.140037880
mov edx, dword [r15 + rsi*4]
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 3
ja 0x1400a721a
nop word [rax + rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a7200
lea rdx, str.Additional_Condition_within_Array_Loop:
shr rbx, 0x20
lea rcx, [0x140113920]
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rcx, [0x140113920]
test ebx, ebx
jne 0x1400a7256
mov rdx, rdi
jmp 0x1400a72ec
lea rdx, str.Additional_Condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1318]
mov qword [rbp + 0x1318], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 3
ja 0x1400a72aa
lea rcx, [rbp + 0x1318]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a7290
lea rdx, str.Nested_Condition_within_Additional_Condition:
shr rbx, 0x20
lea rcx, [0x140113920]
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rcx, [0x140113920]
lea rdx, str.Nested_condition_is_0
test ebx, ebx
je 0x1400a72ec
lea rdx, str.Nested_condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
inc r14d
inc rsi
cmp rsi, r12
jl 0x1400a7190
mov esi, 0x80000000
test r15, r15
je 0x1400a734b
mov rdx, qword [rsp + 0x30]
mov rax, r15
sub rdx, r15
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x1400a7343
mov r15, qword [r15 - 8]
add rdx, 0x27
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400a77f7
mov rcx, r15
call fcn.1400e2cd8
lea r12, [0x140113920]
jmp 0x1400a7605
cmp ebx, 4
jne 0x1400a74ad
lea rdx, str.Condition_is_4
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400a73ba
cmp ecx, 6
jae 0x1400a73ba
nop
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a73a0
shr rcx, 0x20
add ecx, 0x80000001
cmp ecx, esi
lea eax, [rcx + rsi]
lea ebx, [rcx - 0x80000000]
cmovae ebx, eax
mov eax, edi
cmp ebx, eax
jl 0x1400a73e9
nop dword [rax + rax]
imul edi, eax
inc eax
cmp eax, ebx
jle 0x1400a73e0
lea rdx, str.Factorial_of
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
lea rdx, [0x1400f0908]
call fcn.140037880
mov edx, edi
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 6
jae 0x1400a746a
cmp ebx, 4
jae 0x1400a746a
nop
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a7450
lea rdx, str.Additional_Condition_within_Factorial_Loop:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rdi, str.Additional_Condition_is_0
mov rcx, r12
test ebx, ebx
je 0x1400a75f5
lea rdi, str.Additional_Condition_is_not_0
jmp 0x1400a75f5
lea rdx, str.Condition_is_5
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rdx, str.Message_length:
mov rcx, r12
call fcn.140037880
mov edx, recv
mov rcx, rax
call fcn.1400a8cb0
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 6
jae 0x1400a752a
cmp ebx, 4
jae 0x1400a752a
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a7510
lea rdx, str.Additional_Condition_within_Condition_5:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
mov rcx, r12
test ebx, ebx
jne 0x1400a7562
lea rdi, str.Additional_Condition_is_0
jmp 0x1400a75f5
lea rdx, str.Additional_Condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 6
jae 0x1400a75bb
cmp ebx, 4
jae 0x1400a75bb
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a75a1
lea rdx, str.Nested_Condition_within_Additional_Condition:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rdi, str.Nested_condition_is_0
mov rcx, r12
test ebx, ebx
je 0x1400a75f5
lea rdi, str.Nested_condition_is_not_0
mov rdx, rdi
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1310]
mov qword [rbp + 0x1310], rax
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400a764a
cmp ecx, 6
jae 0x1400a764a
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a7630
shr rcx, 0x20
mov edx, 0x80000000
add ecx, 0x80000001
cmp ecx, edx
lea rdx, str.Extra_loop_count:
lea eax, [rcx + rsi]
lea esi, [rcx - 0x80000000]
mov rcx, r12
cmovae esi, eax
call fcn.140037880
mov edx, esi
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
test esi, esi
jle 0x1400a77dc
lea rax, [rsp + 0x40]
mov qword [rbp + 0x1310], rax
nop dword [rax]
lea rdx, str.Extra_iteration:
mov rcx, r12
call fcn.140037880
lea edi, [r13 + 1]
mov rcx, rax
mov edx, edi
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 3
ja 0x1400a76fa
nop
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a76e0
lea rdx, str.Extra_Condition:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
mov rcx, r12
test ebx, ebx
jne 0x1400a7732
lea rdx, str.Extra_Condition_is_0
jmp 0x1400a77c4
lea rdx, str.Extra_Condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1318]
mov qword [rbp + 0x1318], rax
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 3
ja 0x1400a778a
nop dword [rax]
lea rcx, [rbp + 0x1318]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a7770
lea rdx, str.Nested_Condition_within_Extra_Condition:
shr rbx, 0x20
mov rcx, r12
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rdx, str.Nested_condition_is_0
mov rcx, r12
test ebx, ebx
je 0x1400a77c4
lea rdx, str.Nested_condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
mov r13d, edi
cmp edi, esi
jl 0x1400a76a0
mov rbx, qword [rsp + 0x1420]
add rsp, 0x13d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400c4dc4
int3
call fcn.1400e9718
int3