Function at 0x10057160
Capabilities:
Create thread

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10151c5d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x98
mov eax, dword [0x1020d838]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x80], esi
cmp byte [esi + 0xb], 0
jne 0x10057859
call fcn.10119500
sub esp, 8
mov dword [ebp - 0x78], 0
mov ecx, esp
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
mov edx, eax
push 2
sub esp, 0xc
mov dword [ecx], str.Attempting_to_initialize
mov eax, esp
mov dword [ecx + 4], 0x18
mov ecx, edx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.1000bba0
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + 0x58]
mov dword [ebp - 0x84], ecx
test ecx, ecx
jne 0x10057251
call fcn.10119500
sub esp, 8
mov ecx, esp
mov dword [ecx], str.Device_is_null._Will_try_to_initialize_once_again
mov dword [ecx + 4], 0x31
push 2
mov edx, eax
mov dword [ebp - 0x74], 0
sub esp, 0xc
mov dword [ebp - 0x78], 0
movq xmm0, qword [ebp - 0x78]
mov eax, esp
mov ecx, edx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.1000bba0
xor al, al
jmp 0x1005785b
xorps xmm0, xmm0
lea edx, [ebp - 0xa4]
movups xmmword [ebp - 0xa4], xmm0
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x24]
test eax, eax
js 0x100572be
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x100572ef
mov dword [ebp - 0x7c], eax
call fcn.10119500
mov ecx, eax
mov dword [ebp - 0x78], 0
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
push eax
push 0x41
push str._D3D_Device_init__D3DDEVICE_CREATION_PARAMETERS_hFocusWindow0_n
push 2
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.100470f0
mov eax, dword [ebp - 0x9c]
mov dword [esi + 0x10], eax
cmp dword [esi + 0x24], 0
jne 0x1005740a
push 0x38
call fcn.1011fc95
add esp, 4
mov dword [ebp - 0x88], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x1005730b
push dword [esi + 0x10]
mov ecx, eax
call fcn.1003e9b0
jmp 0x1005730d
call fcn.10119500
sub esp, 8
mov ecx, esp
mov dword [ecx], str._D3D_Device_present__D3DDEVICE_CREATION_PARAMETERS_hFocusWindow_is_NULL_n
mov dword [ecx + 4], 0x49
jmp 0x1005721c
xor eax, eax
mov ecx, dword [esi + 0x24]
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x24], eax
test ecx, ecx
je 0x10057324
mov eax, dword [ecx]
push 1
call dword [eax]
mov edi, dword [esi + 0x24]
lea eax, [ebp - 0x40]
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x40]
lea eax, [ebp - 0x68]
mov dword [ebp - 0x40], vtable.std::_Func_impl_no_alloc_class__lambda_004a35c9fe8a83d193b1cefe55b8d056___bool__struct_HWND_____unsigned_int__unsigned_int__long_int_.0
push eax
add edi, 8
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x44], 0
call fcn.10056ef0
mov ecx, dword [ebp - 0x1c]
mov edx, eax
mov dword [ebp - 0x44], edx
test ecx, ecx
je 0x10057371
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
push eax
call edx
mov edx, dword [ebp - 0x44]
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [edi + 0x24]
test eax, eax
je 0x100573bf
cmp eax, edi
jne 0x100573b3
mov eax, dword [eax]
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [edi + 0x24]
mov eax, dword [eax + 4]
call eax
mov ecx, eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x1c], ecx
test eax, eax
je 0x100573ae
mov eax, dword [eax]
mov ecx, dword [edi + 0x24]
cmp ecx, edi
mov edx, dword [eax + 0x10]
setne al
push eax
call edx
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x44]
jmp 0x100573b8
mov edx, dword [ebp - 0x44]
jmp 0x100573bf
mov ecx, eax
mov dword [ebp - 0x1c], ecx
mov dword [edi + 0x24], 0
test edx, edx
je 0x100573f6
lea eax, [ebp - 0x68]
cmp edx, eax
jne 0x100573f3
mov eax, dword [edx]
mov ecx, edx
push edi
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x44]
mov dword [edi + 0x24], eax
test ecx, ecx
je 0x100573ee
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x68]
cmp ecx, eax
setne al
push eax
call edx
mov ecx, dword [ebp - 0x1c]
jmp 0x100573f6
mov dword [edi + 0x24], edx
test ecx, ecx
je 0x1005740a
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x40]
cmp ecx, eax
setne al
push eax
call edx
push 0x4c
call fcn.1011fc95
mov edi, eax
add esp, 4
mov dword [ebp - 0x90], edi
mov dword [ebp - 4], 1
test edi, edi
je 0x100574f3
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x7c], 0x2e
lea eax, [ebp - 0x78]
mov dword [edi], 0
sub eax, ecx
mov dword [edi + 4], 0
mov dword [ebp - 0x94], eax
sar eax, 2
mov dword [edi + 8], 0
mov dword [ebp - 0x88], eax
test eax, eax
je 0x1005748d
push eax
mov ecx, edi
call fcn.10015080
push dword [ebp - 0x94]
mov esi, dword [edi]
lea eax, [ebp - 0x7c]
push eax
push esi
call fcn.101226b0
mov eax, dword [ebp - 0x88]
add esp, 0xc
lea eax, [esi + eax*4]
mov esi, dword [ebp - 0x80]
mov dword [edi + 4], eax
xorps xmm0, xmm0
movups xmmword [edi + 0xc], xmm0
mov dword [edi + 0x1c], 8
mov dword [edi + 0x20], 0xf
mov eax, dword [str.Menu_Key]
mov ecx, dword [0x1016812c]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ecx
mov byte [edi + 0x14], 0
movups xmmword [edi + 0x24], xmm0
mov dword [edi + 0x34], 8
mov dword [edi + 0x38], 0xf
mov eax, dword [str.menu_key]
mov ecx, dword [0x10168120]
mov dword [edi + 0x24], eax
xor eax, eax
mov dword [edi + 0x28], ecx
mov byte [edi + 0x2c], 0
mov byte [edi + 0x3c], 0
mov word [edi + 0x3d], ax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
jmp 0x100574f5
xor edi, edi
mov eax, dword [esi + 0x4c]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x80], eax
mov dword [esi + 0x4c], edi
test eax, eax
je 0x1005751d
mov ecx, eax
call fcn.10014f50
push 0x4c
push dword [ebp - 0x80]
call fcn.1011fcc5
add esp, 8
call fcn.100021a0
cmp byte [esi + 9], 0
je 0x10057859
mov eax, dword [esi + 0x10]
mov byte [esi + 9], 0
mov dword [ebp - 0x80], eax
call fcn.10119500
mov ecx, eax
mov dword [ebp - 0x78], 0
lea eax, [ebp - 0x80]
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
push eax
push 0x16
push str.Window_Handle:_0x0:x
push 2
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.10046da0
call fcn.10119500
sub esp, 8
mov dword [ebp - 0x78], 0
mov ecx, esp
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
mov edx, eax
push 2
sub esp, 0xc
mov dword [ecx], str.Initializing_ImGui
mov eax, esp
mov dword [ecx + 4], 0x12
mov ecx, edx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.1000bba0
push 2
push 0x14
push 0x10
push 8
push 0x414
push 0x1510
push 0x10168160
call fcn.1007b930
push 0
call fcn.1006d980
push str.Initializing_ImGui_Win32
call fcn.10055f80
push dword [esi + 0x10]
call fcn.10002d40
add esp, 0x28
test al, al
jne 0x10057611
call fcn.10119500
sub esp, 8
mov ecx, esp
push 4
mov dword [ecx], str.Failed_to_initialize_ImGui.
mov dword [ecx + 4], 0x1b
jmp 0x1005721e
call fcn.10119500
sub esp, 8
mov dword [ebp - 0x78], 0
mov ecx, esp
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
mov edx, eax
push 2
sub esp, 0xc
mov dword [ecx], str.Initializing_ImGui_D3D9
mov eax, esp
mov dword [ecx + 4], 0x17
mov ecx, edx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.1000bba0
push dword [ebp - 0x84]
call fcn.10002340
add esp, 4
test al, al
jne 0x10057686
call fcn.10119500
sub esp, 8
mov ecx, esp
push 4
mov dword [ecx], str.Failed_to_initialize_ImGui_DX9.
mov dword [ecx + 4], 0x1f
jmp 0x1005721e
call fcn.1006dae0
push 0
mov ecx, dword [eax + 0x90]
call fcn.100a7440
call fcn.10119500
sub esp, 8
mov dword [ebp - 0x78], 0
mov ecx, esp
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
mov edx, eax
push 2
sub esp, 0xc
mov dword [ecx], str.Initializing_Console_system
mov eax, esp
mov dword [ecx + 4], 0x1b
mov ecx, edx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.1000bba0
mov ecx, dword [0x1020d2d8]
call fcn.10064270
call fcn.10119500
sub esp, 8
mov dword [ebp - 0x78], 0
mov ecx, esp
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
mov edx, eax
push 2
sub esp, 0xc
mov dword [ecx], str.Initializing_Input_system
mov eax, esp
mov dword [ecx + 4], 0x19
mov ecx, edx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.1000bba0
push 0x800
call fcn.1011fc95
mov edi, eax
add esp, 4
mov dword [ebp - 0x90], edi
test edi, edi
je 0x10057774
push 0x800
push 0
push edi
call fcn.10122c30
add esp, 0xc
mov eax, edi
mov ecx, 0x100
nop dword [eax]
mov byte [eax], 0
lea eax, [eax + 8]
mov dword [eax - 4], 0
sub ecx, 1
jne 0x10057760
jmp 0x10057776
xor edi, edi
mov eax, dword [esi + 0x48]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x84], 0
mov dword [esi + 0x48], edi
test eax, eax
je 0x1005779f
push 0x800
push eax
call fcn.1011fcc5
add esp, 8
lea ecx, [ebp - 0x84]
call fcn.100568c0
call fcn.10058bd0
call fcn.10119500
sub esp, 8
mov dword [ebp - 0x78], 0
mov ecx, esp
mov dword [ebp - 0x74], 0
movq xmm0, qword [ebp - 0x78]
mov edx, eax
push 2
sub esp, 0xc
mov dword [ecx], str.Starting_game_data_initialization_thread
mov eax, esp
mov dword [ecx + 4], 0x28
mov ecx, edx
movq qword [eax], xmm0
mov dword [eax + 8], 0
call fcn.1000bba0
push 4
call fcn.1011fc95
add esp, 4
test eax, eax
je 0x10057806
mov dword [eax], esi
jmp 0x10057808
xor eax, eax
mov dword [ebp - 0x90], eax
lea ecx, [ebp - 0x88]
mov dword [ebp - 4], 5
push ecx
push 0
push eax
push 0x10055e20
push 0
push 0
call fcn.101333ca
add esp, 0x18
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x10057880
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 4], 6
test ecx, ecx
je 0x10057879
push ecx
push eax
call fcn.1011f684
add esp, 8
test eax, eax
jne 0x10057879
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1011fcd3
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 1
call fcn.1011eba5
push 6
mov dword [ebp - 0x88], 0
call fcn.1011eba5
int3