Function at 0x40c390
Capabilities:
Delete file
Delete registry value
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x864
mov eax, dword [0x5023a4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x208
lea eax, [ebp - 0x418]
mov ebx, ecx
push 0
push eax
mov dword [ebp - 0x84c], ebx
call fcn.0049b560
add esp, 0xc
lea eax, [ebp - 0x210]
push 0x208
push 0
push eax
call fcn.0049b560
mov ecx, dword [0x506568]
add esp, 0xc
test ecx, ecx
jne 0x40c409
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [0x506568]
cmp dword [ecx + 0x1ec4], 0
mov edx, 0x4da2d8
mov eax, 0x4da3b0
lea ecx, [ebp - 0x834]
cmove eax, edx
push eax
call fcn.00403470
cmp dword [0x506568], 0
jne 0x40c451
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
lea eax, [ebp - 0x82c]
push eax
push 0
push 0
mov dword [ebp - 0x82c], 0
call edi
test eax, eax
jne 0x40c491
lea eax, [ebp - 0x418]
push eax
push dword [ebp - 0x82c]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push dword [ebp - 0x82c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
call fcn.004031c0
mov ecx, eax
test ecx, ecx
je 0x40d439
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x850], eax
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x850]
push 0x4dc04c
push eax
call fcn.004040c0
add esp, 0xc
cmp dword [0x506568], 0
jne 0x40c4f1
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov esi, dword [ebp - 0x850]
lea eax, [ebp - 0x210]
push ecx
push eax
push esi
call fcn.00411ef0
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x418]
push eax
lea eax, [ebp - 0x850]
push 0x4dc068
push eax
call fcn.004040c0
lea ecx, [ebp - 0x210]
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c530
sub ecx, edx
sar ecx, 1
jne 0x40c57c
cmp dword [0x506568], 0
jne 0x40c569
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
push ecx
lea eax, [ebp - 0x210]
push eax
push dword [ebp - 0x850]
call fcn.00411ef0
mov ecx, dword [0x506568]
test ecx, ecx
jne 0x40c5ab
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [0x506568]
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x838]
push eax
call fcn.00412b20
mov ecx, dword [ebx + 0x48c]
test ecx, ecx
je 0x40c8bc
call sym.Setup.exe_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const
test al, al
je 0x40c8bc
push 0x208
lea eax, [ebp - 0x620]
push 0
push eax
call fcn.0049b560
add esp, 0xc
cmp dword [0x506568], 0
jne 0x40c617
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
lea eax, [ebp - 0x864]
mov dword [ebp - 0x864], 0
push eax
push 0
push 0
call edi
test eax, eax
jne 0x40c8bc
lea eax, [ebp - 0x620]
push eax
push dword [ebp - 0x864]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push dword [ebp - 0x864]
mov esi, eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
test esi, esi
je 0x40c8bc
mov esi, dword [0x506568]
test esi, esi
jne 0x40c6b1
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov esi, dword [0x506568]
test esi, esi
jne 0x40c6b1
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
push 1
lea eax, [ebp - 0x620]
push eax
push dword [esi + 0x1ec4]
lea eax, [ebp - 0x82c]
push eax
call fcn.00413040
mov esi, dword [ebp - 0x838]
mov eax, dword [esi - 0xc]
test eax, eax
jne 0x40c6ed
push 5
push str._main
lea ecx, [ebp - 0x838]
call fcn.00403760
jmp 0x40c71c
js 0x40c70a
push str._main
push esi
call fcn.0049a763
add esp, 8
test eax, eax
je 0x40c70a
sub eax, esi
sar eax, 1
cmp eax, 0xffffffff
jne 0x40c71c
push 6
push str.__main
lea ecx, [ebp - 0x838]
call fcn.00404010
call fcn.004031c0
mov ecx, eax
test ecx, ecx
je 0x40d443
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x83c], eax
mov eax, dword [0x506568]
test eax, eax
jne 0x40c766
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov eax, dword [0x506568]
add eax, 0x414
push eax
lea eax, [ebp - 0x83c]
push str._s_resdesk.ico
push eax
call fcn.004040c0
mov edi, dword [ebp - 0x834]
add esp, 0xc
cmp dword [edi - 4], 1
jle 0x40c7a0
push dword [edi - 0xc]
lea ecx, [ebp - 0x834]
call fcn.00403890
mov edi, dword [ebp - 0x834]
mov esi, dword [ebp - 0x82c]
cmp dword [esi - 4], 1
jle 0x40c7c0
push dword [esi - 0xc]
lea ecx, [ebp - 0x82c]
call fcn.00403890
mov esi, dword [ebp - 0x82c]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40c812
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40c812
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
push dword [ebp - 0x838]
lea eax, [ebp - 0x620]
push ecx
push edi
sub esp, 8
push esi
push eax
lea eax, [ebx + 0xc34]
push eax
push dword [ebp - 0x83c]
call fcn.00411d10
push dword [edi - 8]
push edi
call fcn.004a38d8
add esp, 8
test eax, eax
js 0x40d44d
cmp eax, dword [edi - 8]
jg 0x40d44d
mov dword [edi - 0xc], eax
xor ecx, ecx
mov word [edi + eax*2], cx
push dword [esi - 8]
push esi
call fcn.004a38d8
add esp, 8
test eax, eax
js 0x40d44d
cmp eax, dword [esi - 8]
jg 0x40d44d
mov edx, dword [ebp - 0x83c]
xor ecx, ecx
mov dword [esi - 0xc], eax
or ebx, 0xffffffff
mov word [esi + eax*2], cx
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40c8a3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40c8c2
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40c8c2
mov edi, dword [ebp - 0x834]
mov ecx, dword [ebp - 0x84c]
mov ecx, dword [ecx + 0x494]
test ecx, ecx
je 0x40ca84
call sym.Setup.exe_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const
test al, al
je 0x40ca19
mov eax, dword [0x506568]
test eax, eax
jne 0x40c910
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov eax, dword [0x506568]
push ecx
push str.GamePlusPlus
add eax, 0xc34
lea ecx, [ebp - 0x85d]
push eax
push 1
call fcn.004042d0
push 0x4dc0bc
call fcn.00404670
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x40c99d
push 0x4dc0bc
call fcn.00405d30
sub esp, 0xc
mov dword [ebp - 0x85c], 0
lea ecx, [ebp - 0x85c]
mov dword [ebp - 0x858], 0
mov dword [ebp - 0x854], 0
call fcn.00404210
test eax, eax
jne 0x40c990
mov esi, dword [ebp - 0x85c]
push 0x4dc0bc
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test esi, esi
je 0x40c99d
push esi
jmp 0x40c99b
mov eax, dword [ebp - 0x85c]
test eax, eax
je 0x40c99d
push eax
call ebx
push 0x4da2d8
call fcn.00404670
test eax, eax
je 0x40ca12
push 0x4da2d8
call fcn.00405d30
sub esp, 0xc
mov dword [ebp - 0x85c], 0
lea ecx, [ebp - 0x85c]
mov dword [ebp - 0x858], 0
mov dword [ebp - 0x854], 0
call fcn.00404210
test eax, eax
jne 0x40ca05
mov esi, dword [ebp - 0x85c]
push 0x4da2d8
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test esi, esi
je 0x40ca12
push esi
call ebx
mov ecx, 1
jmp 0x40ca7f
mov eax, dword [ebp - 0x85c]
test eax, eax
je 0x40ca12
push eax
call ebx
mov ecx, 1
jmp 0x40ca7f
push str.GamePlusPlus
call fcn.00405d30
sub esp, 0xc
mov dword [ebp - 0x85c], 0
lea ecx, [ebp - 0x85c]
mov dword [ebp - 0x858], 0
mov dword [ebp - 0x854], 0
call fcn.00404210
test eax, eax
jne 0x40ca6c
mov esi, dword [ebp - 0x85c]
push str.GamePlusPlus
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
test esi, esi
je 0x40ca7d
push esi
jmp 0x40ca77
mov eax, dword [ebp - 0x85c]
test eax, eax
je 0x40ca7d
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ecx, ecx
call fcn.00418790
mov ecx, dword [ebp - 0x84c]
mov ecx, dword [ecx + 0x490]
test ecx, ecx
je 0x40d2b4
call sym.Setup.exe_public:_bool___thiscall_DuiLib::COptionUI::IsSelected_void_const
test al, al
je 0x40d2b4
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.004031c0
mov ecx, eax
test ecx, ecx
je 0x40d439
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
push 0x208
mov dword [ebp - 0x830], eax
lea eax, [ebp - 0x828]
push 0
push eax
call fcn.0049b560
add esp, 0xc
cmp dword [0x506568], 0
jne 0x40cb08
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
lea eax, [ebp - 0x82c]
mov dword [ebp - 0x82c], 0
push eax
push 0x17
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x40cbb7
lea eax, [ebp - 0x828]
push eax
push dword [ebp - 0x82c]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
push dword [ebp - 0x82c]
mov esi, eax
call dword [sym.imp.ole32.dll_CoTaskMemFree]
test esi, esi
je 0x40cbb7
cmp dword [edi - 4], 1
jle 0x40cb6a
push dword [edi - 0xc]
lea ecx, [ebp - 0x834]
call fcn.00403890
mov edi, dword [ebp - 0x834]
push edi
lea eax, [ebp - 0x828]
push eax
lea eax, [ebp - 0x830]
push 0x4dc0d4
push eax
call fcn.004040c0
push dword [edi - 8]
push edi
call fcn.004a38d8
add esp, 0x18
test eax, eax
js 0x40d44d
cmp eax, dword [edi - 8]
jg 0x40d44d
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
mov eax, dword [ebp - 0x830]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
call fcn.004031c0
mov ecx, eax
test ecx, ecx
je 0x40d439
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x844], eax
mov eax, dword [0x506568]
test eax, eax
jne 0x40cc01
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov eax, dword [0x506568]
cmp dword [eax + 0x1ec4], 0
mov ecx, 0x4da3b0
mov eax, 0x4da2d8
cmove eax, ecx
lea ecx, [ebp - 0x82c]
push eax
call fcn.00403470
mov esi, dword [ebp - 0x82c]
cmp dword [esi - 4], 1
jle 0x40cc41
push dword [esi - 0xc]
lea ecx, [ebp - 0x82c]
call fcn.00403890
mov esi, dword [ebp - 0x82c]
push esi
lea eax, [ebp - 0x828]
push eax
lea eax, [ebp - 0x844]
push 0x4dc0d4
push eax
call fcn.004040c0
push dword [esi - 8]
push esi
call fcn.004a38d8
add esp, 0x18
test eax, eax
js 0x40d44d
cmp eax, dword [esi - 8]
jg 0x40d44d
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov esi, dword [ebp - 0x844]
cmp dword [esi - 4], 1
jle 0x40cca0
push dword [esi - 0xc]
lea ecx, [ebp - 0x844]
call fcn.00403890
mov esi, dword [ebp - 0x844]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40ccf2
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40ccf2
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
push 1
push esi
push dword [ebx + 0x1ec4]
lea eax, [ebp - 0x83c]
push eax
call fcn.00413040
push dword [esi - 8]
push esi
call fcn.004a38d8
add esp, 8
test eax, eax
js 0x40d44d
cmp eax, dword [esi - 8]
jg 0x40d44d
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov eax, dword [ebp - 0x838]
mov ecx, dword [eax - 0xc]
test ecx, ecx
jne 0x40cd4e
push 5
push str._main
lea ecx, [ebp - 0x838]
call fcn.00403760
jmp 0x40cd81
js 0x40cd6f
push str._main
push eax
call fcn.0049a763
add esp, 8
test eax, eax
je 0x40cd6f
sub eax, dword [ebp - 0x838]
sar eax, 1
cmp eax, 0xffffffff
jne 0x40cd81
push 6
push str.__main
lea ecx, [ebp - 0x838]
call fcn.00404010
call fcn.004031c0
mov ecx, eax
test ecx, ecx
je 0x40d439
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x84c], eax
mov eax, dword [0x506568]
test eax, eax
jne 0x40cdcb
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov eax, dword [0x506568]
add eax, 0x414
push eax
lea eax, [ebp - 0x84c]
push str._s_resdesk.ico
push eax
call fcn.004040c0
add esp, 0xc
cmp dword [edi - 4], 1
jle 0x40cdff
push dword [edi - 0xc]
lea ecx, [ebp - 0x834]
call fcn.00403890
mov edi, dword [ebp - 0x834]
mov eax, dword [ebp - 0x83c]
cmp dword [eax - 4], 1
jle 0x40ce19
push dword [eax - 0xc]
lea ecx, [ebp - 0x83c]
call fcn.00403890
mov eax, dword [ebp - 0x830]
cmp dword [eax - 4], 1
jle 0x40ce33
push dword [eax - 0xc]
lea ecx, [ebp - 0x830]
call fcn.00403890
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40ce85
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40ce85
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
push dword [ebp - 0x838]
mov eax, dword [ebp - 0x83c]
push ecx
push edi
sub esp, 8
push eax
mov eax, dword [ebp - 0x830]
push eax
lea eax, [ebx + 0xc34]
push eax
push dword [ebp - 0x84c]
call fcn.00411d10
mov eax, dword [ebp - 0x830]
push dword [eax - 8]
push eax
call fcn.004a38d8
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x40d44d
mov eax, dword [ebp - 0x830]
cmp ecx, dword [eax - 8]
jg 0x40d44d
mov dword [eax - 0xc], ecx
xor edx, edx
mov word [eax + ecx*2], dx
mov eax, dword [ebp - 0x83c]
push dword [eax - 8]
push eax
call fcn.004a38d8
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x40d44d
mov eax, dword [ebp - 0x83c]
cmp ecx, dword [eax - 8]
jg 0x40d44d
mov dword [eax - 0xc], ecx
xor edx, edx
mov word [eax + ecx*2], dx
push dword [edi - 8]
push edi
call fcn.004a38d8
add esp, 8
test eax, eax
js 0x40d44d
cmp eax, dword [edi - 8]
jg 0x40d44d
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp dword [esi - 4], 1
jle 0x40cf58
push dword [esi - 0xc]
lea ecx, [ebp - 0x844]
call fcn.00403890
mov esi, dword [ebp - 0x844]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40cfaa
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40cfaa
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ebx, dword [ebx + 0x1ec4]
call fcn.004031c0
mov ecx, eax
test ecx, ecx
je 0x40d439
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x840], eax
call fcn.004031c0
mov ecx, eax
test ecx, ecx
je 0x40d439
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
lea ecx, [ebp - 0x840]
mov dword [ebp - 0x848], eax
test ebx, ebx
je 0x40d008
push 0xd
push str.Uninstall.lnk
call fcn.00403760
push esi
push 0x4dd6a4
jmp 0x40d01a
push 0xa
push 0x4dd6c0
call fcn.00403760
push esi
push str._sUninstall.lnk
lea eax, [ebp - 0x848]
push eax
call fcn.004040c0
mov esi, dword [ebp - 0x848]
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40d04e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0x844]
push dword [esi - 8]
push esi
call fcn.004a38d8
add esp, 8
test eax, eax
js 0x40d44d
cmp eax, dword [esi - 8]
jg 0x40d44d
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
cmp dword [edi - 4], 1
jle 0x40d094
push dword [edi - 0xc]
lea ecx, [ebp - 0x834]
call fcn.00403890
mov edi, dword [ebp - 0x834]
mov eax, dword [ebp - 0x840]
cmp dword [eax - 4], 1
jle 0x40d0ae
push dword [eax - 0xc]
lea ecx, [ebp - 0x840]
call fcn.00403890
mov eax, dword [ebp - 0x830]
cmp dword [eax - 4], 1
jle 0x40d0c8
push dword [eax - 0xc]
lea ecx, [ebp - 0x830]
call fcn.00403890
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40d0f7
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ebx, dword [0x506568]
mov eax, ebx
mov dword [ebp - 0x848], eax
test eax, eax
jne 0x40d128
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ebx, dword [0x506568]
test ebx, ebx
jne 0x40d14b
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov eax, dword [ebp - 0x840]
push 0x4d9ea8
push ecx
push edi
sub esp, 8
push eax
mov eax, dword [ebp - 0x830]
push eax
mov eax, dword [ebp - 0x848]
add eax, 0xe3c
push eax
lea eax, [ebx + 0xe3c]
push eax
call fcn.00411d10
mov eax, dword [ebp - 0x840]
push dword [eax - 8]
push eax
call fcn.004a38d8
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x40d44d
mov eax, dword [ebp - 0x840]
cmp ecx, dword [eax - 8]
jg 0x40d44d
mov dword [eax - 0xc], ecx
xor edx, edx
mov word [eax + ecx*2], dx
mov eax, dword [ebp - 0x830]
push dword [eax - 8]
push eax
call fcn.004a38d8
mov ecx, eax
add esp, 8
test ecx, ecx
js 0x40d44d
mov eax, dword [ebp - 0x830]
cmp ecx, dword [eax - 8]
jg 0x40d44d
mov dword [eax - 0xc], ecx
xor edx, edx
mov word [eax + ecx*2], dx
push dword [edi - 8]
push edi
call fcn.004a38d8
add esp, 8
test eax, eax
js 0x40d44d
cmp eax, dword [edi - 8]
jg 0x40d44d
mov edx, dword [ebp - 0x840]
xor ecx, ecx
mov dword [edi - 0xc], eax
or ebx, 0xffffffff
mov word [edi + eax*2], cx
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40d229
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x84c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40d246
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x83c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40d263
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x82c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40d280
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x40d297
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x830]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40d2b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [0x506568]
test ecx, ecx
jne 0x40d2e3
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [0x506568]
mov esi, ecx
test esi, esi
jne 0x40d30e
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov ecx, dword [0x506568]
lea eax, [esi + 0xe3c]
push eax
push ecx
call fcn.00411960
mov esi, dword [0x506568]
test esi, esi
jne 0x40d373
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov esi, dword [0x506568]
test esi, esi
jne 0x40d373
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov esi, dword [0x506568]
mov ebx, esi
test ebx, ebx
jne 0x40d39e
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
mov esi, dword [0x506568]
test esi, esi
jne 0x40d3c1
push 0x20d0
call fcn.0049786c
add esp, 4
mov ecx, eax
call fcn.00414c70
mov ecx, eax
mov dword [0x506568], eax
mov edx, dword [eax]
call dword [edx]
push ecx
lea eax, [ebx + 0x824]
push eax
lea eax, [esi + 0x414]
push eax
push ecx
call fcn.00411c60
mov edx, dword [ebp - 0x838]
or ebx, 0xffffffff
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40d3f6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x850]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40d413
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x40d428
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0049765c
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00402f10
push 0x80004005
call fcn.00402f10
push 0x80070057
call fcn.00402f10
int3