Function at 0x402350
Capabilities:
Check mutex on windows
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x274
mov eax, dword [0x420044]
xor eax, esp
mov dword [esp + 0x270], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
push str.HUBIspTool
push 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x4c], 0xff
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x40239c
push 0xfffffffffffffffe
call fcn.00407f9a
push str.HUBIspTool
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4023c8
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xfffffffffffffffe
call fcn.00407f9a
push str.debug_Interface.log
call fcn.00407cca
add esp, 4
push str.debug_UI.log
call fcn.00407cca
add esp, 4
push str.debug.log
call fcn.00407cca
add esp, 4
push str.Version_Tool.txt
call fcn.00407cca
add esp, 4
push str.Version_Hub.txt
call fcn.00407cca
add esp, 4
push str.UpdateFWResult.txt
call fcn.00407cca
add esp, 4
push str.Result.txt
call fcn.00407cca
add esp, 4
push str.ResultFlowLog.log
call fcn.00407cca
add esp, 4
push 0x421f68
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x421f68
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
xor eax, eax
lea ecx, [ecx]
mov cl, byte [eax + 0x421f68]
mov byte [eax + 0x42831c], cl
inc eax
test cl, cl
jne 0x402450
push 6
push 6
push 3
push 2
push str._Tool_Version:__V__0X._0X._0X._0X___n_n_n
call fcn.004032b0
add esp, 0x14
call fcn.004016e0
mov dword [esp + 0x4c], eax
call fcn.004010f0
mov ebx, dword [ebp + 8]
cmp ebx, 1
jne 0x402497
cmp dword [esp + 0x4c], 0
je 0x403227
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx]
push str.HUBIspTool.exe
push eax
call fcn.004072e0
add esp, 8
test eax, eax
je 0x40328c
mov edx, dword [str.Result.txt]
mov eax, dword [0x41c094]
mov cx, word [0x41c098]
mov dword [0x4282dc], edx
mov dl, byte [0x41c09a]
push ebx
push str.argc:__d_n
mov byte [0x428957], 1
mov dword [0x4282e0], eax
mov word [0x4282e4], cx
mov byte [0x4282e6], dl
call fcn.004032b0
mov edi, dword [esp + 0x48]
add esp, 8
xor esi, esi
test ebx, ebx
je 0x402519
mov eax, dword [edi + esi*4]
push eax
push esi
push str.argv__d____s_n
call fcn.004032b0
inc esi
add esp, 0xc
cmp esi, ebx
jne 0x402502
push str._______________n
call fcn.004032b0
mov edi, dword [edi + 4]
add esp, 4
mov ecx, 0x41c3b0
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402550
test dl, dl
je 0x40254c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402550
add eax, 2
add ecx, 2
test dl, dl
jne 0x402530
xor eax, eax
jmp 0x402555
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402570
push str.___1._update_FW_n
call fcn.004032b0
mov dword [esp + 0x38], 1
jmp 0x402cba
mov ecx, str._FWB
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402597
test dl, dl
je 0x402593
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402597
add eax, 2
add ecx, 2
test dl, dl
jne 0x402577
xor eax, eax
jmp 0x40259c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4025f1
push str.___2._check_Bin_File_FW_version_n
call fcn.004032b0
mov ecx, dword [str.Version_BinFile.txt]
mov edx, dword [0x41c3f8]
mov eax, dword [0x41c3fc]
mov dword [0x4282dc], ecx
mov ecx, dword [0x41c400]
mov dword [0x4282e0], edx
mov edx, dword [0x41c404]
mov dword [esp + 0x38], 2
mov dword [0x4282e4], eax
mov dword [0x4282e8], ecx
mov dword [0x4282ec], edx
jmp 0x402cba
mov ecx, str._FWC
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402618
test dl, dl
je 0x402614
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402618
add eax, 2
add ecx, 2
test dl, dl
jne 0x4025f8
xor eax, eax
jmp 0x40261d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40267e
push str.___3._check_Hub_SPI_FW_version_n
call fcn.004032b0
mov eax, dword [str.Version_HubSPI.txt]
mov ecx, dword [0x41c434]
mov edx, dword [0x41c438]
mov dword [0x4282dc], eax
mov eax, dword [0x41c43c]
mov dword [0x4282e0], ecx
mov cx, word [0x41c440]
mov dword [0x4282e4], edx
mov dl, byte [0x41c442]
mov dword [esp + 0x38], 3
mov dword [0x4282e8], eax
mov word [0x4282ec], cx
mov byte [0x4282ee], dl
jmp 0x402cba
mov ecx, str._RLD
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4026a5
test dl, dl
je 0x4026a1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4026a5
add eax, 2
add ecx, 2
test dl, dl
jne 0x402685
xor eax, eax
jmp 0x4026aa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4026c5
push str.___5._Enumerate_Hub_to_reload_driver_and_disable_selective_suspend_n
call fcn.004032b0
mov dword [esp + 0x38], 5
jmp 0x402cba
cmp ebx, 3
jne 0x4027f4
mov ecx, 0x41c494
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4026f5
test dl, dl
je 0x4026f1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4026f5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4026d5
xor eax, eax
jmp 0x4026fa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4027f4
push str.___7._update_SN_to_SPI_n
call fcn.004032b0
mov ecx, 8
mov esi, str.6970202d1e444cde8f7378ec5964eca7
mov edi, 0x421f28
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x44]
mov ecx, dword [edi + 8]
mov eax, ecx
add esp, 4
mov dword [esp + 0x34], 7
mov byte [0x428957], 0
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402740
sub eax, esi
push eax
push ecx
push str.____get_SN___argv_2_:__s__Length:__d_n
call fcn.004032b0
mov eax, dword [edi + 8]
add esp, 0xc
inc eax
mov edx, 0x421ee8
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x402761
push 0
xor ebx, ebx
call fcn.00405da0
mov eax, 0x421f28
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402780
sub eax, edx
cmp eax, 0x20
jne 0x4027a8
mov eax, 0x421ee8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x402796
sub eax, edx
cmp eax, 0x18
jbe 0x402cbd
mov eax, 0x421f28
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4027b0
sub eax, edx
cmp eax, 0x20
je 0x4027cb
push str.____ID_Length_does_not_equal_32_digits_n
call fcn.004032b0
add esp, 4
mov eax, 0x421ee8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4027d3
sub eax, edx
cmp eax, 0x18
jbe 0x402cbd
push str.____SN_Length_does_much_than_23_digits_n
call fcn.004032b0
jmp 0x402cba
mov ecx, str._DSS
mov eax, edi
jmp 0x402800
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402820
test dl, dl
je 0x40281c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402820
add eax, 2
add ecx, 2
test dl, dl
jne 0x402800
xor eax, eax
jmp 0x402825
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402840
push str.___9._Disable_selective_suspend_n
call fcn.004032b0
mov dword [esp + 0x38], 9
jmp 0x402cba
mov ecx, str._ESS
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402867
test dl, dl
je 0x402863
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402867
add eax, 2
add ecx, 2
test dl, dl
jne 0x402847
xor eax, eax
jmp 0x40286c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402887
push str.___10._Enable_selective_suspend_n
call fcn.004032b0
mov dword [esp + 0x38], 0xa
jmp 0x402cba
mov ecx, str._SFG
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4028b0
test dl, dl
je 0x4028ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4028b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x402890
xor eax, eax
jmp 0x4028b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4028d7
push str.___12._Reg_Write_to_Switch_to_5G_n
call fcn.004032b0
mov dword [esp + 0x38], 0xc
mov byte [0x428957], 0
jmp 0x402cba
mov ecx, str._STG
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402900
test dl, dl
je 0x4028fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402900
add eax, 2
add ecx, 2
test dl, dl
jne 0x4028e0
xor eax, eax
jmp 0x402905
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402927
push str.___13._Reg_Write_to_Switch_to_10G_n
call fcn.004032b0
mov dword [esp + 0x38], 0xd
mov byte [0x428957], 0
jmp 0x402cba
mov ecx, 0x41c5fc
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402950
test dl, dl
je 0x40294c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402950
add eax, 2
add ecx, 2
test dl, dl
jne 0x402930
xor eax, eax
jmp 0x402955
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402970
push str.___14._update_FW_and_Container_ID_and_SN_n
call fcn.004032b0
mov dword [esp + 0x38], 0xe
jmp 0x402cba
mov ecx, str._OUD
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402997
test dl, dl
je 0x402993
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402997
add eax, 2
add ecx, 2
test dl, dl
jne 0x402977
xor eax, eax
jmp 0x40299c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4029b7
push str.___15._one_click_to_install_new_driver__update_FW__uninstall_new_driver_n
call fcn.004032b0
mov dword [esp + 0x38], 0xf
jmp 0x402cba
mov ecx, str._DUD
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4029e0
test dl, dl
je 0x4029dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4029e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4029c0
xor eax, eax
jmp 0x4029e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402a00
push str.___16._Do_only_Update_FW_n
call fcn.004032b0
mov dword [esp + 0x38], 0x10
jmp 0x402cba
mov ecx, str._AFD
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402a27
test dl, dl
je 0x402a23
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402a27
add eax, 2
add ecx, 2
test dl, dl
jne 0x402a07
xor eax, eax
jmp 0x402a2c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402a47
push str.___17._Add_New_Filter_Driver_n
call fcn.004032b0
mov dword [esp + 0x38], 0x11
jmp 0x402cba
mov ecx, str._RFD
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402a70
test dl, dl
je 0x402a6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402a70
add eax, 2
add ecx, 2
test dl, dl
jne 0x402a50
xor eax, eax
jmp 0x402a75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402a90
push str.___18._Remove_New_Filter_Driver_n
call fcn.004032b0
mov dword [esp + 0x38], 0x12
jmp 0x402cba
mov ecx, str._RST
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402ab7
test dl, dl
je 0x402ab3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402ab7
add eax, 2
add ecx, 2
test dl, dl
jne 0x402a97
xor eax, eax
jmp 0x402abc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402ad7
push str.___19._Hub_Chip_Reset_n
call fcn.004032b0
mov dword [esp + 0x38], 0x13
jmp 0x402cba
mov ecx, str._WPT
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402b00
test dl, dl
je 0x402afc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402b00
add eax, 2
add ecx, 2
test dl, dl
jne 0x402ae0
xor eax, eax
jmp 0x402b05
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402b20
push str.___20._Hub_Write_Protect_n
call fcn.004032b0
mov dword [esp + 0x38], 0x14
jmp 0x402cba
mov ecx, str._DFD
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402b47
test dl, dl
je 0x402b43
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402b47
add eax, 2
add ecx, 2
test dl, dl
jne 0x402b27
xor eax, eax
jmp 0x402b4c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402b67
push str.___21._Add_New_Filter_Driver_and_Disable_selective_suspend_n
call fcn.004032b0
mov dword [esp + 0x38], 0x15
jmp 0x402cba
mov ecx, str._EFD
mov eax, edi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402b90
test dl, dl
je 0x402b8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402b90
add eax, 2
add ecx, 2
test dl, dl
jne 0x402b70
xor eax, eax
jmp 0x402b95
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402bb0
push str.___22._Remove_New_Filter_Driver_and_Enable_selective_suspend_n
call fcn.004032b0
mov dword [esp + 0x38], 0x16
jmp 0x402cba
mov ecx, str._RUD
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402bd7
test dl, dl
je 0x402bd3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402bd7
add eax, 2
add ecx, 2
test dl, dl
jne 0x402bb7
xor eax, eax
jmp 0x402bdc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402c6b
mov eax, dword [0x421068]
push eax
push str._n_n_nCount:__d_n
call fcn.004032b0
mov ecx, dword [0x428948]
push ecx
push str.___23._Repeat_one_click_to_install_new_driver__update_FW__uninstall_new_driver___TotalCount:__d_n
call fcn.004032b0
lea edx, [esp + 0x68]
push edx
mov dword [esp + 0x48], 0x17
call fcn.00407645
lea eax, [esp + 0x6c]
add esp, 0x14
push eax
call fcn.0040761e
mov ecx, dword [0x421068]
mov edx, dword [eax]
add esp, 4
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 0xc]
push edx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
inc edx
push edx
add eax, 0x76c
push eax
push str._04d__02d__02d__02d:_02d:_02d_Count__d_
mov byte [0x428959], 1
call fcn.00403570
add esp, 0x20
call fcn.004080ca
mov dword [0x42895c], eax
jmp 0x402cbd
cmp ebx, 1
jne 0x402c9e
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x402c9e
push esi
push str.____d._Setting.ini_function_n
call fcn.004032b0
push esi
push str.Result_function__d.txt
push 0x4282dc
mov dword [esp + 0x48], esi
call fcn.00407696
add esp, 0x14
mov edi, esi
jmp 0x402cc1
push str.No_Command_n
call fcn.004032b0
add esp, 4
push str.Command_Error_n
mov ecx, 0x422070
call fcn.00403460
add esp, 4
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
push 0x2f
push eax
mov byte [esp + 0x43], 0
call fcn.00407220
lea edx, [edi - 0xf]
add esp, 8
mov dword [esp + 0x48], eax
cmp edx, 8
ja 0x402f7d
cmp edi, 0xf
je 0x402d00
cmp edi, 0x11
je 0x402d00
cmp edi, 0x15
je 0x402d00
cmp edi, 0x17
jne 0x402e04
push str.debug_UI_DUD.log
call fcn.00407cca
add esp, 4
push str.debug_UI_OUD.log
call fcn.00407cca
add esp, 4
push str.debug_UI_AFD.log
call fcn.00407cca
add esp, 4
push str.debug_UI_RFD.log
call fcn.00407cca
add esp, 4
push str.debug_UI_RST.log
call fcn.00407cca
add esp, 4
push str.debug_UI_WPT.log
call fcn.00407cca
add esp, 4
push str.debug_UI_DFD.log
call fcn.00407cca
add esp, 4
push str.debug_UI_EFD.log
call fcn.00407cca
add esp, 4
push str.debug_UI_RUD.log
call fcn.00407cca
add esp, 4
push str.debug_UI_.log
call fcn.00407cca
add esp, 4
push str.debug_DUD.log
call fcn.00407cca
add esp, 4
push str.debug_OUD.log
call fcn.00407cca
add esp, 4
push str.debug_AFD.log
call fcn.00407cca
add esp, 4
push str.debug_RFD.log
call fcn.00407cca
add esp, 4
push str.debug_RST.log
call fcn.00407cca
add esp, 4
push str.debug_WPT.log
call fcn.00407cca
add esp, 4
push str.debug_DFD.log
call fcn.00407cca
add esp, 4
push str.debug_EFD.log
call fcn.00407cca
add esp, 4
push str.debug_RUD.log
call fcn.00407cca
add esp, 4
push str.debug_.log
call fcn.00407cca
add esp, 4
cmp edi, 2
jne 0x402e28
push str.debug_UI_FWB.log
call fcn.00407cca
add esp, 4
push str.debug_FWB.log
call fcn.00407cca
add esp, 4
jmp 0x402f10
cmp edi, 3
jne 0x402e4c
push str.debug_UI_FWC.log
call fcn.00407cca
add esp, 4
push str.debug_FWC.log
call fcn.00407cca
add esp, 4
jmp 0x402f10
cmp edi, 0x17
jne 0x402f10
cmp dword [0x421068], 1
jne 0x402ee2
mov ebx, dword [esp + 0x48]
xor esi, esi
inc ebx
lea esp, [esp]
push ebx
push esi
lea eax, [esp + 0x70]
push str._d__s_debug
push eax
call fcn.00407696
lea ecx, [esp + 0x78]
push ecx
call fcn.00407cca
add esp, 0x14
push ebx
push esi
lea edx, [esp + 0x70]
push str._d__s_debug_UI.log
push edx
call fcn.00407696
lea eax, [esp + 0x78]
push eax
call fcn.00407cca
add esp, 0x14
push esi
lea ecx, [esp + 0x6c]
push str.__d__Result.txt
push ecx
call fcn.00407696
lea edx, [esp + 0x74]
add esp, 0xc
push edx
call fcn.00407cca
add esp, 4
push str.EndOfRepeat
call fcn.00407cca
inc esi
add esp, 4
cmp esi, 0x100
jl 0x402e70
mov eax, dword [esp + 0x48]
mov ecx, dword [0x421068]
inc eax
push eax
push ecx
lea edx, [esp + 0x70]
push str._d__s
push edx
call fcn.00407696
lea eax, [esp + 0x78]
push eax
push str._nUI_File_Name:__s_n
call fcn.004032b0
add esp, 0x18
mov byte [esp + 0x3b], 1
cmp edi, 0xf
je 0x402f2e
cmp edi, 0x10
je 0x402f2e
cmp edi, 0x11
je 0x402f2e
cmp edi, 0x12
je 0x402f2e
cmp edi, 0x13
jne 0x402f7d
lea ecx, [esp + 0x60]
push ecx
call fcn.00407645
lea edx, [esp + 0x64]
add esp, 4
push edx
call fcn.0040761e
mov ecx, dword [eax]
mov edx, dword [eax + 4]
add esp, 4
push ecx
mov ecx, dword [eax + 8]
push edx
mov edx, dword [eax + 0xc]
push ecx
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [eax + 0x14]
inc ecx
push ecx
add edx, 0x76c
push edx
push str.Timer:__04d__02d__02d__02d:_02d:_02d_n
call fcn.004032b0
add esp, 0x1c
call fcn.004080ca
mov dword [0x42895c], eax
test edi, edi
je 0x402f90
mov eax, edi
call fcn.00401d70
mov esi, eax
mov dword [esp + 0x44], esi
jmp 0x402fa6
mov esi, 0xff
push str.no_nFunctionType_n
mov dword [esp + 0x48], esi
call fcn.004032b0
add esp, 4
push esi
push str._nFinal_Status:_0x_02x_n_n_n
call fcn.004032b0
add esp, 8
cmp edi, 0xf
je 0x402fd1
cmp edi, 0x10
je 0x402fd1
cmp edi, 0x11
je 0x402fd1
cmp edi, 0x12
je 0x402fd1
cmp edi, 0x13
jne 0x40306e
lea eax, [esp + 0x50]
push eax
call fcn.00407645
lea ecx, [esp + 0x54]
add esp, 4
push ecx
call fcn.0040761e
mov edx, dword [eax]
mov ecx, dword [eax + 4]
add esp, 4
push edx
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 0xc]
push edx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
inc edx
push edx
add eax, 0x76c
push eax
push str.Timer:__04d__02d__02d__02d:_02d:_02d_n
call fcn.004032b0
add esp, 0x1c
call fcn.004080ca
mov dword [0x428960], eax
sub eax, dword [0x42895c]
sub esp, 8
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
fdiv qword [0x41df70]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp qword [esp]
push str._.2f_sec
call fcn.00403570
fld dword [esp + 0x48]
add esp, 4
fstp qword [esp]
push 1
push str.__d_:__.2f_sec_n
call fcn.004032b0
add esp, 0x10
call fcn.004080ca
mov dword [0x42895c], eax
cmp edi, 0x10
je 0x403086
cmp edi, 0x11
je 0x403086
cmp edi, 0x12
je 0x403086
cmp edi, 0x13
jne 0x4031cd
push str._nSet_DebugUIFile_Save_old_file_n
mov esi, 1
call fcn.004032b0
add esp, 4
push esi
lea ecx, [esp + 0x174]
push str._d_AFD_debug.log
push ecx
call fcn.00407696
add esp, 0xc
lea edx, [esp + 0x170]
push 0x41bd14
push edx
call fcn.004077d7
add esp, 8
test eax, eax
je 0x403119
push eax
call fcn.0040792a
add esp, 4
push esi
lea eax, [esp + 0x174]
push str._d_AFD_debug.log
push eax
call fcn.00407696
add esp, 0xc
lea ecx, [esp + 0x170]
push 0x41bd14
push ecx
call fcn.004077d7
add esp, 8
test eax, eax
je 0x403113
push eax
call fcn.0040792a
inc esi
add esp, 4
cmp esi, 0x100
jl 0x4030d0
jmp 0x403119
cmp edi, 0x11
je 0x403119
dec esi
mov eax, dword [esp + 0x48]
inc eax
push eax
push esi
lea edx, [esp + 0x70]
push str._d__s
push edx
mov dword [esp + 0x4c], eax
call fcn.00407696
add esp, 0x10
mov bl, 1
jmp 0x403140
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x174]
push str._s_debug.log
push ecx
call fcn.00407696
add esp, 0xc
lea edx, [esp + 0x170]
push 0x41bd14
push edx
call fcn.004077d7
mov edi, eax
add esp, 8
test edi, edi
je 0x4031b3
lea eax, [esp + 0x170]
push eax
push str.get_same_UI_File:__s_n
call fcn.004032b0
push edi
call fcn.0040792a
mov ecx, dword [esp + 0x48]
add esp, 0xc
push ecx
movzx edx, bl
push edx
push esi
lea eax, [esp + 0x74]
push str._d__i__s
push eax
call fcn.00407696
inc bl
add esp, 0x14
cmp bl, 0xa
jb 0x403140
lea ecx, [esp + 0x68]
push ecx
push str.UI_File_Name:__s_n
call fcn.004032b0
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x4c]
add esp, 8
cmp byte [esp + 0x3b], 0
je 0x4031dd
lea ebx, [esp + 0x68]
call fcn.00401920
cmp edi, 0x17
jne 0x40328c
mov eax, str.PASS
test esi, esi
je 0x4031f4
mov eax, str.FAIL
push eax
push str.Result__s_n
call fcn.00403570
add esp, 8
test esi, esi
je 0x40320c
inc dword [0x42894c]
mov ecx, dword [0x421068]
mov eax, dword [0x428948]
cmp ecx, eax
jge 0x403257
inc ecx
mov dword [0x421068], ecx
jmp 0x402484
call fcn.00402210
push eax
push str._nFinal_Status:_0x_02x_n_n_n
mov dword [esp + 0x4c], eax
call fcn.004032b0
mov eax, dword [esp + 0x4c]
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x270]
xor ecx, esp
call fcn.004071fc
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x40328c
cmp ecx, eax
jne 0x40328c
mov edx, dword [0x42894c]
push edx
push eax
push str._nTotal_Repeat_Count:__d__Fail_Count:__d_n
call fcn.00403570
add esp, 0xc
push 0x41c04c
push str.EndOfRepeat
call fcn.004077d7
push eax
call fcn.0040792a
add esp, 0xc
mov ecx, dword [esp + 0x27c]
mov eax, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004071fc
mov esp, ebp
pop ebp
ret