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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c0a93
mov eax, dword fs:[0]
push eax
mov eax, 0x1650
call fcn.0048bb00
mov eax, dword [0x4f7458]
xor eax, ebp
mov dword [ebp - 0x40], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x161c], ecx
push 0
call fcn.0044f7bd
add esp, 4
push 0
mov ecx, dword [ebp - 0x161c]
call fcn.00439ae0
push 0x104
lea eax, [ebp - 0x24c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x24c]
push ecx
push 0x4cee9c
mov edx, dword [ebp - 0x161c]
add edx, 0xf0
push edx
call fcn.004024b0
add esp, 0xc
mov eax, dword [ebp - 0x161c]
add eax, 0xf0
mov dword [ebp - 0x1480], eax
mov ecx, dword [ebp - 0x1480]
mov edx, dword [ecx]
mov dword [ebp - 0x1478], edx
push 0x5c
mov eax, dword [ebp - 0x1478]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x1474], eax
cmp dword [ebp - 0x1474], 0
jne 0x429cdc
mov dword [ebp - 0x1620], 0xffffffff
jmp 0x429cfe
mov ecx, dword [ebp - 0x1480]
mov edx, dword [ecx]
mov dword [ebp - 0x147c], edx
mov eax, dword [ebp - 0x1474]
sub eax, dword [ebp - 0x147c]
sar eax, 1
mov dword [ebp - 0x1620], eax
mov ecx, dword [ebp - 0x1620]
add ecx, 1
push ecx
lea edx, [ebp - 0x1420]
push edx
mov ecx, dword [ebp - 0x161c]
add ecx, 0xf0
call fcn.0040f7f0
mov dword [ebp - 0x1624], eax
mov eax, dword [ebp - 0x1624]
mov dword [ebp - 0x1488], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x161c]
add ecx, 0xf0
mov dword [ebp - 0x1484], ecx
mov edx, dword [ebp - 0x1488]
push edx
mov ecx, dword [ebp - 0x1484]
call fcn.004118e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1420]
call fcn.00402470
mov eax, dword [ebp - 0x161c]
mov dword [eax + 0xd8], 0
cmp dword [0x4fab58], 5
jne 0x429f0d
mov ecx, dword [0x4fab60]
mov edx, dword [ecx + 4]
movzx eax, word [edx]
cmp eax, 0x2d
je 0x429db2
mov ecx, dword [0x4fab60]
mov edx, dword [ecx + 4]
movzx eax, word [edx]
cmp eax, 0x2f
jne 0x429f0d
push str.concise
mov ecx, dword [0x4fab60]
mov edx, dword [ecx + 4]
add edx, 2
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x429f0d
xor eax, eax
mov word [ebp - 0x8a4], ax
push 0x208
push 0
lea ecx, [ebp - 0x8a2]
push ecx
call fcn.0048ac80
add esp, 0xc
xor edx, edx
mov word [ebp - 0x694], dx
push 0x208
push 0
lea eax, [ebp - 0x692]
push eax
call fcn.0048ac80
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x484], cx
push 0x208
push 0
lea edx, [ebp - 0x482]
push edx
call fcn.0048ac80
add esp, 0xc
push 0x104
mov eax, dword [0x4fab60]
mov ecx, dword [eax + 8]
push ecx
lea edx, [ebp - 0x8a4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x104
mov eax, dword [0x4fab60]
mov ecx, dword [eax + 0xc]
push ecx
lea edx, [ebp - 0x694]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0x104
mov eax, dword [0x4fab60]
mov ecx, dword [eax + 0x10]
push ecx
lea edx, [ebp - 0x484]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea eax, [ebp - 0x8a4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x429ea2
lea ecx, [ebp - 0x8a4]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
je 0x429eb4
mov edx, dword [ebp - 0x161c]
mov dword [edx + 0xb8], 1
jmp 0x429f06
lea ecx, [ebp - 0xabc]
call fcn.004027b0
mov dword [ebp - 4], 1
push 0
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0x694]
push ecx
lea edx, [ebp - 0x8a4]
push edx
lea ecx, [ebp - 0xabc]
call fcn.0040afb0
mov ecx, dword [ebp - 0x161c]
mov dword [ecx + 0xb8], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xabc]
call fcn.00402850
xor eax, eax
jmp 0x42ad40
lea edx, [ebp - 0x1424]
push edx
mov ecx, dword [ebp - 0x161c]
call fcn.0042b8e0
mov dword [ebp - 0x1628], eax
mov eax, dword [ebp - 0x1628]
mov dword [ebp - 0x1494], eax
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x161c]
add ecx, 0xc4
mov dword [ebp - 0x1490], ecx
mov edx, dword [ebp - 0x1494]
push edx
mov ecx, dword [ebp - 0x1490]
call fcn.004118e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1424]
call fcn.00402470
push 0
push 0
mov eax, dword [ebp - 0x161c]
add eax, 0xc4
push eax
mov ecx, dword [ebp - 0x161c]
call fcn.00439440
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0
je 0x429fa3
mov eax, dword [ebp - 0x254]
jmp 0x42ad40
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x274]
call fcn.00411290
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x274]
call fcn.0043bce0
push 0
push str._extract
lea ecx, [ebp - 0x274]
call fcn.0040f610
cmp eax, 0xffffffff
je 0x42a015
mov ecx, dword [ebp - 0x161c]
mov dword [ecx + 0xd8], 1
mov dword [ebp - 0x1428], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1428]
jmp 0x42ad40
push str.config.ini
mov edx, dword [ebp - 0x161c]
add edx, 0xc4
push edx
lea eax, [ebp - 0x270]
push eax
call fcn.0040f970
add esp, 0xc
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x270]
mov dword [ebp - 0x14c0], ecx
mov edx, dword [ebp - 0x14c0]
push edx
push 0
push str.mode
push str.update
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x42a302
xor eax, eax
mov word [ebp - 0x10ec], ax
push 0x208
push 0
lea ecx, [ebp - 0x10ea]
push ecx
call fcn.0048ac80
add esp, 0xc
xor edx, edx
mov word [ebp - 0xedc], dx
push 0x208
push 0
lea eax, [ebp - 0xeda]
push eax
call fcn.0048ac80
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0xccc], cx
push 0x208
push 0
lea edx, [ebp - 0xcca]
push edx
call fcn.0048ac80
add esp, 0xc
lea eax, [ebp - 0x142c]
push eax
mov ecx, dword [ebp - 0x161c]
call fcn.0042b760
mov dword [ebp - 0x14c4], eax
mov ecx, dword [ebp - 0x14c4]
mov edx, dword [ecx]
mov dword [ebp - 0x14c8], edx
push 0x104
mov eax, dword [ebp - 0x14c8]
push eax
lea ecx, [ebp - 0x10ec]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x142c]
call fcn.00402470
lea edx, [ebp - 0x1430]
push edx
mov ecx, dword [ebp - 0x161c]
call fcn.0042b760
mov dword [ebp - 0x162c], eax
mov eax, dword [ebp - 0x162c]
mov dword [ebp - 0x1630], eax
mov byte [ebp - 4], 5
push str.updatepath
mov ecx, dword [ebp - 0x1630]
push ecx
lea edx, [ebp - 0x1434]
push edx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x14d0], eax
mov eax, dword [ebp - 0x14d0]
mov ecx, dword [eax]
mov dword [ebp - 0x14d4], ecx
push 0x104
mov edx, dword [ebp - 0x14d4]
push edx
lea eax, [ebp - 0xedc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x1434]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1430]
call fcn.00402470
lea ecx, [ebp - 0x1438]
push ecx
mov ecx, dword [ebp - 0x161c]
call fcn.0042b760
mov dword [ebp - 0x1634], eax
mov edx, dword [ebp - 0x1634]
mov dword [ebp - 0x1638], edx
mov byte [ebp - 4], 6
push str.update.log
mov eax, dword [ebp - 0x1638]
push eax
lea ecx, [ebp - 0x143c]
push ecx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x14e0], eax
mov edx, dword [ebp - 0x14e0]
mov eax, dword [edx]
mov dword [ebp - 0x14e4], eax
push 0x104
mov ecx, dword [ebp - 0x14e4]
push ecx
lea edx, [ebp - 0xccc]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x143c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1438]
call fcn.00402470
lea eax, [ebp - 0x10ec]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x42a249
lea ecx, [ebp - 0x10ec]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
je 0x42a25b
mov edx, dword [ebp - 0x161c]
mov dword [edx + 0xb8], 1
jmp 0x42a2a7
lea ecx, [ebp - 0x1304]
call fcn.004027b0
mov byte [ebp - 4], 7
push 1
lea eax, [ebp - 0xccc]
push eax
lea ecx, [ebp - 0xedc]
push ecx
lea edx, [ebp - 0x10ec]
push edx
lea ecx, [ebp - 0x1304]
call fcn.0040afb0
mov ecx, dword [ebp - 0x161c]
mov dword [ecx + 0xb8], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1304]
call fcn.00402850
mov ecx, dword [ebp - 0x161c]
call fcn.0042b000
mov edx, dword [ebp - 0x161c]
cmp dword [edx + 0xb8], 0
jne 0x42a2cc
mov ecx, dword [ebp - 0x161c]
call fcn.0042ad80
mov dword [ebp - 0x1440], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1440]
jmp 0x42ad40
push 1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.ADVAPI32.dll_InitializeSecurityDescriptor]
push 0
push 0
push 1
lea ecx, [ebp - 0x3c]
push ecx
call dword [sym.imp.ADVAPI32.dll_SetSecurityDescriptorDacl]
mov dword [ebp - 0x260], 0xc
mov dword [ebp - 0x258], 0
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x25c], edx
push str.Global323EA065_C0BE_4af6_99A5_17A97F113151
push 1
lea eax, [ebp - 0x260]
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x264], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x264], 0
je 0x42a3bd
cmp dword [ebp - 0x28], 0xb7
jne 0x42a3bd
mov ecx, dword [ebp - 0x264]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x1444], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1444]
jmp 0x42ad40
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x42a407
push 0x70
call fcn.004299e0
add esp, 4
mov dword [ebp - 0x1448], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1448]
jmp 0x42ad40
mov dword [ebp - 0x268], 0
mov edx, dword [ebp - 0x161c]
mov eax, dword [edx + 0xc4]
mov ecx, dword [eax - 0xc]
mov dword [ebp - 0x1508], ecx
mov edx, dword [ebp - 0x1508]
push edx
push str._force
lea ecx, [ebp - 0x274]
call fcn.0040f610
cmp eax, 0xffffffff
je 0x42a461
mov eax, dword [ebp - 0x161c]
mov dword [eax + 0xb0], 1
mov dword [ebp - 0x268], 1
jmp 0x42a4e5
mov ecx, dword [ebp - 0x161c]
mov edx, dword [ecx + 0xc4]
mov eax, dword [edx - 0xc]
mov dword [ebp - 0x1518], eax
mov ecx, dword [ebp - 0x1518]
push ecx
push str._dsm_update_step_1
lea ecx, [ebp - 0x274]
call fcn.0040f610
cmp eax, 0xffffffff
je 0x42a4a4
mov edx, dword [ebp - 0x161c]
mov dword [edx + 0xb0], 2
jmp 0x42a4e5
mov eax, dword [ebp - 0x161c]
mov ecx, dword [eax + 0xc4]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x1528], edx
mov eax, dword [ebp - 0x1528]
push eax
push 0x4ced7c
lea ecx, [ebp - 0x274]
call fcn.0040f610
cmp eax, 0xffffffff
je 0x42a4e5
mov ecx, dword [ebp - 0x161c]
mov dword [ecx + 0xb0], 3
lea edx, [ebp - 0x144c]
push edx
mov ecx, dword [ebp - 0x161c]
call fcn.0042b760
mov dword [ebp - 0x163c], eax
mov eax, dword [ebp - 0x163c]
mov dword [ebp - 0x153c], eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x161c]
add ecx, 0xc0
mov dword [ebp - 0x1538], ecx
mov edx, dword [ebp - 0x153c]
push edx
mov ecx, dword [ebp - 0x1538]
call fcn.004118e0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x144c]
call fcn.00402470
mov eax, dword [ebp - 0x161c]
mov ecx, dword [eax + 0xc0]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x1544], edx
xor eax, eax
cmp dword [ebp - 0x1544], 0
sete al
movzx ecx, al
test ecx, ecx
je 0x42a5ba
mov edx, dword [ebp - 0x161c]
mov dword [edx + 0xb8], 9
push 0
push 0x67
call fcn.004298e0
add esp, 8
mov dword [ebp - 0x1450], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1450]
jmp 0x42ad40
lea eax, [ebp - 0x1454]
push eax
mov ecx, dword [ebp - 0x161c]
call fcn.0042c1e0
mov dword [ebp - 0x1640], eax
mov ecx, dword [ebp - 0x1640]
mov dword [ebp - 0x1554], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x161c]
add edx, 0xc8
mov dword [ebp - 0x1550], edx
mov eax, dword [ebp - 0x1554]
push eax
mov ecx, dword [ebp - 0x1550]
call fcn.004118e0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1454]
call fcn.00402470
lea ecx, [ebp - 0x1458]
push ecx
mov ecx, dword [ebp - 0x161c]
call fcn.0042bf40
mov dword [ebp - 0x1644], eax
mov edx, dword [ebp - 0x1644]
mov dword [ebp - 0x1560], edx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x161c]
add eax, 0xd0
mov dword [ebp - 0x155c], eax
mov ecx, dword [ebp - 0x1560]
push ecx
mov ecx, dword [ebp - 0x155c]
call fcn.004118e0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1458]
call fcn.00402470
lea edx, [ebp - 0x145c]
push edx
mov ecx, dword [ebp - 0x161c]
call fcn.0042d1d0
mov dword [ebp - 0x1648], eax
mov eax, dword [ebp - 0x1648]
mov dword [ebp - 0x156c], eax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x161c]
add ecx, 0xcc
mov dword [ebp - 0x1568], ecx
mov edx, dword [ebp - 0x156c]
push edx
mov ecx, dword [ebp - 0x1568]
call fcn.004118e0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x145c]
call fcn.00402470
mov eax, dword [ebp - 0x161c]
mov ecx, dword [eax + 0xc4]
mov dword [ebp - 0x1574], ecx
xor edx, edx
cmp dword [ebp - 0x1574], 0
setne dl
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x1578], edx
jne 0x42a700
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x42a6dc
xor ecx, ecx
jne 0x42a704
mov edx, dword [ebp - 0x161c]
mov eax, dword [edx + 0xc0]
mov dword [ebp - 0x157c], eax
mov ecx, dword [ebp - 0x1574]
push ecx
mov edx, dword [ebp - 0x157c]
push edx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x1580], eax
cmp dword [ebp - 0x1580], 0
jne 0x42a77f
push 0x6a
call fcn.004299e0
add esp, 4
mov dword [ebp - 0x1460], 0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1460]
jmp 0x42ad40
lea ecx, [ebp - 0x24]
call fcn.0044a42d
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x161c]
add eax, 0xc0
mov dword [ebp - 0x1598], eax
mov ecx, dword [ebp - 0x1598]
mov edx, dword [ecx]
mov dword [ebp - 0x1590], edx
push 0x5c
mov eax, dword [ebp - 0x1590]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x158c], eax
cmp dword [ebp - 0x158c], 0
jne 0x42a7d6
mov dword [ebp - 0x164c], 0xffffffff
jmp 0x42a7f8
mov ecx, dword [ebp - 0x1598]
mov edx, dword [ecx]
mov dword [ebp - 0x1594], edx
mov eax, dword [ebp - 0x158c]
sub eax, dword [ebp - 0x1594]
sar eax, 1
mov dword [ebp - 0x164c], eax
mov ecx, dword [ebp - 0x164c]
push ecx
lea edx, [ebp - 0x26c]
push edx
mov ecx, dword [ebp - 0x161c]
add ecx, 0xc0
call fcn.0040f7f0
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x161c]
add eax, 0xc4
mov dword [ebp - 0x15a8], eax
mov ecx, dword [ebp - 0x15a8]
mov edx, dword [ecx]
mov dword [ebp - 0x15a0], edx
push 0x5c
mov eax, dword [ebp - 0x15a0]
push eax
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x159c], eax
cmp dword [ebp - 0x159c], 0
jne 0x42a866
mov dword [ebp - 0x1650], 0xffffffff
jmp 0x42a888
mov ecx, dword [ebp - 0x15a8]
mov edx, dword [ecx]
mov dword [ebp - 0x15a4], edx
mov eax, dword [ebp - 0x159c]
sub eax, dword [ebp - 0x15a4]
sar eax, 1
mov dword [ebp - 0x1650], eax
mov ecx, dword [ebp - 0x1650]
push ecx
lea edx, [ebp - 0x250]
push edx
mov ecx, dword [ebp - 0x161c]
add ecx, 0xc4
call fcn.0040f7f0
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x15b0], eax
push 0x5c
mov ecx, dword [ebp - 0x15b0]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x15ac], eax
cmp dword [ebp - 0x15ac], 0
jne 0x42a8e3
mov dword [ebp - 0x1654], 0xffffffff
jmp 0x42a8f7
mov edx, dword [ebp - 0x15ac]
sub edx, dword [ebp - 0x26c]
sar edx, 1
mov dword [ebp - 0x1654], edx
cmp dword [ebp - 0x1654], 0xffffffff
je 0x42a9b2
mov eax, dword [ebp - 0x26c]
mov dword [ebp - 0x15b8], eax
push 0x5c
mov ecx, dword [ebp - 0x15b8]
push ecx
call fcn.0048ce56
add esp, 8
mov dword [ebp - 0x15b4], eax
cmp dword [ebp - 0x15b4], 0
jne 0x42a93c
mov dword [ebp - 0x1658], 0xffffffff
jmp 0x42a950
mov edx, dword [ebp - 0x15b4]
sub edx, dword [ebp - 0x26c]
sar edx, 1
mov dword [ebp - 0x1658], edx
mov eax, dword [ebp - 0x1658]
push eax
lea ecx, [ebp - 0x1308]
push ecx
lea ecx, [ebp - 0x26c]
call fcn.0040f7f0
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x15bc], edx
lea eax, [ebp - 0x1308]
push eax
mov ecx, dword [ebp - 0x15bc]
push ecx
lea ecx, [ebp - 0x24]
call fcn.0044a929
lea edx, [ebp - 0x1308]
push edx
lea ecx, [ebp - 0x26c]
call fcn.004118e0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x1308]
call fcn.00402470
jmp 0x42a8ab
mov dword [ebp - 0x130c], 0
jmp 0x42a9cd
mov eax, dword [ebp - 0x130c]
add eax, 1
mov dword [ebp - 0x130c], eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x15c4], ecx
mov edx, dword [ebp - 0x130c]
cmp edx, dword [ebp - 0x15c4]
jge 0x42aaed
cmp dword [ebp - 0x130c], 0
jl 0x42a9fc
mov eax, dword [ebp - 0x130c]
cmp eax, dword [ebp - 0x1c]
jl 0x42aa01
call fcn.0044986d
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x130c]
lea eax, [ecx + edx*4]
mov dword [ebp - 0x15c8], eax
mov ecx, dword [ebp - 0x15c8]
mov edx, dword [ecx]
mov dword [ebp - 0x15cc], edx
xor eax, eax
cmp dword [ebp - 0x15cc], 0
setne al
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x15d0], eax
jne 0x42aa45
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x42aa21
xor edx, edx
jne 0x42aa49
mov eax, dword [ebp - 0x250]
mov dword [ebp - 0x15d4], eax
mov ecx, dword [ebp - 0x15cc]
push ecx
mov edx, dword [ebp - 0x15d4]
push edx
call fcn.0048c808
add esp, 8
mov dword [ebp - 0x15d8], eax
cmp dword [ebp - 0x15d8], 0
jne 0x42aae8
push 0x6b
call fcn.004299e0
add esp, 4
mov dword [ebp - 0x1464], 0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x250]
call fcn.00402470
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x26c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.0044a796
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1464]
jmp 0x42ad40
jmp 0x42a9be
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov ecx, dword [ebp - 0x161c]
mov dword [ecx + 0xe0], eax
mov edx, dword [ebp - 0x161c]
cmp dword [edx + 0xe0], 0
jne 0x42ab76
mov dword [ebp - 0x1468], 0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x250]
call fcn.00402470
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x26c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.0044a796
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1468]
jmp 0x42ad40
mov eax, dword [ebp - 0x161c]
add eax, 0xec
push eax
push 0
mov ecx, dword [ebp - 0x161c]
push ecx
push 0x4351a0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 0x161c]
mov dword [edx + 0xe8], eax
mov eax, dword [ebp - 0x161c]
cmp dword [eax + 0xe8], 0
jne 0x42ac15
mov dword [ebp - 0x146c], 0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x250]
call fcn.00402470
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x26c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.0044a796
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x146c]
jmp 0x42ad40
mov ecx, dword [ebp - 0x161c]
mov edx, dword [ecx + 0xb0]
mov dword [ebp - 0x165c], edx
cmp dword [ebp - 0x165c], 2
jl 0x42ac91
cmp dword [ebp - 0x165c], 3
jle 0x42ac3b
jmp 0x42ac91
push 0
mov eax, dword [ebp - 0x161c]
mov ecx, dword [eax + 0xb0]
push ecx
mov edx, dword [ebp - 0x268]
push edx
lea ecx, [ebp - 0x1394]
call fcn.0043c3a0
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x161c]
lea ecx, [ebp - 0x1394]
mov dword [eax + 0x20], ecx
lea ecx, [ebp - 0x1394]
call fcn.0044e8a7
mov dword [ebp - 0x1310], eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x1394]
call fcn.0044e0c9
jmp 0x42ace5
push 0
mov edx, dword [ebp - 0x161c]
mov eax, dword [edx + 0xb0]
push eax
mov ecx, dword [ebp - 0x268]
push ecx
lea ecx, [ebp - 0x141c]
call fcn.0043c3a0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x161c]
lea eax, [ebp - 0x141c]
mov dword [edx + 0x20], eax
lea ecx, [ebp - 0x141c]
call fcn.0044e8a7
mov dword [ebp - 0x1398], eax
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x141c]
call fcn.0044e0c9
mov dword [ebp - 0x1470], 0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x250]
call fcn.00402470
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x26c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x24]
call fcn.0044a796
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x270]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x274]
call fcn.00402470
mov eax, dword [ebp - 0x1470]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x40]
xor ecx, ebp
call fcn.0048abfc
mov esp, ebp
pop ebp
ret