Function at 0x409e50
Capabilities:
Get common file path
Set current directory

Disassembly:
sub esp, 0x818
mov eax, dword [0x619e70]
xor eax, esp
mov dword [esp + 0x814], eax
push ebp
lea eax, [esp + 0x418]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea ecx, [esi + 0xb8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push str.rt_ccsUNICODE
lea edx, [esp + 0xc]
push str.cpuz.ini
push edx
call fcn.0057e238
xor ebp, ebp
add esp, 0xc
cmp dword [esp + 8], ebp
je 0x40acf0
push edi
lea esp, [esp]
mov eax, dword [esp + 0xc]
push eax
lea ecx, [esp + 0x20]
push 0xff
push ecx
call fcn.0057e802
lea edx, [esp + 0x28]
push str._CPU_Z_
push edx
mov edi, eax
call fcn.0057e562
add esp, 0x14
test eax, eax
jne 0x409ee5
cmp edi, ebp
jne 0x409eb0
jmp 0x40ace2
mov ecx, dword [esp + 0xc]
push ecx
lea edx, [esp + 0x20]
push 0xff
push edx
call fcn.0057e802
add esp, 0xc
test eax, eax
je 0x40ace2
mov edi, 1
push ebx
lea ebx, [ebx]
lea eax, [esp + 0x20]
push str.VERSION
push eax
call fcn.0057e562
add esp, 8
test eax, eax
je 0x409f93
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x30]
push str.VERSION_d._d._d._d
push edx
call fcn.0057e7e0
add esp, 0x18
cmp eax, 4
jne 0x40acc2
mov eax, dword [esi + 0x8d0]
mov ecx, dword [eax]
cmp ecx, dword [esp + 0xc]
jne 0x40ace1
mov edx, dword [eax + 4]
cmp edx, dword [esp + 0x18]
jne 0x40ace1
mov ecx, dword [eax + 8]
cmp ecx, dword [esp + 0x14]
jne 0x40ace1
mov edx, dword [eax + 0xc]
cmp edx, dword [esp + 0x1c]
jne 0x40ace1
jmp 0x40acc2
lea eax, [esp + 0x20]
push str.TextFontSize
push eax
call fcn.0057e562
add esp, 8
test eax, eax
je 0x409fd7
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x24]
push str.TextFontSize_d
push edx
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40acc2
mov eax, dword [esp + 0xc]
mov dword [esi + 0xd40], eax
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.LabelFontSize
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a01b
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.LabelFontSize_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40acc2
mov ecx, dword [esp + 0xc]
mov dword [esi + 0xd3c], ecx
jmp 0x40acc2
lea edx, [esp + 0x20]
push str.TextFontColor
push edx
call fcn.0057e562
add esp, 8
lea ecx, [esp + 0x20]
test eax, eax
je 0x40a07a
lea eax, [esp + 0xc]
push eax
push str.TextFontColor_X
push ecx
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40acc2
mov eax, dword [esp + 0xc]
mov edx, eax
sar edx, 8
movzx ecx, dl
movzx edx, al
shl edx, 8
sar eax, 0x10
or ecx, edx
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [esi + 0xd44], ecx
jmp 0x40acc2
push str.LabelFontColor
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a0d5
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.LabelFontColor_X
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40acc2
mov eax, dword [esp + 0xc]
mov ecx, eax
sar ecx, 8
movzx edx, cl
movzx ecx, al
shl ecx, 8
sar eax, 0x10
or edx, ecx
movzx eax, al
shl edx, 8
or edx, eax
mov dword [esi + 0xd48], edx
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.ACPI
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a17a
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.ACPI_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a11e
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd4c], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a152
mov dword [esi + 0xd4c], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd4c], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push 0x5d1ab4
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a21f
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.DMI_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a1c3
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd50], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a1f7
mov dword [esi + 0xd50], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd50], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.Sensor
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a2c4
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.Sensor_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a268
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd5c], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a29c
mov dword [esi + 0xd5c], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd5c], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.SMBus
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a369
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.SMBus_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a30d
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd58], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a341
mov dword [esi + 0xd58], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd58], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.Display
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a40e
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.Display_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a3b2
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd60], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a3e6
mov dword [esi + 0xd60], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd60], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.UseDisplayAPI
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a4b3
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.UseDisplayAPI_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a457
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd78], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a48b
mov dword [esi + 0xd78], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd78], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.RemoveService
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a558
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.RemoveService_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a4fc
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd8c], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a530
mov dword [esi + 0xd8c], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd8c], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.MaxPCIBus
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a5c0
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.MaxPCIBus_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40acc2
mov eax, dword [esp + 0xc]
cmp eax, edi
mov dword [esi + 0xd94], eax
jge 0x40a5a1
mov dword [esi + 0xd94], edi
cmp dword [esi + 0xd94], 0x100
jle 0x40acc2
mov dword [esi + 0xd94], 0x100
jmp 0x40acc2
lea ecx, [esp + 0x20]
push 0x5d1bec
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a665
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.LPCIO_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a609
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd70], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a63d
mov dword [esi + 0xd70], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd70], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.SMART
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a6de
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.SMART_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a6aa
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd6c], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a723
mov dword [esi + 0xd6c], edi
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.AMDI2C
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a74b
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.AMDI2C_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a6aa
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd74], ecx
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd6c], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push 0x5d1c58
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
lea eax, [esp + 0x20]
je 0x40a80c
lea edx, [esp + 0xc]
push edx
push str.PCI_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a7b0
mov eax, dword [esp + 0xc]
cmp eax, ebp
mov dword [esi + 0xd98], eax
jge 0x40a794
mov dword [esi + 0xd98], ebp
cmp dword [esi + 0xd98], 2
jle 0x40acc2
mov dword [esi + 0xd98], 2
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov ecx, ebx
push 0x5d1aa4
push ecx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a7e4
mov dword [esi + 0xd98], edi
jmp 0x40acc2
lea edx, [esp + 0x220]
push 0x5d1aac
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd98], ebp
jmp 0x40acc2
push str.BusClock
push eax
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a851
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x24]
push str.BusClock_d
push edx
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40acc2
xor eax, eax
cmp dword [esp + 0xc], ebp
setne al
mov dword [esi + 0xd7c], eax
jmp 0x40acc2
lea ecx, [esp + 0x20]
push 0x5d1c9c
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a8f6
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.Chipset_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a89a
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd64], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a8ce
mov dword [esi + 0xd64], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd64], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.SPD
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40a99b
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.SPD_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a93f
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd68], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40a973
mov dword [esi + 0xd68], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd68], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.XOC
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40aa40
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.XOC_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40a9e4
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd84], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40aa18
mov dword [esi + 0xd84], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd84], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.XOC2
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40aae5
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.XOC2_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40aa89
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd88], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40aabd
mov dword [esi + 0xd88], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd88], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.CheckUpdates
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40ab8a
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.CheckUpdates_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40ab2e
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [esi + 0xd90], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov edx, ebx
push 0x5d1aa4
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40ab62
mov dword [esi + 0xd90], edi
jmp 0x40acc2
lea eax, [esp + 0x220]
push 0x5d1aac
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov dword [esi + 0xd90], ebp
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.ValidUsername
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40abd3
push 0x28
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov eax, dword [esi + 0x8cc]
mov edx, ebx
push edx
add eax, 0x604
push 0x200
push eax
call fcn.0043a300
add esp, 0xc
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.ValidEmail
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40ac1a
push 0x28
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov eax, dword [esi + 0x8cc]
mov edx, ebx
push edx
add eax, 4
push 0x200
push eax
call fcn.0043a300
add esp, 0xc
jmp 0x40acc2
lea ecx, [esp + 0x20]
push str.ValidPublish
push ecx
call fcn.0057e562
add esp, 8
test eax, eax
je 0x40acc2
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x24]
push str.ValidPublish_d
push eax
call fcn.0057e7e0
add esp, 0xc
cmp eax, edi
jne 0x40ac66
mov edx, dword [esi + 0x8cc]
xor ecx, ecx
cmp dword [esp + 0xc], ebp
setne cl
mov dword [edx + 0xa58], ecx
jmp 0x40acc2
push 0xff
lea ebx, [esp + 0x224]
lea eax, [esp + 0x24]
call fcn.00409dd0
mov eax, ebx
push 0x5d1aa4
push eax
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40ac9d
mov ecx, dword [esi + 0x8cc]
mov dword [ecx + 0xa58], edi
jmp 0x40acc2
lea edx, [esp + 0x220]
push 0x5d1aac
push edx
call fcn.0057e8c3
add esp, 8
test eax, eax
jne 0x40acc2
mov eax, dword [esi + 0x8cc]
mov dword [eax + 0xa58], ebp
mov ecx, dword [esp + 0x10]
push ecx
lea edx, [esp + 0x24]
push 0xff
push edx
call fcn.0057e802
add esp, 0xc
test eax, eax
jne 0x409f10
pop ebx
mov eax, dword [esp + 0xc]
push eax
call fcn.0057e302
add esp, 4
pop edi
mov ecx, dword [esp + 0x818]
pop ebp
xor ecx, esp
call fcn.0057db4c
add esp, 0x818
ret