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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12e0]
mov eax, 0x13e0
call fcn.1400f3d80
sub rsp, rax
mov rax, qword [0x1401d9bd0]
xor rax, rsp
mov qword [rbp + 0x12d0], rax
lea rdx, str.Function_2
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
call fcn.14012db9c
mov dword [rbp + 0x12c4], 0xffffffff
mov dword [rsp + 0x44], eax
mov r14d, 1
mov edx, r14d
mov esi, 0x270
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, rsi
jb 0x1400aebe0
mov dword [rsp + 0x40], esi
mov r13, qword [0x1401dd280]
sub r13, qword [0x1401dd278]
sar r13, 6
dec r13d
mov edi, dword [0x1401d9ce4]
lea rdx, str.____________________________________________________________
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, dword [0x1401d9ce4]
mov rcx, rax
call fcn.1400aa1c0
mov rcx, rax
lea rdx, str._______________________________________________________________________
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea eax, [rdi - 0x80000000]
mov r12d, 0x80000000
lea r15d, [rdi + r12]
cmp edi, r12d
cmovae r15d, eax
mov ebx, 0x80000064
sub ebx, r15d
cmp ebx, 0xffffffff
jne 0x1400aed15
lea r8, [rsp + 0x48]
nop
mov edx, dword [r8 - 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, dword [r8 - 4]
mov eax, edx
and al, r14b
neg al
sbb ecx, ecx
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x630]
shr edx, 1
xor ecx, edx
mov dword [r8 + 0x9bc], ecx
lea r8, [r8 + 4]
sub rsi, r14
jne 0x1400aeca0
mov ecx, dword [rsp + 0x40]
mov edx, dword [rsp + rcx*4 + 0x44]
inc ecx
mov dword [rsp + 0x40], ecx
mov eax, edx
shr eax, 0xb
and eax, dword [rbp + 0x12c4]
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov ecx, edx
shr ecx, 0x12
xor ecx, edx
jmp 0x1400aed58
inc ebx
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1400aed54
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400aed54
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1400aed40
shr rcx, 0x20
lea edx, [rcx + r15]
lea eax, [rdx + r12]
lea ecx, [rdx - 0x80000000]
cmp edx, r12d
cmovae ecx, eax
mov eax, dword [0x1401d9ce4]
cmp ecx, eax
jg 0x1400aed8d
cmp byte [0x1401dd181], 0
jne 0x1400aed8d
mov byte [0x1401dd181], r14b
call fcn.1400ad8a0
jmp 0x1400aeda0
add eax, 7
mov ecx, 0x64
cmp eax, ecx
cmovg eax, ecx
mov dword [0x1401d9ce4], eax
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400aedd8
cmp edi, 4
jae 0x1400aedd8
nop dword [rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400aedc0
shr rdi, 0x20
lea rdx, str.Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
xor r15d, r15d
lea rcx, [0x1401dc7c0]
test edi, edi
jne 0x1400aee66
lea rdx, str.Condition_is_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
jmp 0x1400af73a
cmp edi, r14d
jne 0x1400aef90
lea rdx, str.Condition_is_1
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 0xa
jae 0x1400aeed8
cmp eax, 6
jae 0x1400aeed8
nop
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x1400aeec0
shr rax, 0x20
lea ecx, [rax - 0x7fffffff]
lea eax, [rcx + r12]
lea esi, [rcx - 0x80000000]
cmp ecx, r12d
cmovae esi, eax
lea rdx, str.Loop_count:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, esi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
mov edi, r15d
test esi, esi
jle 0x1400af73a
lea rdx, str.Iteration:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
inc edi
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
cmp edi, esi
jl 0x1400aef41
jmp 0x1400af73a
cmp edi, 2
jne 0x1400af41f
lea rdx, str.Condition_is_2
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 0xa
jae 0x1400af008
cmp eax, 6
jae 0x1400af008
nop dword [rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x1400aeff0
shr rax, 0x20
lea ecx, [rax - 0x7fffffff]
lea eax, [rcx + r12]
lea esi, [rcx - 0x80000000]
cmp ecx, r12d
cmovae esi, eax
lea rdx, str.Loop_count:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, esi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
mov edi, r15d
test esi, esi
jle 0x1400af0ba
nop dword [rax]
lea rdx, str.Iteration:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
inc edi
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
cmp edi, esi
jl 0x1400af070
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400af0f8
cmp edi, 4
jae 0x1400af0f8
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af0e0
shr rdi, 0x20
lea rdx, str.Nested_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
jne 0x1400af183
lea rdx, str.Nested_condition_is_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
jmp 0x1400af39a
lea rdx, str.Nested_condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400af1eb
cmp edi, 4
jae 0x1400af1eb
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af1d3
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Nested_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
jne 0x1400af276
lea rdx, str.Additional_Condition_is_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
jmp 0x1400af39a
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 0xa
jae 0x1400af2de
cmp eax, 6
jae 0x1400af2de
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x1400af2c6
shr rax, 0x20
lea ecx, [rax - 0x7fffffff]
lea eax, [rcx + r12]
lea esi, [rcx - 0x80000000]
cmp ecx, r12d
cmovae esi, eax
lea rdx, str.Nested_Loop_count_within_Additional_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, esi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
mov edi, r15d
test esi, esi
jle 0x1400af39a
nop dword [rax]
nop word [rax + rax]
lea rdx, str.Nested_iteration_within_Additional_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
inc edi
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
cmp edi, esi
jl 0x1400af350
cmp r13d, r12d
jb 0x1400af3b3
cmp r13d, 0xffffffff
jne 0x1400af3b3
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
jmp 0x1400af3f8
lea ebx, [r13 + 1]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1400af3f4
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400af3f4
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1400af3e0
shr rcx, 0x20
movsxd rcx, ecx
shl rcx, 6
mov rax, qword [0x1401dd278]
mov rcx, qword [rcx + rax + 0x38]
test rcx, rcx
je 0x1400afe3d
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x1400af73a
cmp edi, 3
jne 0x1400af8bd
lea rdx, str.Condition_is_3
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 0xa
jae 0x1400af498
cmp eax, 6
jae 0x1400af498
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x1400af480
shr rax, 0x20
lea ecx, [rax - 0x7fffffff]
lea eax, [rcx + r12]
lea edx, [rcx - 0x80000000]
cmp ecx, r12d
cmovae edx, eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], rax
movsxd r12, edx
mov rdx, r12
lea rcx, [rsp + 0x20]
call fcn.1400b1640
nop
mov r14d, r15d
test r12, r12
jle 0x1400af6e6
mov rsi, r15
mov ecx, r14d
imul ecx, r14d
mov rax, qword [rsp + 0x20]
mov dword [rax + rsi*4], ecx
lea rdx, str.Array_element_at_index
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, r14d
mov rcx, rax
call fcn.1400aa1c0
mov rcx, rax
lea rdx, [0x1401c1d58]
call fcn.1400ac890
mov rcx, qword [rsp + 0x20]
mov edx, dword [rcx + rsi*4]
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400af588
nop dword [rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af570
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Array_Loop:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
jne 0x1400af5e7
lea rdx, str.Additional_Condition_is_0
jmp 0x1400af6ab
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400af64a
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af632
shr rdi, 0x20
lea rdx, str.Nested_Condition_within_Additional_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
lea rdx, str.Nested_condition_is_0
je 0x1400af6ab
lea rdx, str.Nested_condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
inc r14d
inc rsi
cmp rsi, r12
jl 0x1400af4e1
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x1400af734
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400af721
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400afe43
call fcn.1400f33ac
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r15
mov r12d, 0x80000000
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 0xa
jae 0x1400af778
cmp eax, 6
jae 0x1400af778
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x1400af760
shr rax, 0x20
lea ecx, [rax - 0x7fffffff]
lea eax, [rcx + r12]
lea r14d, [rcx - 0x80000000]
cmp ecx, r12d
cmovae r14d, eax
lea rdx, str.Extra_loop_count:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, r14d
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
test r14d, r14d
jle 0x1400afe07
lea rdx, str.Extra_iteration:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
lea esi, [r15 + 1]
mov edx, esi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400af85a
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af842
shr rdi, 0x20
lea rdx, str.Extra_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
jne 0x1400afd0b
lea rdx, str.Extra_Condition_is_0
jmp 0x1400afdcf
cmp edi, 4
jne 0x1400afa7f
lea rdx, str.Condition_is_4
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 0xa
jae 0x1400af92e
cmp eax, 6
jae 0x1400af92e
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rax, [rcx + rcx*4]
add rax, rax
cmp eax, 6
jb 0x1400af916
shr rax, 0x20
lea ecx, [rax - 0x7fffffff]
lea eax, [rcx + r12]
lea ebx, [rcx - 0x80000000]
cmp ecx, r12d
cmovae ebx, eax
mov eax, r14d
cmp ebx, eax
jl 0x1400af95a
nop
imul r14d, eax
inc eax
cmp eax, ebx
jle 0x1400af950
lea rdx, str.Factorial_of
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, ebx
mov rcx, rax
call fcn.1400aa1c0
mov rcx, rax
lea rdx, [0x1401c1d58]
call fcn.1400ac890
mov edx, r14d
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400af9ed
cmp edi, 4
jae 0x1400af9ed
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af9d5
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Factorial_Loop:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
lea rdx, str.Additional_Condition_is_0
je 0x1400afa4e
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
jmp 0x1400af73a
lea rdx, str.Condition_is_5
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r15
mov r8d, recv
lea rdx, str.Hello__World_
lea rcx, [rsp + 0x20]
call fcn.14002bc20
nop
lea rdx, str.Message_length:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov rdx, qword [rsp + 0x30]
mov rcx, rax
call fcn.1400b1710
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400afb58
cmp edi, 4
jae 0x1400afb58
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400afb40
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Condition_5:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
jne 0x1400afbb7
lea rdx, str.Additional_Condition_is_0
jmp 0x1400afc89
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400afc28
cmp edi, 4
jae 0x1400afc28
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400afc10
shr rdi, 0x20
lea rdx, str.Nested_Condition_within_Additional_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
lea rdx, str.Nested_condition_is_0
je 0x1400afc89
lea rdx, str.Nested_condition_is_not_0
call fcn.1400ac890
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rbx, rax
mov dl, 0xa
add rcx, rax
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1400afcf3
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400afcee
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400afe37
call fcn.1400f33ac
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], send
mov byte [rsp + 0x20], 0
jmp 0x1400af73a
lea rdx, str.Extra_Condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400afd6e
lea rcx, [rsp + 0x40]
call fcn.14003e9a0
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400afd56
shr rdi, 0x20
lea rdx, str.Nested_Condition_within_Extra_Condition:
lea rcx, [0x1401dc7c0]
call fcn.1400ac890
mov edx, edi
mov rcx, rax
call fcn.1400aa1c0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
lea rcx, [0x1401dc7c0]
test edi, edi
lea rdx, str.Nested_condition_is_0
je 0x1400afdcf
lea rdx, str.Nested_condition_is_not_0
call fcn.1400ac890
mov rbx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call fcn.1400ac6b0
movzx edx, al
mov rcx, rbx
call fcn.1400ad590
mov rcx, rbx
call fcn.1400ac400
mov r15d, esi
cmp esi, r14d
jl 0x1400af7e2
mov rcx, qword [rbp + 0x12d0]
xor rcx, rsp
call fcn.1400f2d90
lea r11, [rsp + 0x13e0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400cebc0
int3
call fcn.14012d340
int3
call fcn.1400cebc0
int3