Function at 0x402300
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x208
mov esi, 0x5d34edef
mov edi, 0xcccccccd
mov qword [rsp + 0x250], rcx
xor ecx, ecx
call qword [0x00425aa8]
mov ecx, eax
call fcn.00410100
call fcn.00410110
mov ecx, eax
imul esi
mov eax, ecx
sar eax, 0x1f
sar edx, 0xf
sub edx, eax
imul edx, edx, 0x15f90
sub ecx, edx
lea ebx, [rcx + 0x2710]
test ebx, ebx
jle 0x402334
mov ecx, ebx
xor r9d, r9d
nop
mov eax, ecx
mul edi
shr edx, 3
lea r8d, [rdx + rdx*4]
add r8d, r8d
sub ecx, r8d
add r9d, ecx
test edx, edx
mov ecx, edx
jne 0x402360
cmp r9d, 0x14
jne 0x402334
lea rax, str.default
mov qword [rsp + 0xc0], 2
mov qword [rsp + 0xd8], rax
mov rax, qword [0x004251c8]
lea r12, [rsp + 0x80]
lea rsi, [rsp + 0xc0]
mov rcx, r12
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov rdx, rsi
lea rdi, [rsp + 0xa0]
mov qword [rsp + 0x48], rax
call rax
mov rax, qword [0x00425098]
mov r8d, 0x19
mov rcx, rdi
mov rbp, qword [rsp + 0x80]
lea rdx, str.Generated_random_numbers:
mov qword [rsp + 0x30], rax
call rax
mov rax, qword [0x00424f20]
mov rdx, rdi
mov rcx, rbp
mov qword [rsp + 0x40], rax
call rax
mov rcx, qword [rsp + 0xa0]
mov eax, dword [rcx]
test eax, eax
je 0x402bd0
cmp eax, 0xffffffff
je 0x402442
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa0]
je 0x402bd0
mov rax, qword [rsp + 0x80]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x402cdb
mov edx, ebx
call qword [0x00424f30]
mov rcx, qword [rsp + 0x80]
cmp byte [rcx + 0x20], 0
jne 0x402d03
mov rax, qword [0x00425010]
mov rcx, r12
mov r13d, 0xcccccccd
mov r15d, 0x66666667
lea rbp, [rdi + 0x10]
mov qword [rsp + 0x38], rax
call rax
lea rax, [rsi + 0x10]
mov dword [rsp + 0xd0], 0x64636261
mov qword [rsp + 0xc0], rax
lea rax, [rsi + 0x30]
mov byte [rsi + 0x14], 0x65
mov qword [rsp + 0xe0], rax
lea rax, [rsi + 0x50]
mov qword [rsp + 0xc8], 5
mov byte [rsp + 0xd5], 0
mov dword [rsp + 0xf0], 0x69686766
mov byte [rsi + 0x34], 0x6a
mov qword [rsp + 0x100], rax
lea rax, [rsi + 0x70]
mov qword [rsp + 0xe8], 5
mov byte [rsp + 0xf5], 0
mov dword [rsp + 0x110], 0x6e6d6c6b
mov byte [rsi + 0x54], 0x6f
mov qword [rsp + 0x120], rax
lea rax, [rsi + 0x90]
mov qword [rsp + 0x108], 5
mov byte [rsp + 0x115], 0
mov dword [rsp + 0x130], 0x73727170
mov byte [rsi + 0x74], 0x74
mov qword [rsp + 0x140], rax
lea rax, [rsi + 0xb0]
mov qword [rsp + 0x128], 5
mov byte [rsp + 0x135], 0
mov dword [rsp + 0x150], 0x78777675
mov byte [rsi + 0x94], 0x79
mov qword [rsp + 0x160], rax
lea rax, [rsi + 0xd0]
mov qword [rsp + 0x148], 5
mov byte [rsp + 0x155], 0
mov dword [rsp + 0x170], 0x4342415a
mov byte [rsi + 0xb4], 0x44
mov qword [rsp + 0x180], rax
lea rax, [rsi + 0xf0]
mov qword [rsp + 0x168], 5
mov byte [rsp + 0x175], 0
mov dword [rsp + 0x190], 0x48474645
mov byte [rsi + 0xd4], 0x49
mov qword [rsp + 0x1a0], rax
lea rax, [rsi + 0x110]
mov qword [rsp + 0x188], 5
mov byte [rsp + 0x195], 0
mov dword [rsp + 0x1b0], 0x4d4c4b4a
mov byte [rsi + 0xf4], 0x4e
mov qword [rsp + 0x1c0], rax
lea rax, [rsi + 0x130]
mov qword [rsp + 0x1a8], 5
mov byte [rsp + 0x1b5], 0
mov dword [rsp + 0x1d0], 0x5251504f
mov byte [rsi + 0x114], 0x53
mov qword [rsp + 0x1e0], rax
lea rax, [r12 + 0x10]
mov qword [rsp + 0x1c8], 5
mov byte [rsp + 0x1d5], 0
mov dword [rsp + 0x1f0], 0x57565554
mov qword [rsp + 0x80], rax
mov byte [rsi + 0x134], 0x58
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x1e8], 5
mov byte [rsp + 0x1f5], 0
mov byte [rsp + 0x90], 0
jmp 0x40271c
test rax, rax
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x90], r8
je 0x402815
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xa8], 0
mov byte [rax], 0
mov rcx, qword [rsp + 0xa0]
cmp rcx, rbp
je 0x40270a
call fcn.00410058
mov eax, ebx
mul r13d
mov ebx, edx
shr ebx, 3
test ebx, ebx
je 0x402825
call fcn.00410110
mov r8d, ebx
mov ecx, eax
mov eax, ebx
mul r13d
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
sub r8d, eax
mov eax, ecx
imul r15d
mov eax, ecx
movsxd r8, r8d
sar eax, 0x1f
shl r8, 5
sar edx, 1
sub edx, eax
lea eax, [rdx + rdx*4]
sub ecx, eax
mov rax, qword [rsp + r8 + 0xc0]
movsxd rcx, ecx
movsx r14d, byte [rax + rcx]
mov rcx, rdi
mov qword [rsp + 0xa0], rbp
mov rax, qword [rsp + 0x88]
mov byte [rsp + 0xb0], 0
mov qword [rsp + 0xa8], 0
lea rdx, [rax + 1]
call fcn.00410088
mov rdx, qword [rsp + 0xa8]
mov dword [rsp + 0x20], r14d
xor r8d, r8d
mov rcx, rdi
mov r9d, 1
call fcn.00410090
mov r8, qword [rsp + 0x88]
mov rcx, rdi
mov rdx, qword [rsp + 0x80]
call fcn.00410080
mov rdx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x80]
cmp rdx, rbp
je 0x402bb0
lea rcx, [r12 + 0x10]
mov r8, qword [rsp + 0xb0]
cmp rax, rcx
mov r9, qword [rsp + 0xa8]
jne 0x4026b0
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x90], r8
mov qword [rsp + 0xa0], rbp
mov rax, rbp
jmp 0x4026e9
mov rbp, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
test rbp, rbp
mov r8d, eax
je 0x40284d
cmp eax, 0xffffffff
jne 0x40284d
mov rcx, rbp
call fcn.004100f0
mov r8d, eax
lea r15, [rsp + 0x58]
mov rdx, rbp
mov rax, qword [rsp + 0x30]
mov rcx, r15
call rax
lea rdx, str.default
mov qword [rsp + 0xa0], 2
mov r10, qword [rsp + 0x48]
lea r13, [rsp + 0x78]
mov qword [rsp + 0xb8], rdx
mov rdx, rdi
mov qword [rsp + 0xa8], 0
mov rcx, r13
mov qword [rsp + 0xb0], 0
call r10
lea rbp, [rsp + 0x70]
mov r14, qword [rsp + 0x78]
mov r8d, 0x18
lea rdx, str.Generated_random_string:
mov rcx, rbp
mov rax, qword [rsp + 0x30]
call rax
mov rdx, rbp
mov rcx, r14
mov rax, qword [rsp + 0x40]
call rax
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx]
test eax, eax
je 0x402c10
cmp eax, 0xffffffff
je 0x4028f6
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x70]
je 0x402c10
mov rcx, qword [rsp + 0x78]
cmp byte [rcx + 0x20], 0
jne 0x402c30
mov rax, qword [rsp + 0x58]
mov rcx, r13
mov r14, qword [0x00425008]
mov rdx, qword [rax + 0x10]
mov r8d, dword [rax + 4]
add rdx, rax
call r14
mov rcx, qword [rsp + 0x78]
cmp byte [rcx + 0x20], 0
jne 0x402cf3
mov rcx, r13
mov rax, qword [rsp + 0x38]
call rax
mov rcx, rdi
call qword [0x00425120]
mov rax, qword [rsp + 0xa0]
mov rcx, rax
add rcx, qword [rax + 0x10]
je 0x402989
mov r8d, dword [rax + 4]
test r8d, r8d
je 0x402989
lea rdx, [rcx + 1]
xor eax, eax
cmp byte [rcx], 0
jne 0x40297e
jmp 0x402989
add rdx, 1
cmp byte [rdx - 1], 0
je 0x402d13
add eax, 1
cmp r8d, eax
jne 0x402970
mov ebx, r8d
mov edx, ebx
call qword [0x004250a0]
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 0x60], rax
mov eax, dword [rcx]
test eax, eax
je 0x402bf0
cmp eax, 0xffffffff
je 0x4029bf
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa0]
je 0x402bf0
lea rbx, [rsp + 0x60]
mov r8d, 8
lea rcx, [rsp + 0x68]
mov rdx, rbx
call qword [0x00425210]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rdx
mov edx, dword [rax]
test edx, edx
je 0x402cb0
cmp edx, 0xffffffff
je 0x402a05
lock sub dword [rax], 1
je 0x402cb0
lea rax, str.default
mov rdx, rdi
mov qword [rsp + 0xa0], 2
mov rcx, rbp
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
call rax
mov rax, qword [rsp + 0x70]
mov r8d, 0x15
mov rcx, r13
lea rdx, str.Generated_mac_string:
mov r11, qword [rsp + 0x30]
mov qword [rsp + 0x48], rax
call r11
mov rdx, r13
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
call rax
mov rcx, qword [rsp + 0x78]
mov eax, dword [rcx]
test eax, eax
je 0x402c80
cmp eax, 0xffffffff
je 0x402a99
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x78]
je 0x402c80
mov rcx, qword [rsp + 0x70]
cmp byte [rcx + 0x20], 0
jne 0x402ca0
mov rax, qword [rsp + 0x60]
mov rcx, rbp
mov rdx, qword [rax + 0x10]
mov r8d, dword [rax + 4]
add rdx, rax
call r14
mov rcx, qword [rsp + 0x70]
cmp byte [rcx + 0x20], 0
jne 0x402ccb
mov rax, qword [rsp + 0x38]
mov rcx, rbp
call rax
mov rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x250]
mov qword [rax], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x402d1a
mov rdx, r15
mov rcx, qword [rsp + 0x250]
call qword [0x004250b0]
mov rcx, qword [rsp + 0x60]
mov eax, dword [rcx]
test eax, eax
je 0x402c60
cmp eax, 0xffffffff
je 0x402b29
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x60]
je 0x402c60
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx]
test eax, eax
je 0x402c40
cmp eax, 0xffffffff
je 0x402b4c
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x58]
je 0x402c40
mov rcx, qword [rsp + 0x80]
add r12, 0x10
cmp rcx, r12
je 0x402b62
call fcn.00410058
add rsi, 0x120
nop dword [rax]
mov rcx, qword [rsi]
lea rax, [rsi + 0x10]
cmp rcx, rax
je 0x402b81
call fcn.00410058
sub rsi, 0x20
cmp rdi, rsi
jne 0x402b70
mov rax, qword [rsp + 0x250]
add rsp, 0x208
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rdi
mov rcx, r12
call fcn.00410078
mov rax, qword [rsp + 0xa0]
jmp 0x4026e9
mov r8d, 8
mov edx, 2
call qword [0x00424e78]
jmp 0x402442
mov r8d, 8
mov edx, 1
call qword [0x00424e78]
jmp 0x4029bf
mov r8d, 8
mov edx, 2
call qword [0x00424e78]
mov rcx, qword [rsp + 0x78]
cmp byte [rcx + 0x20], 0
je 0x402905
mov edx, 0x20
call qword [0x00424f28]
jmp 0x402905
mov r8d, 8
mov edx, 2
call qword [0x00424e78]
jmp 0x402b4c
mov r8d, 8
mov edx, 2
call qword [0x00424e78]
jmp 0x402b29
mov r8d, 8
mov edx, 2
call qword [0x00424e78]
mov rcx, qword [rsp + 0x70]
cmp byte [rcx + 0x20], 0
je 0x402aa8
mov edx, 0x20
call qword [0x00424f28]
jmp 0x402aa8
mov r8d, 8
mov edx, 2
mov rcx, qword [rsp + 0x68]
call qword [0x00424e78]
jmp 0x402a05
mov edx, 0x20
call qword [0x00424f28]
jmp 0x402acd
mov edx, 0x20
call qword [0x00424f28]
mov rcx, qword [rsp + 0x80]
jmp 0x402457
mov edx, 0x20
call qword [0x00424f28]
jmp 0x402931
mov edx, 0x20
call qword [0x00424f28]
jmp 0x402471
mov ebx, eax
jmp 0x402989
lock add dword [rdx], 1
jmp 0x402af5