Function at 0x405210
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rax, qword [rcx + 0x78]
mov rdi, qword [rcx + 0xb8]
xor r9d, r9d
mov r12, qword [rcx + 0x48]
mov rbp, qword [rcx + 0x50]
xor r8d, r8d
mov r13, qword [rcx + 0x80]
mov r15, qword [rcx + 0x88]
mov rdx, rcx
mov qword [rsp + 0x38], rax
mov rax, qword [rcx + 0x90]
mov rbx, rcx
mov rsi, qword [rcx + 0xd8]
mov r14, qword [rcx + 0xd0]
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 0xb0]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 0xc0]
mov ecx, 0x40
mov dword [rdi + 4], 0
mov byte [rdi + 0x11], 1
mov byte [rdi + 0x12], 1
mov byte [rdi + 0x13], 1
mov byte [rdi + 0x14], 1
mov qword [rsp + 0x40], rax
call fcn.00402e60
mov rcx, rbx
call fcn.0040d0d0
cmp eax, 0xffffffff
je 0x405a74
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0x41
call fcn.00402e60
mov rax, qword [r13 + 0x58]
cmp rax, 0xffffffffffffffff
je 0x4052dd
cmp byte [rsi + 0x39], 0
je 0x4053f0
mov rcx, rbx
call fcn.004075d0
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.004076a0
cmp eax, 0xffffffff
je 0x4054f0
cmp byte [rsi + 0x41], 0
mov eax, dword [rbp + 0x64]
jne 0x405312
cmp byte [rsi + 0x5c], 0
je 0x405430
mov dword [rbp + 0x60], eax
mov rcx, rbx
call fcn.00408de0
cmp eax, 0xffffffff
je 0x4054f0
cmp byte [rsi + 0x50], 0
je 0x405450
mov rcx, rbx
call fcn.00409e50
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.00409450
cmp eax, 0xffffffff
je 0x4054f0
cmp byte [rsi + 0x57], 0
jne 0x4054a0
cmp byte [rsi + 0x42], 0
jne 0x4054d0
mov eax, dword [rbp + 0x10]
mov r8d, dword [r12 + 0x78]
cmp eax, r8d
jb 0x405ade
mov r8d, dword [r12 + 0x7c]
cmp eax, r8d
ja 0x405ac4
cmp dword [rdi + 4], 6
jne 0x405500
cmp byte [rsi + 0x53], 0
je 0x4053c0
mov eax, dword [rbp + 8]
sub eax, 5
cmp eax, 1
ja 0x4053c0
mov eax, dword [rbp + 0x14]
cmp dword [rbp + 0x24], eax
je 0x4053c0
mov rcx, rbx
call fcn.004064b0
cmp eax, 0xffffffff
je 0x4054f0
nop dword [rax]
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xc0
call fcn.00402e60
xor r9d, r9d
mov eax, r9d
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rsi + 0x57], 0
je 0x405954
mov r8, r14
mov rdx, rsi
mov rcx, r12
call rax
lea rdx, [0x00535831]
mov rcx, rbx
mov r8, rax
call fcn.004032f0
xor edx, edx
mov rcx, rbx
call fcn.004032f0
jmp 0x4052dd
test eax, eax
jne 0x405312
lea rdx, [0x00535834]
mov rcx, rbx
call fcn.00403390
mov r9d, 0xffffffff
jmp 0x4053d6
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xc5
call fcn.00402e60
cmp byte [rsi + 0x44], 0
jne 0x4056d0
mov rcx, rbx
call fcn.004142a0
cmp byte [rsi + 0x44], 0
jne 0x4056c3
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xc4
call fcn.00402e60
jmp 0x405330
mov rcx, rbx
mov dword [rdi + 4], 3
call fcn.004133c0
mov rcx, rbx
call fcn.00414950
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.00413470
xor r9d, r9d
jmp 0x4053d6
mov rcx, rbx
mov dword [rdi + 4], 3
call fcn.004133c0
mov rcx, rbx
call fcn.00415080
cmp eax, 0xffffffff
jne 0x4054bc
nop dword [rax]
mov r9d, 0xffffffff
jmp 0x4053d6
mov rcx, rbx
call fcn.004095b0
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.004097f0
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.00409cc0
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.0040a150
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0x11
call fcn.00402e60
mov rcx, rbx
call fcn.004656c0
cmp eax, 0xffffffff
je 0x4054f0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0x10
call fcn.00402e60
mov rcx, rbx
call fcn.00468430
mov rcx, rbx
call fcn.0042dd50
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.00421c00
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.00465cf0
cmp eax, 0xffffffff
je 0x4054f0
mov rcx, rbx
call fcn.00410b10
cmp eax, 0xffffffff
je 0x4054f0
cmp qword [rsi + 0x1f8], 0
jne 0x4055c6
cmp qword [rsi + 0x1f0], 0
je 0x405990
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x64], 1
ja 0x405a98
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x1c], 1
ja 0x405a98
cmp byte [rsi + 0x1e], 0
je 0x4055f4
cmp byte [rsi + 0x5c], 0
jne 0x405b16
mov rcx, rbx
call fcn.00421130
cmp eax, 0xffffffff
je 0x4054f0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xb1
call fcn.00402e60
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xc3
call fcn.00402e60
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xa1
call fcn.00402e60
mov rcx, rbx
call fcn.00456ac0
cmp eax, 0xffffffff
jne 0x4056e0
cmp byte [rsi + 0x34], 0
je 0x4054f0
cmp byte [rsi + 0x1e], 0
jne 0x4054f0
mov rcx, rbx
call fcn.00463260
mov rcx, rbx
call fcn.00442360
mov rcx, rbx
call fcn.00465bf0
mov rcx, rbx
call fcn.00466460
mov rcx, rbx
call fcn.004684b0
mov rcx, rbx
call fcn.0040e010
mov rcx, rbx
call fcn.00409fe0
mov rcx, rbx
call fcn.004113c0
mov rcx, rbx
call fcn.00421190
mov rcx, rbx
call fcn.00422160
mov rcx, rbx
call fcn.0042de80
xor r9d, r9d
jmp 0x4053d6
mov rcx, rbx
call fcn.0040e7e0
jmp 0x40547f
mov rcx, rbx
call fcn.0040e6e0
jmp 0x40546d
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xa0
movabs r13, 0x8000000000000
call fcn.00402e60
and r13, qword [r12 + 0x20]
jne 0x40587c
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xe1
call fcn.00402e60
movsxd rcx, dword [r15 + 0x2840]
mov edx, 0x10
call fcn.0040e940
movsxd rcx, dword [r15 + 0x2840]
mov edx, 8
mov rbp, rax
mov qword [rsp + 0x58], rax
call fcn.0040e940
mov r14, rax
mov qword [rsp + 0x40], rax
mov eax, dword [r15 + 0x2840]
mov dword [rdi + 4], 2
test eax, eax
jle 0x405801
xor r12d, r12d
nop word cs:[rax + rax]
mov dword [rbp], r12d
mov qword [rbp + 8], rbx
mov r9, rbp
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r8, [0x0041bc30]
add r12d, 1
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [r14], rax
mov eax, dword [r15 + 0x2840]
add rbp, 0x10
add r14, 8
cmp eax, r12d
jg 0x405770
test eax, eax
jle 0x405801
mov r14d, 1
mov qword [rsp + 0xb0], rbx
mov r12, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbx, r14
mov r14, qword [rsp + 0x40]
mov ebp, 0xffffffff
nop
mov rcx, qword [r14 + rbx*8 - 8]
mov edx, ebp
call r12
mov eax, ebx
add rbx, 1
cmp dword [r15 + 0x2840], eax
jg 0x4057e0
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x58]
call fcn.0040ea80
mov rcx, qword [rsp + 0x40]
call fcn.0040ea80
mov eax, dword [r15 + 0x2840]
test eax, eax
jle 0x405862
lea edx, [rax - 1]
movzx ecx, byte [r15]
add rdx, 1
imul rdx, rdx, 0x1603f8
test cl, cl
je 0x405856
mov rax, qword [r15 + 0x2878]
add rax, r13
cmp byte [rax + 0x20c], 0
jne 0x405856
cmp dword [rax + 0x268], 1
je 0x4059d0
add r13, 0x1603f8
cmp r13, rdx
jne 0x405832
mov dword [rdi + 4], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0xe0
call fcn.00402e60
mov rcx, rbx
call fcn.00413f30
cmp eax, 0xffffffff
je 0x4054f0
mov edx, 8
mov ecx, 0xa
xor r12d, r12d
call fcn.0040e940
cmp byte [rsi + 0x41], 0
mov rbp, rax
mov byte [rdi + 0x15], 0
jne 0x4058c0
cmp byte [rsi + 0x5c], 0
jne 0x4058c0
cmp byte [rsi + 0x59], 0
je 0x405b30
nop dword [rax]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x20]
test rax, rax
je 0x4058ea
mov edx, dword [rax + 0x108]
test edx, edx
je 0x4058ea
mov rsi, qword [rsp + 0x38]
mov dword [rsi + 0x60], edx
mov dword [rax + 0x108], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0x61
call fcn.00402e60
mov r13, qword [rsp + 0x38]
mov eax, dword [r13 + 0x64]
test eax, eax
je 0x405af8
mov edx, dword [r13 + 0x60]
cmp eax, edx
mov esi, edx
ja 0x405939
jmp 0x405ba0
cmp byte [rdi + 0x11], 0
je 0x405a20
mov eax, dword [r13 + 0x64]
add esi, 1
cmp eax, esi
jbe 0x405a02
mov dword [r13 + 0x60], esi
mov rcx, rbx
call fcn.00405110
cmp eax, 0xffffffff
jne 0x405920
mov rcx, rbx
call fcn.00426700
jmp 0x405920
cmp byte [rsi + 0x42], 0
jne 0x4053fa
cmp byte [rsi + 0x34], 0
jne 0x405ab2
mov r8, r14
mov rdx, rsi
mov rcx, r12
call rax
lea rdx, [0x00535831]
mov r8, rax
mov rcx, rbx
call fcn.00403390
xor r9d, r9d
jmp 0x4053d6
cmp byte [rsi + 0x41], 0
je 0x4055e4
mov rax, qword [rsp + 0x38]
cmp dword [rax + 0x64], 1
ja 0x4059b4
mov rax, qword [rsp + 0x40]
cmp dword [rax + 0x1c], 1
jbe 0x4055e4
lea rdx, str.Use_of___keyspace_is_not_supported_with___increment_or_mask_files.
mov rcx, rbx
call fcn.00403390
mov r9d, 0xffffffff
jmp 0x4053d6
lea rdx, str.Aborting_session_due_to_kernel_self_test_failure.
mov rcx, rbx
call fcn.00403390
lea rdx, str.You_can_use___self_test_disable_to_override__but_do_not_report_related_errors.
mov rcx, rbx
call fcn.004032f0
xor edx, edx
mov rcx, rbx
call fcn.004032f0
mov byte [r15 + 8], 1
jmp 0x4054f0
mov rdx, qword [rsp + 0x38]
mov edx, dword [rdx + 0x60]
add edx, 1
cmp edx, eax
jne 0x405a20
mov rax, qword [rsp + 0x38]
mov dword [rax + 0x60], 0
nop dword [rax]
test r12d, r12d
mov byte [rdi + 0x15], 1
je 0x405a4c
mov edx, 0xffffffff
mov rcx, qword [rbp]
mov rsi, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
call rsi
cmp r12d, 2
jne 0x405a4c
mov rcx, qword [rbp + 8]
mov edx, 0xffffffff
call rsi
mov rcx, rbp
call fcn.0040ea80
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov ecx, 0x60
call fcn.00402e60
mov rcx, rbx
call fcn.00413fb0
jmp 0x405663
mov r8d, dword [rsi + 0x178]
lea rdx, str.Invalid_hash_mode__u_selected.
mov rcx, rbx
mov dword [rsp + 0x38], eax
call fcn.00403390
mov r9d, dword [rsp + 0x38]
jmp 0x4053d6
lea rdx, str.Use_of___skip___limit_is_not_supported_with___increment__mask_files__or___stdout.
mov rcx, rbx
call fcn.00403390
mov r9d, 0xffffffff
jmp 0x4053d6
cmp byte [rsi + 0x1e], 0
jne 0x4053fa
xor r9d, r9d
jmp 0x4053d6
lea rdx, str.Too_many_hashes_loaded___maximum_is__u_for_this_hash_mode.
mov rcx, rbx
call fcn.00403390
mov r9d, 0xffffffff
jmp 0x4053d6
lea rdx, str.Not_enough_hashes_loaded___minimum_is__u_for_this_hash_mode.
mov rcx, rbx
call fcn.00403390
mov r9d, 0xffffffff
jmp 0x4053d6
mov rcx, rbx
call fcn.00405110
cmp eax, 0xffffffff
jne 0x405a20
mov rcx, rbx
call fcn.00426700
jmp 0x405a20
lea rdx, str.Use_of__m___hash_type_is_not_supported_with___stdout.
mov rcx, rbx
call fcn.00403390
mov r9d, 0xffffffff
jmp 0x4053d6
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9, rbx
lea r8, [0x0040eb30]
mov rsi, qword [sym.imp.KERNEL32.dll_CreateThread]
mov r12d, 1
call rsi
mov qword [rbp], rax
mov rax, qword [rsp + 0x50]
cmp byte [rax], 0
je 0x4058c0
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9, rbx
lea r8, [0x00411fd0]
xor edx, edx
xor ecx, ecx
mov r12d, 2
call rsi
mov qword [rbp + 8], rax
jmp 0x4058c0
cmp byte [rdi + 0x11], 0
jne 0x405a0a
jmp 0x405a20