Function at 0x410430
Capabilities:
Accept command line arguments
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x48ba83
mov eax, dword fs:[0]
push eax
sub esp, 0x938
mov eax, dword [0x4b37a0]
xor eax, esp
mov dword [esp + 0x930], eax
push ebx
push esi
push edi
mov eax, dword [0x4b37a0]
xor eax, esp
push eax
lea eax, [esp + 0x948]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [ebp + 0x14]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0041ec28
lea eax, [esi + 0x580]
push eax
push 0x4a67c8
push 0x17
push 0
push 0x499510
call dword [sym.imp.ole32.dll_CoCreateInstance]
push 0x84
lea eax, [esp + 0xf8]
push 0
push eax
call fcn.0045a730
add esp, 0xc
lea ecx, [esp + 0xf4]
push 0xffffffffffffffff
push 0x4a5678
call fcn.00417103
lea eax, [esp + 0xd8]
mov dword [esp + 0x950], 0
push eax
mov dword [esp + 0xdc], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ecx, dword [esp + 0xd8]
xor ebx, ebx
mov dword [esp + 0x14], eax
test ecx, ecx
jle 0x4105ff
lea esp, [esp]
mov edi, dword [eax + ebx*4]
cmp dword [edi], 0x64002d
jne 0x41052d
cmp dword [edi + 4], 0x66
jne 0x41052d
mov byte [esi + 0x584], 1
jmp 0x4105f2
cmp dword [edi], 0x63002d
jne 0x410547
cmp dword [edi + 4], 0x72
jne 0x410547
mov byte [esi + 0x585], 1
jmp 0x4105f2
cmp dword [edi], 0x61002d
jne 0x410564
movzx eax, word [edi + 4]
test ax, ax
jne 0x410564
mov byte [esi + 0x586], 1
jmp 0x4105f2
cmp word [edi], 0x2d
jne 0x4105f2
push 0x84
lea eax, [esp + 0x180]
push 0
push eax
call fcn.0045a730
add esp, 0xc
lea ecx, [esp + 0x17c]
push 0xffffffffffffffff
push edi
call fcn.00417103
push 0xffffffffffffffff
push 2
lea eax, [esp + 0x54]
mov byte [esp + 0x958], 1
push eax
lea ecx, [esp + 0x188]
call fcn.004178f0
push eax
lea ecx, [esp + 0xf8]
mov byte [esp + 0x954], 2
call fcn.00417231
lea ecx, [esp + 0x4c]
mov byte [esp + 0x950], 1
call fcn.004171c6
lea ecx, [esp + 0x17c]
mov byte [esp + 0x950], 0
call fcn.004171c6
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0x14]
inc ebx
cmp ebx, ecx
jl 0x410510
cmp byte [esi + 0x586], 0
je 0x410620
lea ecx, [esp + 0xf4]
call fcn.004172bc
push eax
lea ecx, [esi + 0x4e4]
call fcn.004128c0
call fcn.00414920
push 0x67
mov ecx, esi
call fcn.00416dd2
push 0x4a6020
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push str.deviceZone
lea ecx, [esi + 0x2c]
call fcn.00419291
push str.btnAutoDownload
lea ecx, [esi + 0x2c]
mov dword [esi + 0x588], eax
call fcn.00419291
push str.btnSystemResetWhenFinisg
lea ecx, [esi + 0x2c]
mov dword [esi + 0x58c], eax
call fcn.00419291
push str.edFile
lea ecx, [esi + 0x2c]
mov dword [esi + 0x590], eax
call fcn.00419291
push str.opTestZone
lea ecx, [esi + 0x2c]
mov dword [esi + 0x594], eax
call fcn.00419291
push str.vlTestZone
lea ecx, [esi + 0x2c]
mov dword [esi + 0x5ac], eax
call fcn.00419291
push str.edCS
lea ecx, [esi + 0x2c]
mov dword [esi + 0x5b0], eax
call fcn.00419291
push str.edCLK
lea ecx, [esi + 0x2c]
mov dword [esi + 0x59c], eax
call fcn.00419291
push str.edSI
lea ecx, [esi + 0x2c]
mov dword [esi + 0x5a0], eax
call fcn.00419291
push str.edSO
lea ecx, [esi + 0x2c]
mov dword [esi + 0x5a4], eax
call fcn.00419291
push str.richOpTips
lea ecx, [esi + 0x2c]
mov dword [esi + 0x5a8], eax
call fcn.00419291
mov dword [esi + 0x598], eax
lea eax, [esp + 0x324]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x324]
push 0x5c
push eax
call fcn.0045910f
xor ecx, ecx
add esp, 8
mov word [eax], cx
cmp word [esp + 0x324], cx
je 0x41075f
lea ecx, [esp + 0x324]
lea edx, [ecx + 2]
lea ecx, [ecx]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x410750
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0x328]
lea edi, [esi + 0x568]
push eax
mov ecx, edi
call fcn.0040f680
push str.confile.inf
lea eax, [esp + 0x328]
push 0x104
push eax
call fcn.004593a3
add esp, 0xc
lea eax, [esp + 0x734]
push 0x104
push 0
push eax
call fcn.0045a730
mov eax, dword [esi + 0x578]
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x4107b4
mov edi, dword [edi]
add eax, eax
push eax
lea eax, [esp + 0x738]
push edi
push eax
call fcn.0045a7c0
add esp, 0xc
lea eax, [esp + 0x734]
push 0x4a54d8
push 0x104
push eax
call fcn.004593a3
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea eax, [esp + 0x740]
add esp, 0xc
push eax
push 0
push str.pc_update_support
push str.MODE
call edi
push dword [esi + 0x5c8]
mov dword [esi + 0x564], eax
lea eax, [esp + 0x530]
push 0x4a67c0
push eax
call fcn.0040d7d0
add esp, 0xc
lea eax, [esp + 0x324]
push eax
push 0
push str.exFlash
push str.setting
call edi
neg eax
lea ecx, [esp + 0x204]
sbb eax, eax
inc eax
mov dword [esi + 0x5c8], eax
call fcn.00417127
lea ecx, [esp + 0x288]
mov byte [esp + 0x950], 3
call fcn.00417127
lea eax, [esp + 0x204]
mov byte [esp + 0x950], 4
push eax
mov ecx, esi
call fcn.004123b0
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esp + 0x324]
push eax
push 0x104
lea eax, [esp + 0x534]
push eax
push 0x4a6110
push 0x4a6118
push str.setting
call edi
mov ecx, dword [esi + 0x59c]
lea edx, [esp + 0x52c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x48]
lea eax, [esp + 0x324]
push eax
push 0x104
lea eax, [esp + 0x534]
push eax
push 0x4a6120
push 0x4a6128
push str.setting
call edi
mov ecx, dword [esi + 0x5a0]
lea edx, [esp + 0x52c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x48]
lea eax, [esp + 0x324]
push eax
push 0x104
lea eax, [esp + 0x534]
push eax
push 0x4a6130
push 0x4a6138
push str.setting
call edi
mov ecx, dword [esi + 0x5a4]
lea edx, [esp + 0x52c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x48]
lea eax, [esp + 0x324]
push eax
push 0x104
lea eax, [esp + 0x534]
push eax
push 0x4a6140
push 0x4a6148
push str.setting
call edi
mov ecx, dword [esi + 0x5a8]
lea edx, [esp + 0x52c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov edi, dword [sym.imp.USER32.dll_RegisterWindowMessageW]
push str.update_progress_pos
call edi
push str.SetProgressForeImaege
mov dword [esi + 0x5cc], eax
call edi
push str.enableControls
mov dword [esi + 0x5d0], eax
call edi
push str.updateTipsText
mov dword [esi + 0x5d4], eax
call edi
cmp byte [esi + 0x586], 0
mov dword [esi + 0x5d8], eax
je 0x4109c4
mov eax, dword [esi + 0x594]
lea ecx, [esp + 0xf4]
mov edi, dword [eax]
call fcn.004172bc
mov ecx, dword [esi + 0x594]
push eax
call dword [edi + 0x48]
jmp 0x410a06
lea ecx, [esp + 0x34]
call fcn.00414ae0
mov edx, eax
mov byte [esp + 0x950], 5
cmp dword [edx + 0x14], 8
jb 0x4109df
mov edx, dword [edx]
mov ecx, dword [esi + 0x594]
push edx
mov eax, dword [ecx]
call dword [eax + 0x48]
mov byte [esp + 0x950], 4
cmp dword [esp + 0x48], 8
jb 0x410a06
push dword [esp + 0x34]
call fcn.00455fa6
add esp, 4
mov eax, dword [0x4ba898]
mov dword [esi + 0x5b8], eax
test eax, eax
je 0x410a33
mov edi, str.fileimgs_100a_013.png_source16_16_32_32_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x18], str.fileimgs_100a_013.png_source16_32_32_48_dest0_7_16_23_corner2_2_2_2
mov eax, str.fileimgs_100a_013.png_source16_0_32_16_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x14], str.fileimgs_100a_013.png_source16_48_32_64_dest0_7_16_23_corner2_2_2_2
mov ebx, edi
jmp 0x410a4f
mov edi, str.fileimgs_100a_013.png_source0_16_16_32_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x18], str.fileimgs_100a_013.png_source0_32_16_48_dest0_7_16_23_corner2_2_2_2
mov eax, str.fileimgs_100a_013.png_source0_0_16_16_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x14], str.fileimgs_100a_013.png_source0_32_16_48_dest0_7_16_23_corner2_2_2_2
mov ebx, edi
mov ecx, dword [esi + 0x590]
push eax
call fcn.00425a01
mov ecx, dword [esi + 0x590]
push edi
call fcn.004259af
mov ecx, dword [esi + 0x590]
push ebx
call fcn.004258c9
push dword [esp + 0x18]
mov ecx, dword [esi + 0x590]
call fcn.00425a43
push dword [esp + 0x14]
mov ecx, dword [esi + 0x590]
call fcn.00425647
mov eax, dword [0x4ba89c]
mov dword [esi + 0x5b4], eax
test eax, eax
je 0x410abe
mov edi, str.fileimgs_100a_013.png_source16_16_32_32_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x14], str.fileimgs_100a_013.png_source16_32_32_48_dest0_7_16_23_corner2_2_2_2
mov eax, str.fileimgs_100a_013.png_source16_0_32_16_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x18], str.fileimgs_100a_013.png_source16_48_32_64_dest0_7_16_23_corner2_2_2_2
mov ebx, edi
jmp 0x410ada
mov edi, str.fileimgs_100a_013.png_source0_16_16_32_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x14], str.fileimgs_100a_013.png_source0_32_16_48_dest0_7_16_23_corner2_2_2_2
mov eax, str.fileimgs_100a_013.png_source0_0_16_16_dest0_7_16_23_corner2_2_2_2
mov dword [esp + 0x18], str.fileimgs_100a_013.png_source0_32_16_48_dest0_7_16_23_corner2_2_2_2
mov ebx, edi
mov ecx, dword [esi + 0x58c]
push eax
call fcn.00425a01
mov ecx, dword [esi + 0x58c]
push edi
call fcn.004259af
mov ecx, dword [esi + 0x58c]
push ebx
call fcn.004258c9
push dword [esp + 0x14]
mov ecx, dword [esi + 0x58c]
call fcn.00425a43
push dword [esp + 0x18]
mov ecx, dword [esi + 0x58c]
call fcn.00425647
lea ecx, [esp + 0xdc]
call fcn.00414ae0
mov byte [esp + 0x950], 6
lea eax, [esp + 0xdc]
cmp dword [esp + 0xf0], 8
cmovae eax, dword [esp + 0xdc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x410b7d
cmp dword [esp + 0xf0], 8
lea eax, [esp + 0xdc]
push 4
cmovae eax, dword [esp + 0xe0]
push eax
call fcn.004596c5
add esp, 8
cmp eax, 0xffffffff
jne 0x410c4d
xor eax, eax
mov dword [esi + 0x5b4], 0
push eax
push 0x4a5678
lea ecx, [esp + 0x24]
mov dword [esp + 0x38], 7
mov dword [esp + 0x34], 0
mov word [esp + 0x24], ax
call fcn.0040f680
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x24]
mov byte [esp + 0x958], 7
push eax
mov ecx, 0x4b499c
call fcn.00406490
mov byte [esp + 0x950], 6
cmp dword [esp + 0x30], 8
jb 0x410be3
push dword [esp + 0x1c]
call fcn.00455fa6
add esp, 4
mov ecx, dword [esi + 0x594]
push 0x4a5678
mov eax, dword [ecx]
call dword [eax + 0x48]
mov ecx, dword [esi + 0x58c]
push str.fileimgs_100a_013.png_source0_0_16_16_dest0_7_16_23_corner2_2_2_2
mov dword [0x4ba89c], 0
call fcn.00425a01
mov ecx, dword [esi + 0x58c]
push str.fileimgs_100a_013.png_source0_16_16_32_dest0_7_16_23_corner2_2_2_2
call fcn.004259af
mov ecx, dword [esi + 0x58c]
push str.fileimgs_100a_013.png_source0_16_16_32_dest0_7_16_23_corner2_2_2_2
call fcn.004258c9
mov ecx, dword [esi + 0x58c]
push str.fileimgs_100a_013.png_source0_32_16_48_dest0_7_16_23_corner2_2_2_2
call fcn.00425a43
mov ecx, dword [esi + 0x58c]
push str.fileimgs_100a_013.png_source0_32_16_48_dest0_7_16_23_corner2_2_2_2
call fcn.00425647
push dword [esi + 4]
call dword [sym.imp.USER32.dll_UpdateWindow]
cmp dword [esp + 0xf0], 8
jb 0x410c6f
push dword [esp + 0xdc]
call fcn.00455fa6
add esp, 4
xor eax, eax
mov dword [esp + 0xf0], 7
mov dword [esp + 0xec], 0
mov word [esp + 0xdc], ax
lea ecx, [esp + 0x288]
mov byte [esp + 0x950], 8
call fcn.004171c6
lea ecx, [esp + 0x204]
mov byte [esp + 0x950], 0
call fcn.004171c6
lea ecx, [esp + 0xf4]
mov dword [esp + 0x950], 0xffffffff
call fcn.004171c6
xor eax, eax
mov ecx, dword [esp + 0x948]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x930]
xor ecx, esp
call fcn.0045755a
mov esp, ebp
pop ebp
ret 0x10