Function at 0x407a40
Capabilities:
Accept command line arguments
Create directory
Create process on windows
Delete file
Extract resource via kernel32 functions
Get common file path
Read file via mapping
Terminate process
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x648c03
mov eax, dword fs:[0]
push eax
sub esp, 0x4f4
mov eax, dword [0x703eb0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.GlobalReimage.PC_Repair.Mutex
push 0
mov esi, ecx
push 0x1f0001
mov dword [ebp - 0x4c0], esi
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
test eax, eax
je 0x407b45
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.GlobalReimage.PC_Repair.Map
push 0
push 4
mov byte [ebp - 0x4b1], 0
call dword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov edi, eax
test edi, edi
je 0x407b45
push 0
push 0
push 0
push 4
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ebx, eax
test ebx, ebx
je 0x407b35
mov esi, dword [ebx]
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x407b28
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x407aed
push 9
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x407b0a
push eax
push 0x9001
push 0x111
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
call dword [sym.imp.USER32.dll_BringWindowToTop]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push 1
push esi
call dword [sym.imp.USER32.dll_FlashWindow]
mov byte [ebp - 0x4b1], 1
push ebx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, dword [ebp - 0x4c0]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp - 0x4b1], 0
jne 0x407b80
lea eax, [ebp - 0x4d4]
push eax
mov dword [ebp - 0x4d4], 8
mov dword [ebp - 0x4d0], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, esi
call fcn.0042c2f0
call fcn.0042e79e
test eax, eax
jne 0x407b87
push 0xffffffffffffffff
push eax
push 0x64
call fcn.0041af16
xor eax, eax
jmp 0x4087f6
push 0
call fcn.0042e094
add esp, 4
push str.Local_AppWizard_Generated_Applications
mov ecx, esi
call fcn.0042c90c
push 4
mov ecx, esi
call fcn.0042b28d
push 0x8c
call fcn.00419f69
add esp, 4
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x407be1
push 0x6cd124
push 0x6cbc7c
push 0x6ccfc8
push 0x80
mov ecx, eax
call fcn.0042c601
jmp 0x407be3
xor eax, eax
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x407b80
push eax
mov ecx, esi
call fcn.0042d540
lea ecx, [ebp - 0x500]
call fcn.0042bc2d
push 0
mov edi, 1
push 0x6cbc40
mov ecx, 0x72263c
mov dword [ebp - 4], edi
call fcn.00402ad0
mov ebx, dword [0x71e604]
mov byte [ebp - 0x4b9], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x4b0]
call fcn.004023d0
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x4b0]
cmp dword [0x71e604], edi
jle 0x407c76
cmp dword [ecx - 0xc], 0
jl 0x407c76
push 0x6cc770
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x407c76
sub eax, ecx
sar eax, 1
js 0x407c76
mov byte [ebp - 0x4b9], 1
mov eax, dword [ecx - 0xc]
test eax, eax
js 0x407dd7
push str._Locale
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x407dd7
sub eax, ecx
sar eax, 1
js 0x407dd7
cmp dword [ecx - 0xc], 0
jge 0x407cb2
or edi, 0xffffffff
jmp 0x407cd5
push str._Locale
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
jne 0x407ccf
or edi, 0xffffffff
jmp 0x407cd5
sub eax, ecx
sar eax, 1
mov edi, eax
mov eax, dword [ecx - 0xc]
test edi, edi
js 0x407d01
cmp edi, eax
jg 0x407d01
lea ecx, [ecx + edi*2]
push 0x6cc78c
push ecx
call fcn.00522032
add esp, 8
test eax, eax
je 0x407d01
sub eax, dword [ebp - 0x4b0]
sar eax, 1
mov esi, eax
jmp 0x407d04
or esi, 0xffffffff
call fcn.0041a80c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x407d1e
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x4c4], eax
mov byte [ebp - 4], 3
test esi, esi
jle 0x407d5a
sub esi, edi
sub esi, 7
push esi
add edi, 8
push edi
lea ecx, [ebp - 0x4cc]
push ecx
lea ecx, [ebp - 0x4b0]
call fcn.0040bbb0
mov byte [ebp - 4], 4
jmp 0x407d74
add edi, 8
push edi
lea edx, [ebp - 0x4cc]
push edx
lea ecx, [ebp - 0x4b0]
call fcn.0040bb80
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x4c4]
call fcn.00402930
lea ecx, [ebp - 0x4cc]
call fcn.0040be80
mov esi, dword [ebp - 0x4c4]
push esi
call fcn.00522597
mov ecx, dword [ebp - 0x4c0]
mov dword [ecx + 0x23c], eax
lea eax, [esi - 0x10]
add esp, 4
mov byte [ebp - 4], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407dc6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x4c0]
mov ecx, dword [ebp - 0x4b0]
mov edi, 1
cmp dword [0x71e604], edi
jle 0x408213
cmp dword [ecx - 0xc], 0
jl 0x407e0b
push 0x6cc790
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x407e0b
sub eax, ecx
sar eax, 1
jns 0x40820d
lea eax, [ecx - 0x10]
push eax
call fcn.00402be0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x4b8], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x4b0]
cmp dword [ecx - 0xc], 0
jl 0x40818c
push 0x6cc7a4
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x407ee3
sub eax, ecx
sar eax, 1
js 0x407ee3
cmp dword [ecx - 0xc], 0
jge 0x407e65
or esi, 0xffffffff
jmp 0x407e86
push 0x6cc7a4
push ecx
call fcn.00522032
add esp, 8
test eax, eax
jne 0x407e7c
or esi, 0xffffffff
jmp 0x407e86
sub eax, dword [ebp - 0x4b0]
sar eax, 1
mov esi, eax
push esi
push 0x6cc78c
lea ecx, [ebp - 0x4b0]
call fcn.00406700
sub eax, esi
push eax
add esi, 3
push esi
lea ecx, [ebp - 0x4cc]
push ecx
lea ecx, [ebp - 0x4b0]
call fcn.0040bbb0
mov eax, dword [eax]
push eax
call fcn.00522597
mov edx, dword [ebp - 0x4c0]
add esp, 4
lea ecx, [ebp - 0x4cc]
mov dword [edx + 0x234], eax
call fcn.0040be80
mov ecx, dword [ebp - 0x4b0]
mov esi, dword [ebp - 0x4c0]
mov edi, 1
cmp dword [ecx - 0xc], 0
jl 0x40818c
push 0x6cc7ac
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x407fa4
sub eax, ecx
sar eax, 1
js 0x407fa4
cmp dword [ecx - 0xc], 0
jge 0x407f1e
or esi, 0xffffffff
jmp 0x407f3f
push 0x6cc7ac
push ecx
call fcn.00522032
add esp, 8
test eax, eax
jne 0x407f35
or esi, 0xffffffff
jmp 0x407f3f
sub eax, dword [ebp - 0x4b0]
sar eax, 1
mov esi, eax
push esi
push 0x6cc78c
lea ecx, [ebp - 0x4b0]
call fcn.00406700
cmp eax, 0xffffffff
jne 0x407f58
lea eax, [esi + 3]
sub eax, esi
push eax
add esi, 3
push esi
lea eax, [ebp - 0x4c4]
push eax
lea ecx, [ebp - 0x4b0]
call fcn.0040bbb0
mov eax, dword [eax]
push eax
call fcn.00522597
mov ecx, dword [ebp - 0x4c0]
mov dword [ecx + 0x238], eax
add esp, 4
lea ecx, [ebp - 0x4c4]
call fcn.0040be80
mov ecx, dword [ebp - 0x4b0]
mov esi, dword [ebp - 0x4c0]
mov edi, 1
cmp dword [ecx - 0xc], 0
jl 0x40818c
push str._TECH
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x407ffa
sub eax, ecx
sar eax, 1
js 0x407ffa
cmp dword [0x71e604], 2
mov byte [esi + 0xc6], 1
mov ecx, 0x72263c
jle 0x407ff0
mov edx, dword [0x71e60c]
mov eax, dword [edx + 4]
push eax
jmp 0x40819b
push 0x6cbc40
jmp 0x40819b
cmp dword [ecx - 0xc], 0
jl 0x40818c
push str._Updates
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x40802e
sub eax, ecx
sar eax, 1
js 0x40802e
mov byte [esi + 0xc7], 1
jmp 0x4081a6
cmp dword [ecx - 0xc], 0
jl 0x40818c
push str._safemode
push ecx
call fcn.00522032
mov ecx, dword [ebp - 0x4b0]
add esp, 8
test eax, eax
je 0x408064
sub eax, ecx
sar eax, 1
js 0x408064
mov word [esi + 0xc1], 0x101
jmp 0x4081a6
cmp dword [ecx - 0xc], 0
jl 0x40818c
push str._POST
push ecx
call fcn.00522032
add esp, 8
test eax, eax
je 0x40818c
sub eax, dword [ebp - 0x4b0]
sar eax, 1
js 0x40818c
cmp dword [0x71e604], 2
mov byte [esi + 0xc1], 1
jg 0x40818c
mov eax, dword [str.C:Windows]
mov edx, dword [0x6cc7fc]
mov ecx, dword [0x6cc7f8]
mov dword [ebp - 0x218], eax
mov eax, dword [0x6cc800]
push 0x1f2
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x214], ecx
mov ecx, dword [0x6cc804]
mov dword [ebp - 0x210], edx
mov dx, word [0x6cc808]
lea eax, [ebp - 0x202]
push 0
push eax
mov dword [ebp - 0x208], ecx
mov word [ebp - 0x204], dx
call fcn.005236f0
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x4c8]
call fcn.004023d0
push edi
lea ecx, [ebp - 0x4cc]
push ecx
mov ecx, eax
mov byte [ebp - 4], 7
call fcn.004067f0
push str.:ReimageUndoPostRebootpost_reboot.html
push eax
lea edx, [ebp - 0x4c4]
push edx
mov byte [ebp - 4], 8
call fcn.00402600
add esp, 0xc
lea ecx, [ebp - 0x4cc]
call fcn.0040be80
lea ecx, [ebp - 0x4c8]
mov byte [ebp - 4], 0xb
call fcn.0040be80
lea eax, [ebp - 0x4c4]
push eax
mov ecx, 0x72263c
call fcn.00402930
lea ecx, [ebp - 0x4c4]
call fcn.0040be80
jmp 0x4081a0
mov ecx, dword [0x71e60c]
mov edx, dword [ecx + 4]
mov ecx, 0x72263c
push edx
call fcn.00402490
mov dword [0x71e604], edi
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 2
call fcn.0040be80
lea eax, [ebp - 0x500]
push eax
mov ecx, esi
call fcn.0042b313
cmp byte [esi + 0xc1], 0
mov byte [esi + 0xc0], 1
jne 0x408236
mov ecx, dword [0x72263c]
push str._tray
push ecx
call fcn.005217ee
add esp, 8
test eax, eax
jne 0x408236
mov byte [esi + 0xc3], 1
mov ecx, 0x72263c
cmp ebx, 2
jle 0x408231
mov edx, dword [0x71e60c]
mov eax, dword [edx + 8]
push eax
call fcn.00402490
jmp 0x408236
cmp dword [0x71e604], edi
jne 0x4081b5
push 0
push str.Reimage_error
push str.Reimage_Repair_can_not_run_via_Reimage.exe__Please_run_ReimageRepair.exe_from_your_Desktop_or_start_menu.
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.004026e0
cmp byte [esi + 0xc7], 0
jne 0x408271
push str.GlobalReimage.PC_Repair.Mutex
push edi
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
push str.GlobalReimage.PC_Repair.Map
push 0x10000
push 0
push 4
push 0
push 0xffffffffffffffff
mov dword [esi + 0xb8], eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [esi + 0xbc], eax
xor ecx, ecx
mov byte [ebp - 0x4ba], 0
mov byte [ebp - 0x4b1], 0
mov dword [ebp - 0x460], 7
mov dword [ebp - 0x464], 0
mov word [ebp - 0x474], cx
push 0x104
lea edx, [ebp - 0x420]
push edx
mov byte [ebp - 4], 0xc
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x4082c2
mov eax, 0x63
mov word [ebp - 0x420], ax
mov ecx, dword [ebp - 0x420]
push ecx
lea esi, [ebp - 0x474]
call fcn.0040c070
push 5
push str.:REI
mov ecx, esi
call fcn.0040bf50
cmp dword [ebp - 0x460], 8
mov eax, dword [ebp - 0x474]
jae 0x4082f3
mov eax, esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
xor edx, edx
mov dword [ebp - 0x428], 7
mov dword [ebp - 0x42c], 0
mov word [ebp - 0x43c], dx
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x420]
push eax
lea esi, [ebp - 0x43c]
call fcn.0040c070
push 0x13
push str.:REI_temp_reix.cab
mov ecx, esi
call fcn.0040bf50
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
test edi, edi
je 0x408400
push 0xa
push 0x6cc994
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x4083f0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4083f0
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x4b8], eax
test eax, eax
je 0x4083f0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
cmp dword [ebp - 0x428], 8
mov ebx, eax
mov eax, dword [ebp - 0x43c]
jae 0x4083a3
lea eax, [ebp - 0x43c]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4083f0
mov edx, dword [ebp - 0x4b8]
push 0
lea ecx, [ebp - 0x4c8]
push ecx
push ebx
push edx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x4ba], 1
mov byte [ebp - 0x4b1], 1
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp byte [ebp - 0x4b1], 0
jne 0x40841b
mov eax, dword [0x72263c]
push str._install
push eax
call fcn.005217ee
add esp, 8
test eax, eax
jne 0x4085c4
push str.REI_Watchdog.exe
call fcn.00408b60
push str.ReiFTPWatchdog.exe
call fcn.00408b60
mov eax, dword [ebp - 0x43c]
mov edi, 8
add esp, 8
cmp dword [ebp - 0x428], edi
jae 0x40844b
lea eax, [ebp - 0x43c]
movzx esi, word [ebp - 0x420]
lea esi, [esi*2 + str.:REI]
push eax
call fcn.00412b00
add esp, 4
cmp byte [ebp - 0x4ba], 0
je 0x408486
mov eax, dword [ebp - 0x43c]
cmp dword [ebp - 0x428], edi
jae 0x40847f
lea eax, [ebp - 0x43c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
movzx ecx, word [ebp - 0x420]
lea edx, [ecx*2 + str.:REI_]
push edx
lea ecx, [ebp - 0x458]
call fcn.0040bea0
push 0x11
push str.REI_AxControl.dll
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0xe
call fcn.0040bf50
push str.regsvr32.exe
lea ecx, [ebp - 0x490]
call fcn.0040bea0
push str.__s__
lea ecx, [ebp - 0x4ac]
mov byte [ebp - 4], 0xf
call fcn.0040bea0
lea esi, [ebp - 0x458]
mov byte [ebp - 4], 0x10
call fcn.0040c430
push 0xffffffffffffffff
push 0
mov eax, esi
push eax
lea ecx, [ebp - 0x4ac]
call fcn.0040c320
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x4ac]
push ecx
mov ecx, esi
call fcn.0040c4d0
mov ecx, dword [ebp - 0x458]
cmp dword [ebp - 0x444], edi
jae 0x40851d
mov ecx, esi
mov eax, dword [ebp - 0x490]
cmp dword [ebp - 0x47c], edi
jae 0x408531
lea eax, [ebp - 0x490]
push 0
push 0
push ecx
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp dword [ebp - 0x498], edi
jb 0x40855b
mov edx, dword [ebp - 0x4ac]
push edx
call fcn.00419f98
add esp, 4
xor eax, eax
mov esi, 7
mov dword [ebp - 0x498], esi
mov dword [ebp - 0x49c], 0
mov word [ebp - 0x4ac], ax
cmp dword [ebp - 0x47c], edi
jb 0x408590
mov ecx, dword [ebp - 0x490]
push ecx
call fcn.00419f98
add esp, 4
xor edx, edx
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x47c], esi
mov dword [ebp - 0x480], 0
mov word [ebp - 0x490], dx
cmp dword [ebp - 0x444], edi
jb 0x4085c4
mov eax, dword [ebp - 0x458]
push eax
call fcn.00419f98
add esp, 4
mov esi, dword [ebp - 0x4c0]
lea ecx, [ebp - 0x500]
push ecx
mov ecx, esi
call fcn.0042d390
test eax, eax
jne 0x408631
lea ecx, [ebp - 0x43c]
call fcn.0040bef0
lea ecx, [ebp - 0x474]
call fcn.0040bef0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x4b0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408618
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x500]
mov dword [ebp - 4], 0xffffffff
call fcn.0042bc97
xor eax, eax
jmp 0x4087f6
mov ecx, dword [esi + 0xbc]
push 0
push 0
push 0
push 2
push ecx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
je 0x408659
mov edx, dword [esi + 0x20]
mov ecx, dword [edx + 0x20]
push eax
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
cmp byte [esi + 0xc3], 0
je 0x40866b
cmp byte [esi + 0xc1], 0
je 0x408675
mov ecx, dword [esi + 0x20]
push 1
call fcn.0042505e
cmp byte [0x722727], 0
je 0x4086a2
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x4b8]
push 0xc0
push eax
call fcn.0040ba30
add esp, 0xc
mov byte [ebp - 4], 0x11
jmp 0x40875d
cmp byte [0x722720], 0
je 0x408706
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x4b8]
push 0xc1
push edx
call fcn.0040ba30
add esp, 0xc
mov byte [ebp - 4], 0x12
mov eax, dword [eax]
mov ecx, dword [esi + 0x20]
push eax
call fcn.00424f93
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 0xd
call fcn.0040be80
cmp byte [esi + 0xc3], 0
je 0x408777
cmp byte [esi + 0xc1], 0
jne 0x408777
mov ecx, dword [esi + 0x20]
push 0
call fcn.0042505e
jmp 0x408777
mov eax, dword [0x72289c]
push eax
lea ecx, [ebp - 0x4b8]
push 0xc2
push ecx
call fcn.0040ba30
add esp, 0xc
mov byte [ebp - 4], 0x13
mov eax, dword [eax]
mov ecx, dword [esi + 0x20]
push eax
call fcn.00424f93
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 0xd
call fcn.0040be80
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x4b8]
push 0xc1
push eax
call fcn.0040ba30
add esp, 0xc
mov byte [ebp - 4], 0x14
mov eax, dword [eax]
mov ecx, dword [esi + 0x20]
push eax
call fcn.00424f93
lea ecx, [ebp - 0x4b8]
mov byte [ebp - 4], 0xd
call fcn.0040be80
mov ecx, dword [esi + 0x20]
mov edx, dword [ecx]
mov eax, dword [edx + 0x70]
push 0
call eax
mov eax, dword [esi + 0x20]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
cmp byte [ebp - 0x4b9], 0
je 0x4087a3
mov ecx, dword [esi + 0x20]
push 7
call fcn.0042505e
lea ecx, [ebp - 0x43c]
call fcn.0040bef0
lea ecx, [ebp - 0x474]
call fcn.0040bef0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x4b0]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4087df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x500]
mov dword [ebp - 4], 0xffffffff
call fcn.0042bc97
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00521602
mov esp, ebp
pop ebp
ret