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

Disassembly:
mov qword [rsp + 0x20], 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_1
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 0x1400a5e10
mov r13, qword [0x140111e20]
lea rdx, str.____________________________________________________________
sub r13, qword [0x140111e18]
mov rcx, r12
mov ebx, dword [0x140110138]
sar r13, 6
dec r13d
mov dword [rsp + 0x40], 0x270
mov dword [rbp + 0x1310], r13d
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 + 0x1318], rax
lea eax, [rbx - 0x80000000]
lea rcx, [rbp + 0x1318]
lea r14d, [rbx + rsi]
mov ebx, 0x80000064
cmovae r14d, eax
sub ebx, r14d
cmp ebx, 0xffffffff
jne 0x1400a5ecb
call fcn.140039580
mov ecx, eax
jmp 0x1400a5f0f
inc ebx
mov esi, ebx
call fcn.140039580
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jae 0x1400a5f06
mov eax, ebx
xor edx, edx
neg eax
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400a5f06
nop dword [rax]
lea rcx, [rbp + 0x1318]
call fcn.140039580
mov ecx, eax
imul rcx, rsi
cmp ecx, ebx
jb 0x1400a5ef0
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 0x1400a5f43
cmp byte [0x140111e10], 0
jne 0x1400a5f43
mov byte [0x140111e10], dil
call qword [0x140110148]
jmp 0x1400a5f5b
add eax, 7
mov dword [0x140110138], eax
cmp eax, 0x64
jle 0x1400a5f5b
mov dword [0x140110138], 0x64
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, 6
jae 0x1400a5faa
cmp ebx, 4
jae 0x1400a5faa
nop word [rax + rax]
lea rcx, [rbp + 0x1318]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a5f90
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 r15d, r15d
test ebx, ebx
jne 0x1400a5fe2
lea rdx, str.Condition_is_0
jmp 0x1400a6865
mov rcx, r12
cmp ebx, edi
jne 0x1400a60bc
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 0x1400a604a
cmp ecx, 6
jae 0x1400a604a
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 0x1400a6030
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, r15d
test edi, edi
jle 0x1400a6875
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 0x1400a6090
jmp 0x1400a6875
cmp ebx, 2
jne 0x1400a63c1
lea rdx, str.Condition_is_2
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 rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400a611e
cmp ecx, 6
jae 0x1400a611e
lea rcx, [rbp + 0x1318]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a6104
shr rcx, 0x20
mov edx, 0x80000000
add ecx, 0x80000001
cmp ecx, edx
lea rdx, str.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
mov ebx, r15d
test esi, esi
jle 0x1400a6327
nop word [rax + rax]
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, esi
jl 0x1400a6170
lea rax, [rsp + 0x40]
mov r14d, r15d
mov qword [rbp + 0x1318], rax
mov r13d, 0x80000000
nop dword [rax]
lea rdx, str.Nested_iteration:
mov rcx, r12
call fcn.140037880
lea edx, [r14 + 1]
mov rcx, rax
mov r14d, edx
call fcn.140038950
mov rcx, rax
call fcn.140037e60
lea rcx, [rbp + 0x1318]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 3
ja 0x1400a620a
lea rcx, [rbp + 0x1318]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a61f0
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 0x1400a624f
lea rdx, str.Nested_condition_is_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
jmp 0x1400a6317
lea rdx, str.Nested_condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
lea rax, [rsp + 0x40]
lea rcx, [rbp + 0x1320]
mov qword [rbp + 0x1320], rax
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 5
ja 0x1400a62aa
nop dword [rax]
lea rcx, [rbp + 0x1320]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a6290
shr rcx, 0x20
lea rdx, str.Additional_Loop_count_within_Nested_Condition:
add ecx, 0x80000001
cmp ecx, r13d
lea eax, [rcx + r13]
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, r15d
test edi, edi
jle 0x1400a6317
nop dword [rax]
lea rdx, str.Additional_iteration_within_Nested_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 0x1400a62f0
cmp r14d, esi
jl 0x1400a61b0
mov r13d, dword [rbp + 0x1310]
mov esi, 0x80000000
lea rax, [rsp + 0x40]
mov qword [rbp + 0x1310], rax
cmp r13d, esi
jb 0x1400a6353
cmp r13d, 0xffffffff
jne 0x1400a6353
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov ecx, eax
jmp 0x1400a639a
lea ebx, [r13 + 1]
lea rcx, [rbp + 0x1310]
mov edi, ebx
call fcn.140039580
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1400a6396
mov eax, ebx
xor edx, edx
neg eax
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400a6396
nop dword [rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1400a6380
shr rcx, 0x20
mov rax, qword [0x140111e18]
movsxd rcx, ecx
shl rcx, 6
mov rcx, qword [rcx + rax + 0x38]
test rcx, rcx
je 0x1400a6a6d
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x1400a6875
cmp ebx, 3
jne 0x1400a664f
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 0x1400a642a
cmp eax, 6
jae 0x1400a642a
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 0x1400a6410
shr rax, 0x20
lea r8, [rbp + 0x1310]
inc eax
lea rcx, [rsp + 0x20]
movsxd r14, eax
mov rdx, r14
call fcn.1400a8bf0
mov rdi, qword [rsp + 0x20]
mov ebx, r15d
test r14, r14
jle 0x1400a64b2
mov rsi, r15
nop word [rax + rax]
mov eax, ebx
lea rdx, str.Array_element_at_index
imul eax, ebx
mov rcx, r12
mov dword [rdi + rsi*4], eax
call fcn.140037880
mov edx, ebx
mov rcx, rax
call fcn.140038950
mov rcx, rax
lea rdx, [0x1400f0908]
call fcn.140037880
mov edx, dword [rdi + rsi*4]
mov rcx, rax
call fcn.140038950
mov rcx, rax
call fcn.140037e60
inc ebx
inc rsi
cmp rsi, r14
jl 0x1400a6460
mov esi, 0x80000000
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 0x1400a64fa
cmp ebx, 4
jae 0x1400a64fa
nop dword [rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a64e0
lea rdx, str.Additional_Condition_within_Condition_3:
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 0x1400a653f
lea rdx, str.Additional_Condition_is_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
jmp 0x1400a6607
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 0x1400a659a
cmp ecx, 6
jae 0x1400a659a
nop
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a6580
shr rcx, 0x20
mov edx, 0x80000000
add ecx, 0x80000001
cmp ecx, edx
lea rdx, str.Nested_Loop_count_within_Additional_Condition:
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
mov ebx, r15d
test esi, esi
jle 0x1400a6607
nop
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, esi
jl 0x1400a65e0
test rdi, rdi
je 0x1400a6645
mov rdx, qword [rsp + 0x30]
mov rax, rdi
sub rdx, rdi
and rdx, 0xfffffffffffffffc
cmp rdx, 0x1000
jb 0x1400a663d
mov rdi, qword [rdi - 8]
add rdx, 0x27
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400a6a67
mov rcx, rdi
call fcn.1400e2cd8
mov esi, 0x80000000
jmp 0x1400a6875
cmp ebx, 4
jne 0x1400a6720
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 0x1400a66ba
cmp ecx, 6
jae 0x1400a66ba
nop word [rax + rax]
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a66a0
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 0x1400a66e9
nop dword [rax + rax]
imul edi, eax
inc eax
cmp eax, ebx
jle 0x1400a66e0
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
jmp 0x1400a686d
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 0x1400a679d
cmp ebx, 4
jae 0x1400a679d
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a6783
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 0x1400a67d5
lea rdx, str.Additional_Condition_is_0
jmp 0x1400a6868
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 0x1400a682e
cmp ebx, 4
jae 0x1400a682e
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a6814
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 rdx, str.Nested_condition_is_0
test ebx, ebx
je 0x1400a6865
lea rdx, str.Nested_condition_is_not_0
mov rcx, r12
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 0x1400a68ba
cmp ecx, 6
jae 0x1400a68ba
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rcx, [rax + rax*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400a68a0
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 0x1400a6a4c
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, [r15 + 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 0x1400a696a
nop
lea rcx, [rbp + 0x1310]
call fcn.140039580
mov eax, eax
lea rbx, [rax + rax*2]
add rbx, rbx
cmp ebx, 4
jb 0x1400a6950
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 0x1400a69a2
lea rdx, str.Extra_Condition_is_0
jmp 0x1400a6a34
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 0x1400a69fa
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 0x1400a69e0
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 0x1400a6a34
lea rdx, str.Nested_condition_is_not_0
call fcn.140037880
mov rcx, rax
call fcn.140037e60
mov r15d, edi
cmp edi, esi
jl 0x1400a6910
mov rbx, qword [rsp + 0x1428]
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