Function at 0x1400af180
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.1400f4280
sub rsp, rax
mov rax, qword [0x1401d8bd0]
xor rax, rsp
mov qword [rbp + 0x12d0], rax
lea rdx, str.Function_2
lea rcx, [0x1401db790]
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
call fcn.14012e0ac
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 0x1400af220
mov dword [rsp + 0x40], esi
mov r13, qword [0x1401dc250]
sub r13, qword [0x1401dc248]
sar r13, 6
dec r13d
mov edi, dword [0x1401d8ce4]
lea rdx, str.____________________________________________________________
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, dword [0x1401d8ce4]
mov rcx, rax
call fcn.1400aa7f0
mov rcx, rax
lea rdx, str._______________________________________________________________________
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
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 0x1400af355
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 0x1400af2e0
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 0x1400af398
inc ebx
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1400af394
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400af394
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1400af380
shr rcx, 0x20
lea edx, [rcx + r15]
lea eax, [rdx + r12]
lea ecx, [rdx - 0x80000000]
cmp edx, r12d
cmovae ecx, eax
mov eax, dword [0x1401d8ce4]
cmp ecx, eax
jg 0x1400af3cd
cmp byte [0x1401dc151], 0
jne 0x1400af3cd
mov byte [0x1401dc151], r14b
call fcn.1400adee0
jmp 0x1400af3e5
add eax, 7
mov dword [0x1401d8ce4], eax
cmp eax, 0x64
jle 0x1400af3e5
mov dword [0x1401d8ce4], 0x64
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400af41a
cmp edi, 4
jae 0x1400af41a
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af402
shr rdi, 0x20
lea rdx, str.Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
xor r15d, r15d
lea rcx, [0x1401db790]
test edi, edi
jne 0x1400af4a8
lea rdx, str.Condition_is_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
jmp 0x1400afd7a
cmp edi, r14d
jne 0x1400af5d1
lea rdx, str.Condition_is_1
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400af519
cmp ecx, 6
jae 0x1400af519
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400af501
shr rcx, 0x20
add ecx, 0x80000001
lea eax, [rcx + r12]
lea esi, [rcx - 0x80000000]
cmp ecx, r12d
cmovae esi, eax
lea rdx, str.Loop_count:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, esi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
mov edi, r15d
test esi, esi
jle 0x1400afd7a
lea rdx, str.Iteration:
lea rcx, [0x1401db790]
call fcn.1400aced0
inc edi
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
cmp edi, esi
jl 0x1400af582
jmp 0x1400afd7a
cmp edi, 2
jne 0x1400afa5f
lea rdx, str.Condition_is_2
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400af648
cmp ecx, 6
jae 0x1400af648
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400af630
shr rcx, 0x20
add ecx, 0x80000001
lea eax, [rcx + r12]
lea esi, [rcx - 0x80000000]
cmp ecx, r12d
cmovae esi, eax
lea rdx, str.Loop_count:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, esi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
mov edi, r15d
test esi, esi
jle 0x1400af6fa
nop dword [rax]
lea rdx, str.Iteration:
lea rcx, [0x1401db790]
call fcn.1400aced0
inc edi
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
cmp edi, esi
jl 0x1400af6b0
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400af738
cmp edi, 4
jae 0x1400af738
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af720
shr rdi, 0x20
lea rdx, str.Nested_Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
jne 0x1400af7c3
lea rdx, str.Nested_condition_is_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
jmp 0x1400af9da
lea rdx, str.Nested_condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400af82b
cmp edi, 4
jae 0x1400af82b
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400af813
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Nested_Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
jne 0x1400af8b6
lea rdx, str.Additional_Condition_is_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
jmp 0x1400af9da
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400af91e
cmp ecx, 6
jae 0x1400af91e
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400af906
shr rcx, 0x20
add ecx, 0x80000001
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, [0x1401db790]
call fcn.1400aced0
mov edx, esi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
mov edi, r15d
test esi, esi
jle 0x1400af9da
nop dword [rax]
nop word [rax + rax]
lea rdx, str.Nested_iteration_within_Additional_Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
inc edi
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
cmp edi, esi
jl 0x1400af990
cmp r13d, r12d
jb 0x1400af9f3
cmp r13d, 0xffffffff
jne 0x1400af9f3
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
jmp 0x1400afa38
lea ebx, [r13 + 1]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov edi, ebx
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jae 0x1400afa34
mov eax, ebx
neg eax
xor edx, edx
div ebx
mov ebx, edx
cmp ecx, edx
jae 0x1400afa34
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x1400afa20
shr rcx, 0x20
movsxd rcx, ecx
shl rcx, 6
mov rax, qword [0x1401dc248]
mov rcx, qword [rcx + rax + 0x38]
test rcx, rcx
je 0x1400b047d
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
jmp 0x1400afd7a
cmp edi, 3
jne 0x1400afefd
lea rdx, str.Condition_is_3
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400afad8
cmp ecx, 6
jae 0x1400afad8
nop dword [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400afac0
shr rcx, 0x20
add ecx, 0x80000001
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.1400b1c70
nop
mov r14d, r15d
test r12, r12
jle 0x1400afd26
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, [0x1401db790]
call fcn.1400aced0
mov edx, r14d
mov rcx, rax
call fcn.1400aa7f0
mov rcx, rax
lea rdx, [0x1401c0218]
call fcn.1400aced0
mov rcx, qword [rsp + 0x20]
mov edx, dword [rcx + rsi*4]
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400afbc8
nop dword [rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400afbb0
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Array_Loop:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
jne 0x1400afc27
lea rdx, str.Additional_Condition_is_0
jmp 0x1400afceb
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400afc8a
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400afc72
shr rdi, 0x20
lea rdx, str.Nested_Condition_within_Additional_Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
lea rdx, str.Nested_condition_is_0
je 0x1400afceb
lea rdx, str.Nested_condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
inc r14d
inc rsi
cmp rsi, r12
jl 0x1400afb21
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x1400afd74
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
and rdx, 0xfffffffffffffffc
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400afd61
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400b0483
call fcn.1400f38b4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r15
mov r12d, 0x80000000
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400afdb8
cmp ecx, 6
jae 0x1400afdb8
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400afda0
shr rcx, 0x20
add ecx, 0x80000001
lea eax, [rcx + r12]
lea r14d, [rcx - 0x80000000]
cmp ecx, r12d
cmovae r14d, eax
lea rdx, str.Extra_loop_count:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, r14d
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
test r14d, r14d
jle 0x1400b0447
lea rdx, str.Extra_iteration:
lea rcx, [0x1401db790]
call fcn.1400aced0
lea esi, [r15 + 1]
mov edx, esi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400afe9a
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400afe82
shr rdi, 0x20
lea rdx, str.Extra_Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
jne 0x1400b034b
lea rdx, str.Extra_Condition_is_0
jmp 0x1400b040f
cmp edi, 4
jne 0x1400b00bf
lea rdx, str.Condition_is_4
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 0xa
jae 0x1400aff6e
cmp ecx, 6
jae 0x1400aff6e
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rcx, [rcx + rcx*4]
add rcx, rcx
cmp ecx, 6
jb 0x1400aff56
shr rcx, 0x20
add ecx, 0x80000001
lea eax, [rcx + r12]
lea ebx, [rcx - 0x80000000]
cmp ecx, r12d
cmovae ebx, eax
mov eax, r14d
cmp ebx, eax
jl 0x1400aff9a
nop
imul r14d, eax
inc eax
cmp eax, ebx
jle 0x1400aff90
lea rdx, str.Factorial_of
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, ebx
mov rcx, rax
call fcn.1400aa7f0
mov rcx, rax
lea rdx, [0x1401c0218]
call fcn.1400aced0
mov edx, r14d
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400b002d
cmp edi, 4
jae 0x1400b002d
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400b0015
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Factorial_Loop:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
lea rdx, str.Additional_Condition_is_0
je 0x1400b008e
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
jmp 0x1400afd7a
lea rdx, str.Condition_is_5
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
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.14002b900
nop
lea rdx, str.Message_length:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov rdx, qword [rsp + 0x30]
mov rcx, rax
call fcn.1400b1d40
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400b0198
cmp edi, 4
jae 0x1400b0198
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400b0180
shr rdi, 0x20
lea rdx, str.Additional_Condition_within_Condition_5:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
jne 0x1400b01f7
lea rdx, str.Additional_Condition_is_0
jmp 0x1400b02c9
lea rdx, str.Additional_Condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 6
jae 0x1400b0268
cmp edi, 4
jae 0x1400b0268
nop word [rax + rax]
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400b0250
shr rdi, 0x20
lea rdx, str.Nested_Condition_within_Additional_Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
lea rdx, str.Nested_condition_is_0
je 0x1400b02c9
lea rdx, str.Nested_condition_is_not_0
call fcn.1400aced0
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rbx, rax
mov dl, 0xa
add rcx, rax
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1400b0333
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400b032e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400b0477
call fcn.1400f38b4
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], send
mov byte [rsp + 0x20], 0
jmp 0x1400afd7a
lea rdx, str.Extra_Condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 3
ja 0x1400b03ae
lea rcx, [rsp + 0x40]
call fcn.14003e560
mov ecx, eax
lea rdi, [rcx + rcx*2]
add rdi, rdi
cmp edi, 4
jb 0x1400b0396
shr rdi, 0x20
lea rdx, str.Nested_Condition_within_Extra_Condition:
lea rcx, [0x1401db790]
call fcn.1400aced0
mov edx, edi
mov rcx, rax
call fcn.1400aa7f0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
lea rcx, [0x1401db790]
test edi, edi
lea rdx, str.Nested_condition_is_0
je 0x1400b040f
lea rdx, str.Nested_condition_is_not_0
call fcn.1400aced0
mov rbx, rax
mov rax, qword [rax]
movsxd rcx, dword [rax + 4]
add rcx, rbx
mov dl, 0xa
call fcn.1400accf0
movzx edx, al
mov rcx, rbx
call fcn.1400adbf0
mov rcx, rbx
call fcn.1400aca40
mov r15d, esi
cmp esi, r14d
jl 0x1400afe22
mov rcx, qword [rbp + 0x12d0]
xor rcx, rsp
call fcn.1400f3410
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.1400cf25c
int3
call fcn.14012d850
int3
call fcn.1400cf25c
int3