Function at 0x410080
Capabilities:
Suspend thread

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x398
mov esi, dword [rcx + 0x68]
mov dword [rcx + 0x110], 0x40010001
mov rbx, rcx
mov edi, edx
mov dword [rcx + 0x44], esi
mov dword [rcx + 0x48], esi
mov ecx, dword [rcx + 0x60]
cmp ecx, 9
ja case.0x4100c7.0
lea r8, [0x0043af5c]
mov edx, ecx
movsxd rax, dword [r8 + rdx*4]
add rax, r8
jmp rax
mov ebp, dword [rbx + 0x74]
mov edi, dword [rbx + 0x70]
mov ecx, 2
mov ebx, dword [rbx + 0x64]
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [rsp + 0x28], ebp
mov r9d, esi
lea rdx, str._08lx:_08lx:_rip_error_lu_type_lu_n
mov dword [rsp + 0x20], edi
mov rcx, rax
mov r8d, ebx
call sym.fprintf
mov eax, 1
add rsp, 0x398
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [rbx + 0x70]
test byte [0x0042e220], 8
jne 0x410810
cmp edx, 0x406d1388
je 0x410760
mov eax, 1
cmp edx, 0xc0000008
je 0x410106
mov rcx, qword [rbx + 0x118]
mov rsi, qword [rcx + 0x38]
add rcx, 0x38
mov rdi, qword [sym.imp.kernel32.dll_SuspendThread]
cmp rsi, rcx
jne 0x410191
jmp 0x410678
mov dword [rsi + 0x130], 1
mov rsi, qword [rsi]
mov rax, qword [rbx + 0x118]
add rax, 0x38
cmp rsi, rax
je 0x410678
mov edx, dword [rsi + 0x130]
test edx, edx
jne 0x410170
mov rcx, qword [rsi + 0x18]
call rdi
jmp 0x410170
mov rbp, qword [rbx + 0x80]
mov edi, dword [rbx + 0x64]
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r9d, esi
lea rdx, str._08lx:_08lx:_create_thread_D___p_n
mov qword [rsp + 0x20], rbp
mov rcx, rax
mov r8d, edi
call sym.fprintf
mov edx, dword [rbx + 0x68]
mov rcx, qword [rbx + 0x118]
mov r9, qword [rbx + 0x78]
mov r8, qword [rbx + 0x70]
call sym.dbg_add_thread
mov eax, 1
jmp 0x410106
mov edx, dword [rbx + 0x64]
mov r8, qword [rbx + 0x78]
lea rcx, [0x0042e200]
call sym.dbg_add_process
mov qword [rbx + 0x118], rax
test rax, rax
je 0x410101
lea rsi, [rsp + 0x190]
lea r9, [rsp + 0x60]
xor edx, edx
mov dword [rsp + 0x60], 0x100
mov r8, rsi
mov rcx, qword [rax + 0x10]
call qword [sym.imp.kernel32.dll_QueryFullProcessImageNameW]
mov rcx, qword [rbx + 0x118]
mov rdx, rsi
call sym.dbg_set_process_name
mov edx, dword [rbx + 0x94]
mov r12d, dword [rbx + 0x68]
mov ecx, 2
mov r15d, dword [rbx + 0x90]
mov r14, qword [rbx + 0xa0]
mov r13, qword [rbx + 0xa8]
mov ebp, dword [rbx + 0x64]
mov dword [rsp + 0x5c], edx
mov rdi, qword [sym.imp.ucrtbase.dll___acrt_iob_func]
call rdi
mov edx, dword [rsp + 0x5c]
mov dword [rsp + 0x38], r15d
mov r8d, ebp
mov qword [rsp + 0x30], r14
mov rcx, rax
mov r9d, r12d
mov dword [rsp + 0x40], edx
lea rdx, str._04lx:_04lx:_create_process__ls__p___p___lu__lu___n
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rsi
call sym.fprintf
mov rax, qword [rbx + 0x118]
mov r8d, 1
mov rdx, rsi
mov rcx, qword [rax + 0x10]
call sym.dbg_init
test eax, eax
jne 0x410300
test byte [0x0042e220], 2
je 0x410300
lea r9, [0x0043ad75]
lea r8, str.handle_debug_event
mov ecx, 1
lea rdx, [0x0042e220]
call sym.wine_dbg_log.constprop.0_4
mov r13, qword [rbx + 0xa0]
mov r12d, dword [rbx + 0x68]
mov ecx, 2
mov ebp, dword [rbx + 0x64]
call rdi
mov qword [rsp + 0x20], r13
mov r9d, r12d
lea rdx, [0x0043ad90]
mov rcx, rax
mov r8d, ebp
call sym.fprintf
mov rax, qword [rbx + 0x118]
mov rdx, qword [rbx + 0x70]
mov r8, rsi
mov rcx, qword [rax + 0x10]
mov dword [rsp + 0x20], 0
mov r9, qword [rbx + 0x88]
call sym.dbg_load_module
mov edx, dword [rbx + 0x68]
mov rcx, qword [rbx + 0x118]
mov r9, qword [rbx + 0x98]
mov r8, qword [rbx + 0x80]
call sym.dbg_add_thread
mov eax, 1
jmp 0x410106
mov ebp, dword [rbx + 0x70]
mov edi, dword [rbx + 0x64]
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r9d, esi
lea rdx, str._08lx:_08lx:_exit_thread___lu__n
mov dword [rsp + 0x20], ebp
mov rcx, rax
mov r8d, edi
call sym.fprintf
mov rcx, qword [rbx + 0x118]
mov edx, dword [rbx + 0x68]
call sym.dbg_get_thread
mov rcx, rax
test rax, rax
je 0x410101
call sym.dbg_del_thread
mov eax, 1
jmp 0x410106
mov ebp, dword [rbx + 0x70]
mov edi, dword [rbx + 0x64]
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r9d, esi
lea rdx, str._08lx:_08lx:_exit_process___lu__n
mov dword [rsp + 0x20], ebp
mov rcx, rax
mov r8d, edi
call sym.fprintf
mov rcx, qword [rbx + 0x118]
call sym.dbg_del_process
xor eax, eax
mov qword [rbx + 0x118], 0
jmp 0x410106
mov rdx, qword [rbx + 0x78]
lea rsi, [rsp + 0x190]
mov rcx, qword [rbx + 0x88]
mov r9d, 0x100
mov r8, rsi
call sym.fetch_module_name
mov r15d, dword [rbx + 0x84]
mov r14d, dword [rbx + 0x80]
mov ecx, 2
mov r13, qword [rbx + 0x78]
mov r12d, dword [rbx + 0x68]
mov ebp, dword [rbx + 0x64]
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [rsp + 0x38], r15d
mov r9d, r12d
lea rdx, str._04lx:_04lx:_loads_DLL__ls___p___lu__lu___n
mov dword [rsp + 0x30], r14d
mov rcx, rax
mov r8d, ebp
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rsi
call sym.fprintf
mov rax, qword [rbx + 0x118]
mov rdx, qword [rbx + 0x70]
mov r8, rsi
mov rcx, qword [rax + 0x10]
mov dword [rsp + 0x20], 0
mov r9, qword [rbx + 0x78]
call sym.dbg_load_module
test edi, edi
je 0x410101
jmp 0x410149
mov r12, qword [rbx + 0x70]
mov ebp, dword [rbx + 0x64]
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
lea rdx, str._08lx:_08lx:_unload_DLL___p_n
mov r9d, esi
mov qword [rsp + 0x20], r12
mov rcx, rax
mov r8d, ebp
call sym.fprintf
mov rax, qword [rbx + 0x118]
mov rdx, qword [rbx + 0x70]
mov rcx, qword [rax + 0x10]
call sym.SymUnloadModule64
test edi, edi
je 0x410101
jmp 0x410149
lea rsi, [rsp + 0x190]
mov rdx, qword [rbx + 0x70]
mov rcx, qword [rbx + 0x118]
mov dword [rsp + 0x28], 0x100
mov qword [rsp + 0x20], rsi
movzx r9d, word [rbx + 0x78]
mov r8d, 1
call sym.memory_get_string
mov rax, rsi
shr rax, 0x10
je 0x410748
mov rdx, 0xffffffffffffffff
mov rcx, rsi
lea rdi, [0x0043a0c7]
call qword [sym.imp.kernel32.dll_IsBadStringPtrA]
test eax, eax
jne 0x41063c
cmp byte [rsp + 0x190], 0
je 0x41085b
xor eax, eax
nop dword [rax]
mov ecx, eax
add rax, 1
cmp byte [rsi + rax], 0
jne 0x410580
mov byte [rsp + 0x60], 0x22
lea rdx, [rsp + 0x61]
lea r10, str.0123456789abcdefhandle_exception
lea r8, [rsp + 0x183]
jmp 0x4105de
cmp al, 9
je 0x410730
cmp al, 0xa
jne 0x4106e2
mov r13d, 0x6e5c
add rdx, 2
mov word [rdx - 2], r13w
nop
lea eax, [rcx - 1]
test ecx, ecx
jle 0x410610
cmp rdx, r8
ja 0x410610
mov ecx, eax
movzx eax, byte [rsi]
add rsi, 1
cmp al, 0xd
je 0x4106c0
jle 0x4105b0
cmp al, 0x22
je 0x410718
cmp al, 0x5c
jne 0x4106d4
mov r11d, 0x5c5c
add rdx, 2
mov word [rdx - 2], r11w
jmp 0x4105d0
mov byte [rdx], 0x22
test eax, eax
jle 0x41086a
mov ecx, 0x2e2e
mov byte [rdx + 3], 0x2e
lea rax, [rdx + 4]
mov word [rdx + 1], cx
mov byte [rax], 0
lea rcx, [rsp + 0x60]
call sym.__wine_dbg_strdup
mov rdi, rax
mov esi, dword [rbx + 0x68]
mov ecx, 2
mov ebx, dword [rbx + 0x64]
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov qword [rsp + 0x20], rdi
lea rdx, str._08lx:_08lx:_output_debug_string___s__n
mov rcx, rax
mov r9d, esi
mov r8d, ebx
call sym.fprintf
mov eax, 1
jmp 0x410106
xor eax, eax
jmp 0x410106
test byte [0x0042e220], 1
je 0x410149
mov dword [rsp + 0x30], ecx
lea r9, str._08lx:_08lx:_unknown_event___lu__n
lea r8, str.handle_debug_event
xor ecx, ecx
mov dword [rsp + 0x28], esi
mov eax, dword [rbx + 0x64]
lea rdx, [0x0042e220]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_4
jmp 0x410149
mov r12d, 0x725c
add rdx, 2
mov word [rdx - 2], r12w
jmp 0x4105d0
lea r9d, [rax - 0x20]
cmp r9b, 0x5e
jbe 0x410850
mov r9d, 0x785c
add rdx, 4
mov word [rdx - 4], r9w
mov r9d, eax
and eax, 0xf
shr r9b, 4
movzx eax, byte [r10 + rax]
and r9d, 0xf
movzx r9d, byte [r10 + r9]
mov byte [rdx - 1], al
mov byte [rdx - 2], r9b
jmp 0x4105d0
mov edi, 0x225c
add rdx, 2
mov word [rdx - 2], di
jmp 0x4105d0
mov ebp, 0x745c
add rdx, 2
mov word [rdx - 2], bp
jmp 0x4105d0
movzx edx, si
lea rcx, [0x0043a0ba]
call sym.wine_dbg_sprintf.constprop.0
mov rdi, rax
jmp 0x41063c
cmp dword [rbx + 0x90], 0x1000
mov rcx, qword [rbx + 0x118]
jne 0x410150
mov edx, dword [rbx + 0xa0]
cmp edx, 0xffffffff
je 0x410873
call sym.dbg_get_thread
test rax, rax
je 0x410880
mov rax, qword [rbx + 0x118]
lea r8, [rsp + 0x60]
lea rsi, [rsp + 0x190]
mov rdx, qword [rbx + 0x98]
mov r9d, 9
mov rcx, qword [rax + 0x10]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x20], r8
mov r8, rsi
call qword [rax + 8]
test eax, eax
je 0x410101
cmp qword [rsp + 0x60], 9
jne 0x410101
mov ebx, dword [rbx + 0xa0]
mov ecx, 2
call qword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov r9, rsi
lea rdx, str.Thread_ID_04lx_renamed_to___.9s__n
mov rcx, rax
mov r8d, ebx
call sym.fprintf
mov eax, 1
jmp 0x410106
mov dword [rsp + 0x30], edx
lea r9, str._08lx:_08lx:_exception_code0x_08lx_n
lea rdx, [0x0042e220]
mov ecx, 3
mov dword [rsp + 0x28], esi
mov eax, dword [rbx + 0x64]
lea r8, str.handle_debug_event
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_4
mov edx, dword [rbx + 0x70]
jmp 0x410130
mov byte [rdx], al
add rdx, 1
jmp 0x4105d0
mov eax, 0x2222
lea rdx, [rsp + 0x61]
mov word [rsp + 0x60], ax
lea rax, [rdx + 1]
jmp 0x41062c
mov edx, dword [rbx + 0x68]
call sym.dbg_get_thread
jmp 0x41078b
test byte [0x0042e220], 2
je 0x410101
mov eax, dword [rbx + 0xa0]
lea r9, str.Cannot_set_name_of_thread__04lx_n
lea r8, [0x0043b8e0]
mov ecx, 1
lea rdx, [0x0042e220]
mov dword [rsp + 0x20], eax
call sym.wine_dbg_log.constprop.0_4
mov eax, 1
jmp 0x410106