Function at 0xa66e0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
xor ebx, ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xc], ebx
mov eax, edx
mov dword [ebp - 4], eax
push esi
push edi
test ecx, ecx
je 0xa6b12
cmp dword [ecx], ebx
jne 0xa6b12
test eax, eax
je 0xa6b12
push 0x64
push 1
call fcn.001591ee
mov edi, eax
add esp, 8
mov dword [ebp - 0xc], edi
test edi, edi
je 0xa6b12
mov ecx, edi
call fcn.000b6b10
test eax, eax
je 0xa6746
push str.failed_to_get_platform_information
push 0x17bec4
push 0x82e
jmp 0xa6b21
lea eax, [ebp - 0x10]
mov dword [ebp - 8], ebx
push eax
lea edx, [ebp - 8]
mov dword [ebp - 0x10], ebx
mov ecx, edi
call fcn.000b6d40
add esp, 4
test eax, eax
je 0xa6797
push dword [edi]
push str.failed_to_parse_windows_version__s
push 0x9be
push str.fr_subject_sleep_init
push str.fr_subject.c
call fcn.000c0810
add esp, 0x14
test eax, eax
je 0xa67d3
push str.failed_to_set_sleep_state
push 0x17bec4
push 0x830
jmp 0xa6b21
xor esi, esi
mov eax, 0x40
cmp dword [ebp - 8], 6
cmove esi, eax
or esi, 0x80000001
push esi
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
test eax, eax
jne 0xa67d3
push esi
push str.failed_to_set_thread_execution_state__x
push 0x9c3
push str.fr_subject_sleep_init
push str.fr_subject.c
call fcn.000c0810
add esp, 0x14
mov eax, dword [ebp - 4]
mov ecx, edi
mov dword [edi + 8], eax
mov eax, dword [eax]
mov dword [edi + 0xc], eax
call fcn.000a5b00
test eax, eax
je 0xa682d
push str.failed_to_load_devices
push 0x17bec4
push 0x837
push str.fr_subject_init
push str.fr_subject.c
call fcn.000c0810
add esp, 0x14
mov dword [0x1aa1fc], 6
mov ebx, eax
push str.No_devices_detected_using_current_user_credentials._n
push 0
push dword [edi + 0xc]
call fcn.000c0c10
add esp, 0xc
jmp 0xa6b35
mov edx, dword [edi + 0x10]
xor ecx, ecx
mov eax, edx
test edx, edx
je 0xa6b01
nop dword [eax]
mov eax, dword [eax + 0x34]
inc ecx
cmp eax, edx
jne 0xa6840
test ecx, ecx
jle 0xa6b01
lea ecx, [edi + 0x14]
call fcn.000aaec0
test eax, eax
jne 0xa6af0
mov edx, dword [edi + 0xc]
lea ecx, [edi + 0x18]
call fcn.000ab160
test eax, eax
jne 0xa6af0
lea ecx, [edi + 0x1c]
call fcn.000c15b0
test eax, eax
jne 0xa6af0
lea ecx, [edi + 0x20]
xor edx, edx
call fcn.000c1050
test eax, eax
jne 0xa6af0
lea ecx, [edi + 0x2c]
call fcn.000a3dd0
test eax, eax
jne 0xa6af0
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x30]
sub eax, 1
je 0xa68c1
sub eax, 5
je 0xa68bb
or dword [edi + 0x5c], 8
jmp 0xa68c5
or dword [edi + 0x5c], 2
jmp 0xa68c5
or dword [edi + 0x5c], 4
mov ecx, edi
call fcn.000a5be0
test eax, eax
jne 0xa6a59
test byte [edi + 0x5c], 8
je 0xa690f
lea ecx, [edi + 0x24]
call fcn.000a39a0
test eax, eax
je 0xa690f
push str.failed_to_create_manager_notify_object
push 0x17bec4
push 0x6a3
push str.fr_subject_load_notifier
push str.fr_subject.c
call fcn.000c0810
add esp, 0x14
test eax, eax
jne 0xa6a59
lea esi, [edi + 0x40]
test esi, esi
je 0xa6adf
cmp dword [esi], ebx
jne 0xa6adf
push 0x38
push 1
call fcn.001591ee
add esp, 8
test eax, eax
je 0xa6adf
mov ecx, dword [ebp - 4]
mov edx, 0xa9f60
mov dword [eax + 0x24], ebx
mov dword [esi], eax
mov ecx, dword [ecx + 0x14]
test edx, edx
je 0xa6967
test ecx, ecx
jne 0xa695c
push str.stack_size_must_be_non_zero
push 0x17bec4
push 0x26
jmp 0xa6973
mov dword [eax + 4], ecx
mov dword [eax], 0xa9f60
jmp 0xa698d
push str.invalid_config_or_caller_object
push 0x17bec4
push 0x24
push str.fr_cfg_set_caller
push str.fr_cfg.c
call fcn.000c0810
add esp, 0x14
test eax, eax
jne 0xa6adf
mov eax, dword [esi]
test eax, eax
je 0xa69a5
mov ecx, 0xaa5f0
test ecx, ecx
je 0xa69a5
mov dword [eax + 0x18], 0xaa5f0
jmp 0xa69cb
push str.invalid_config_or_closed_object
push 0x17bec4
push 0x4d
push str.fr_cfg_set_closed
push str.fr_cfg.c
call fcn.000c0810
add esp, 0x14
test eax, eax
jne 0xa6adf
mov ecx, edi
call fcn.000a5d70
test eax, eax
jne 0xa6adf
mov ecx, edi
call fcn.000a6100
test eax, eax
jne 0xa6adf
mov eax, dword [ebp - 4]
lea ecx, [edi + 0x44]
push edi
push dword [esi]
mov edx, 2
push dword [eax + 0x34]
call fcn.000b5520
add esp, 0xc
test eax, eax
je 0xa6a1a
push str.failed_to_start_subject_server
push 0x17bec4
push 0x862
jmp 0xa6b21
cmp dword [edi + 0x24], ebx
je 0xa6a4e
push 0x3e8
push fcn.000aa4d0
lea ecx, [edi + 0x28]
mov edx, edi
call fcn.000b8b30
add esp, 8
test eax, eax
je 0xa6a4e
push str.failed_to_start_notification_cycler
push 0x17bec4
push 0x866
jmp 0xa6b21
mov ecx, edi
call fcn.000a6420
test eax, eax
je 0xa6a63
mov ebx, 1
jmp 0xa6b39
test byte [edi + 0x5c], 2
je 0xa6a8f
push ecx
lea ecx, [edi + 0x54]
mov edx, edi
call fcn.000a4f80
add esp, 4
test eax, eax
je 0xa6a8f
push str.failed_to_start_subject_beacon
push 0x17bec4
push 0x86e
jmp 0xa6b21
lea ecx, [edi + 0x4c]
call fcn.000c1630
test eax, eax
jne 0xa6ace
lea ecx, [edi + 0x50]
call fcn.000c1510
test eax, eax
jne 0xa6ace
mov esi, dword [edi + 0x50]
push eax
push eax
push edi
push 0xa6540
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi], eax
test eax, eax
je 0xa6ace
mov eax, dword [ebp - 0x14]
mov dword [eax], edi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.failed_to_create_and_load_flexdisk_thread_object
push 0x17bec4
push 0x875
jmp 0xa6b21
push str.failed_to_load_subject_configuration
push 0x17bec4
push 0x860
jmp 0xa6b21
push str.failed_to_load_supporting_objects
push 0x17bec4
push 0x84c
jmp 0xa6b21
push str.failed_to_count_devices
push 0x17bec4
push 0x841
jmp 0xa6b21
push str.failed_to_create_subject_object
push 0x17bec4
push 0x82c
push str.fr_subject_init
push str.fr_subject.c
call fcn.000c0810
mov ebx, eax
add esp, 0x14
test ebx, ebx
je 0xa6b4a
lea ecx, [ebp - 0xc]
call fcn.000a6b60
mov eax, dword [0x1aa1fc]
test eax, eax
jne 0xa6b4c
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret