Function at 0x407470
Capabilities:
Get number of processors
Read .ini file
Read file on windows
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5c5d93
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x617560]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
push esi
push edi
mov eax, dword [0x617560]
xor eax, esp
push eax
lea eax, [esp + 0x130]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x2c], ebx
call fcn.004c8ae4
mov edi, dword [0x636fb4]
mov eax, dword [edi + 0x58]
test eax, eax
mov dword [esp + 0x30], edi
jne 0x4074d6
call fcn.00414150
jmp 0x407566
lea eax, [edi + 0x50]
push eax
mov dword [esp + 0x24], eax
call fcn.0044ecd0
mov ecx, dword [edi + 0x58]
add esp, 4
test eax, eax
mov dword [edi + 0x64], ecx
jne 0x4074f7
call fcn.00414150
jmp 0x407566
push 3
lea eax, [esp + 0x14]
push eax
lea ecx, [edi + 0x3c]
call fcn.00404c00
mov dword [esp + 0x138], 0
mov esi, dword [esp + 0x10]
push ecx
add esi, 0xfffffff0
mov dword [esp + 0x18], esp
mov edi, esp
push esi
call fcn.00405220
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.0044eae0
add esp, 4
test eax, eax
jne 0x407542
mov edi, dword [esp + 0x20]
call fcn.0044ef10
mov dword [esp + 0x138], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407566
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [ebx + 0xd20]
mov dword [ebx + 0xa0], eax
mov eax, dword [ebx + 0xd24]
mov dword [ebx + 0xa4], eax
add eax, 0xffffff62
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
xor edi, edi
mov esi, 1
fmul qword [str.ffffff]
mov dword [ebx + 0x98], edi
mov dword [ebx + 0x9c], edi
mov dword [ebx + 0xac], esi
fadd qword [0x5cfbe8]
mov dword [ebx + 0xb4], eax
mov dword [ebx + 0xa8], esi
call fcn.004ec640
mov dword [ebx + 0xb0], eax
call fcn.0044d770
call fcn.004c5661
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4075e6
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov dword [esp + 0x138], esi
call fcn.004c5661
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x407617
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
push 0x64
lea ecx, [esp + 0x58]
push edi
push ecx
mov byte [esp + 0x144], 2
call fcn.004ea260
add esp, 0xc
call fcn.004c9922
mov eax, dword [eax + 8]
push 0x64
lea edx, [esp + 0x58]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
call fcn.004c5661
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40766f
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x14]
mov byte [esp + 0x13c], 3
call fcn.00416360
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x13c], 4
call fcn.00404e30
mov byte [esp + 0x138], 3
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4076cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x1c]
push 0x5c
push esi
call fcn.004e40b2
add esp, 8
cmp eax, edi
jne 0x4076e7
or esi, 0xffffffff
jmp 0x4076eb
sub eax, esi
mov esi, eax
push esi
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404c00
push str.logo.bmp
push eax
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0x144], 5
call fcn.00404c80
add esp, 0xc
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x13c], 6
call fcn.00404e30
mov byte [esp + 0x138], 5
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40774f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x138], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407777
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404c00
push str.dvr.dat
push eax
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0x144], 7
call fcn.00404c80
add esp, 0xc
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x13c], 8
call fcn.00404e30
mov byte [esp + 0x138], 7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4077db
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x138], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407803
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push esi
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x24]
call fcn.00404c00
push str._rtcc.tmp
push eax
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0x144], 9
call fcn.00404c80
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x13c], 0xa
call fcn.00404e30
mov byte [esp + 0x138], 9
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407867
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x138], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40788f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x20]
push ecx
push 1
push str.UseDefaultLogo
push str.Logo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
cmp eax, 1
je 0x4078e5
mov edx, dword [esp + 0x1c]
push 0x2050
push edi
push edi
push edi
push edx
push edi
call dword [sym.imp.USER32.dll_LoadImageA]
cmp eax, edi
je 0x4078d9
push eax
mov eax, dword [ebx + 0xd4c]
push edi
push 0x172
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4078e5
push edi
lea ecx, [ebx + 0xd2c]
call fcn.004d31a3
call fcn.004c5661
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4078ff
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x138], 0xb
call fcn.004c5661
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x407931
push 0x80004005
call fcn.00404150
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
push edi
push 0x80
push 4
push edi
push 3
mov byte [esp + 0x14c], 0xc
mov ecx, dword [esp + 0x3c]
push 0xc0000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x10], esi
je 0x407ac2
push 0x64
lea edx, [esp + 0xc0]
push edi
push edx
call fcn.004ea260
add esp, 0xc
push edi
lea eax, [esp + 0x40]
push eax
push 0x64
lea ecx, [esp + 0xc8]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [esp + 0x3c], edi
je 0x407a27
push 0x6fd
lea edx, [esp + 0x14]
push edx
call fcn.0041c990
lea ecx, [esp + 0xbc]
mov byte [esp + 0x138], 0xd
mov eax, dword [eax]
push ecx
push eax
lea edx, [esp + 0x20]
push edx
call fcn.00405640
mov byte [esp + 0x144], 0xc
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4079fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x18], esp
mov edi, esp
push eax
call fcn.00405220
add eax, 0x10
add esp, 4
mov dword [edi], eax
call fcn.0044db50
add esp, 4
jmp 0x407abb
push 0
call fcn.004e5aed
add esp, 4
lea ecx, [esp + 0x34]
push ecx
mov esi, 0x5f5854
lea edi, [esp + 0x18]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
call fcn.00405a10
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x13c], 0xe
call fcn.00404e30
mov byte [esp + 0x138], 0xc
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x407a86
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
cmp dword [eax - 4], 1
mov esi, dword [eax - 0xc]
jle 0x407aa3
mov ecx, esi
push ecx
lea ecx, [esp + 0x28]
call fcn.00405400
mov eax, dword [esp + 0x24]
push 0
lea edx, [esp + 0x44]
push edx
push esi
push eax
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov esi, dword [esp + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, ebx
call fcn.00415b00
mov eax, ebx
call fcn.00415da0
call fcn.00409c70
call fcn.00414920
push 0
lea ecx, [ebx + 0x15a4]
call fcn.004d31a3
push 0
lea ecx, [ebx + 0x15f8]
call fcn.004d31a3
push ebx
call fcn.0040f7b0
push ebx
call fcn.0040f2c0
mov ecx, dword [esp + 0x30]
push ecx
call fcn.00450f50
call fcn.0046d490
mov ecx, dword [ebx + 0xd24]
mov edx, eax
push ebx
lea eax, [ebx + 0xa8]
push eax
mov eax, dword [ebx + 0xd20]
mov dword [ebx + 0xd8], edx
mov ebx, edx
call fcn.0046f2b0
mov edi, esi
mov eax, dword [edi + 0xd8]
mov ecx, dword [eax + 0x3e58]
cmp ecx, 2
jg 0x407b74
imul ecx, ecx, 0x320c
mov edx, 1
mov dword [ecx + eax + 0x3e68], edx
mov ecx, dword [eax + 0x3e58]
imul ecx, ecx, 0x320c
mov dword [ecx + eax + 0x3e70], 0xffffffff
add dword [eax + 0x3e58], edx
mov ecx, dword [edi + 0xd8]
push 5
call fcn.004d31a3
mov eax, dword [edi + 0xd8]
xor ecx, ecx
mov dword [eax + 0xa3dc], 0xffffffff
cmp dword [eax + 0x3e68], ecx
je 0x407baf
cmp dword [eax + 0x3e54], ecx
je 0x407baf
mov dword [eax + 0x3e54], ecx
mov dword [eax + 0x3e4c], ecx
mov esi, dword [edi + 0xd8]
lea ebx, [esi + 0xa3c4]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0xa3a8]
test eax, eax
jbe 0x407be1
add eax, 0xffffffff
mov dword [esi + 0xa3a8], eax
jne 0x407be1
mov dword [esi + 0x3e50], 1
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [edi + 0x7c0]
test eax, eax
je 0x407bf5
mov eax, dword [eax + 0x20]
push str.ButtonSnap
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x6c4]
test eax, eax
je 0x407c0d
mov eax, dword [eax + 0x20]
push str.ButtonStart
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x718]
test eax, eax
je 0x407c25
mov eax, dword [eax + 0x20]
push str.ButtonStartRecord
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x76c]
test eax, eax
je 0x407c3d
mov eax, dword [eax + 0x20]
push str.ButtonStopRecord
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x814]
test eax, eax
je 0x407c55
mov eax, dword [eax + 0x20]
push str.ButtonStop
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1670]
test eax, eax
je 0x407c6d
mov eax, dword [eax + 0x20]
push str.CheckBoxAudio
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x18cc]
test eax, eax
je 0x407c85
mov eax, dword [eax + 0x20]
push str.ButtonPage4
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1920]
test eax, eax
je 0x407c9d
mov eax, dword [eax + 0x20]
push str.ButtonPage6
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1974]
test eax, eax
je 0x407cb5
mov eax, dword [eax + 0x20]
push str.ButtonPage8
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x19c8]
test eax, eax
je 0x407ccd
mov eax, dword [eax + 0x20]
push str.ButtonPage9
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1a1c]
test eax, eax
je 0x407ce5
mov eax, dword [eax + 0x20]
push str.ButtonPage10
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1a70]
test eax, eax
je 0x407cfd
mov eax, dword [eax + 0x20]
push str.ButtonPage16
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1ac4]
test eax, eax
je 0x407d15
mov eax, dword [eax + 0x20]
push str.ButtonPage25
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1b18]
test eax, eax
je 0x407d2d
mov eax, dword [eax + 0x20]
push str.ButtonPage36
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1b6c]
test eax, eax
je 0x407d45
mov eax, dword [eax + 0x20]
push str.ButtonFullScreen
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1bc0]
test eax, eax
je 0x407d5d
mov eax, dword [eax + 0x20]
push str.ButtonPageUp
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1c14]
test eax, eax
je 0x407d75
mov eax, dword [eax + 0x20]
push str.ButtonPageDown
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1c68]
test eax, eax
je 0x407d8d
mov eax, dword [eax + 0x20]
push str.CheckBoxPageCycle
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1498]
test eax, eax
je 0x407da5
mov eax, dword [eax + 0x20]
push str.ButtonConfig
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1348]
test eax, eax
je 0x407dbd
mov eax, dword [eax + 0x20]
push str.ButtonMinimize
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x12f4]
test eax, eax
je 0x407dd5
mov eax, dword [eax + 0x20]
push str.ButtonExit
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xfd0]
test eax, eax
je 0x407ded
mov eax, dword [eax + 0x20]
push str.ButtonColumn
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1024]
test eax, eax
je 0x407e05
mov eax, dword [eax + 0x20]
push str.ButtonColumn
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x8bc]
test eax, eax
je 0x407e1d
mov eax, dword [eax + 0x20]
push str.ButtonUp
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x910]
test eax, eax
je 0x407e35
mov eax, dword [eax + 0x20]
push str.ButtonLeft
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x964]
test eax, eax
je 0x407e4d
mov eax, dword [eax + 0x20]
push str.ButtonRight
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x9b8]
test eax, eax
je 0x407e65
mov eax, dword [eax + 0x20]
push str.ButtonDown
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xa0c]
test eax, eax
je 0x407e7d
mov eax, dword [eax + 0x20]
push str.CheckBoxScan
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xa60]
test eax, eax
je 0x407e95
mov eax, dword [eax + 0x20]
push str.ButtonZoomin
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xab4]
test eax, eax
je 0x407ead
mov eax, dword [eax + 0x20]
push str.ButtonZoomout
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xb08]
test eax, eax
je 0x407ec5
mov eax, dword [eax + 0x20]
push str.ButtonZoomout
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xb5c]
test eax, eax
je 0x407edd
mov eax, dword [eax + 0x20]
push str.ButtonZoomin
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xbb0]
test eax, eax
je 0x407ef5
mov eax, dword [eax + 0x20]
push str.ButtonZoomin
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xc04]
test eax, eax
je 0x407f0d
mov eax, dword [eax + 0x20]
push str.ButtonZoomout
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xc58]
test eax, eax
je 0x407f25
mov eax, dword [eax + 0x20]
push str.CheckBoxLight
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xcac]
test eax, eax
je 0x407f3d
mov eax, dword [eax + 0x20]
push str.CheckBoxBrush
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xed4]
test eax, eax
je 0x407f55
mov eax, dword [eax + 0x20]
push str.ButtonPtzSet
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0xe80]
test eax, eax
je 0x407f6d
mov eax, dword [eax + 0x20]
push str.ButtonPtzGo
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x10a8]
test eax, eax
je 0x407f85
mov eax, dword [eax + 0x20]
push str.ButtonBase
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x10fc]
test eax, eax
je 0x407f9d
mov eax, dword [eax + 0x20]
push str.ButtonBase
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1150]
test eax, eax
je 0x407fb5
mov eax, dword [eax + 0x20]
push str.ButtonBase
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x11a4]
test eax, eax
je 0x407fcd
mov eax, dword [eax + 0x20]
push str.ButtonBase
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x12a0]
test eax, eax
je 0x407fe5
mov eax, dword [eax + 0x20]
push str.ButtonBase
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x124c]
test eax, eax
je 0x407ffd
mov eax, dword [eax + 0x20]
push str.ButtonBase
push eax
call sub.intfd.dll_Ordinal_46
lea eax, [edi + 0x1540]
test eax, eax
je 0x408015
mov eax, dword [eax + 0x20]
push str.ButtonBase
push eax
call sub.intfd.dll_Ordinal_46
push 0x632568
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push str.0123456789_:
mov esi, 0x633e28
mov ebx, 0x632ce8
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x6345a8
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a64
mov esi, 0x634128
mov ebx, 0x632928
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x632aa8
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a68
mov esi, 0x6318a8
mov ebx, 0x6335e8
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x630fa8
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a6c
mov esi, 0x630768
mov ebx, 0x6327a8
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x631668
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a70
mov esi, 0x631368
mov ebx, 0x632b68
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x6344e8
push 0x18
push 8
push ecx
mov esi, 0x631068
mov ebx, 0x6323e8
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a74
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x631ea8
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a78
mov esi, 0x633768
mov ebx, 0x6302e8
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x630228
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a7c
mov esi, 0x631f68
mov ebx, 0x631c68
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x633d68
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a80
mov esi, 0x630be8
mov ebx, 0x632268
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x631de8
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a84
mov esi, 0x633a68
mov ebx, 0x631728
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x631ba8
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a88
mov esi, 0x6332e8
mov ebx, 0x633168
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x634428
push 0x18
mov esi, 0x630468
mov ebx, 0x632628
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a8c
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
add esp, 0x10
push 0x630ee8
push 0x18
push 8
push ecx
mov ecx, esp
mov dword [esp + 0x24], esp
push 0x5f5a90
mov esi, 0x632e68
mov ebx, 0x630a68
call fcn.00416360
mov edx, esi
mov ecx, ebx
call fcn.0044de10
mov eax, dword [0x636fb0]
add esp, 0x10
test eax, eax
jne 0x4082ba
push 0x8490
call fcn.004c495b
add esp, 4
test eax, eax
je 0x4082b3
mov esi, eax
call fcn.00448400
jmp 0x4082b5
xor eax, eax
mov dword [0x636fb0], eax
mov esi, eax
mov dword [edi + 0xdc], eax
call fcn.00448550
call fcn.00441ee0
mov esi, dword [edi + 0x1090]
cmp dword [edi + 0x108c], esi
mov edx, dword [eax]
lea ebx, [edi + 0x1088]
mov dword [esp + 0x10], edx
jbe 0x4082eb
call fcn.004e4f35
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
mov dword [esp + 0x14], eax
jbe 0x408300
call fcn.004e4f35
mov eax, dword [esp + 0x14]
push esi
push ebx
push eax
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.00416b20
mov esi, dword [esp + 0x10]
test esi, esi
je 0x408451
push 0x18
call fcn.004c495b
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x138], 0xf
je 0x408344
push eax
mov ecx, esi
call fcn.00441980
mov esi, eax
mov dword [esp + 0x10], eax
jmp 0x40834a
xor esi, esi
mov dword [esp + 0x10], esi
mov byte [esp + 0x138], 0xc
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
test al, al
je 0x408441
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
push 0
push 0x61aa58
push 0x61aa44
mov ebx, eax
push 0
push ebx
call fcn.004e4b01
add esp, 0x14
test eax, eax
je 0x408427
push 0
push 0x61aa58
push 0x61aa44
push 0
push ebx
call fcn.004e4b01
mov ebx, eax
add esp, 0x14
cmp dword [ebx + 0x170], 1
jne 0x4083c0
mov edx, dword [ebx]
mov eax, dword [edx + 0x2c]
mov ecx, ebx
call eax
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [edi + 0x109c]
test eax, eax
lea esi, [edi + 0x1098]
mov dword [esp + 0x14], ebx
jne 0x4083d8
xor edx, edx
jmp 0x4083e0
mov edx, dword [esi + 8]
sub edx, eax
sar edx, 2
test eax, eax
je 0x4083fd
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 2
cmp edx, ecx
jae 0x4083fd
mov eax, dword [esi + 8]
mov dword [eax], ebx
add eax, 4
mov dword [esi + 8], eax
jmp 0x40841c
mov ebx, dword [esi + 8]
cmp eax, ebx
jbe 0x408409
call fcn.004e4f35
push ebx
push esi
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x40]
push edx
mov eax, esi
call fcn.00416a90
add dword [edi + 0x1084], 1
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
test al, al
jne 0x408363
mov eax, esi
call fcn.00441a10
push esi
call fcn.004c4986
add esp, 4
mov ebx, dword [esp + 0x30]
cmp dword [ebx + 0x78], 0
je 0x40847d
mov eax, dword [ebx + 0xc8]
test eax, eax
jbe 0x40847d
cmp byte [ebx + 0xfc], 0
je 0x408477
cmp dword [0x636fac], 0
ja 0x40847d
push eax
call fcn.00479fa0
lea eax, [esp + 0x44]
push eax
call dword [sym.imp.ole32.dll_CoCreateGuid]
movzx eax, word [esp + 0x48]
cdq
mov ecx, 0x7b
idiv ecx
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push 0
push 0xea60
push 0x3d
add edx, 0xf3
mov dword [edi + 0x16c8], edx
mov edx, dword [edi + 0x20]
push edx
call esi
mov eax, dword [edi + 0x20]
push 0
push 0x3e8
push 0x3e
push eax
call esi
mov ecx, dword [edi + 0x20]
push 0
push 0x7d0
push 0x42
push ecx
call esi
mov edx, dword [edi + 0x20]
push 0
push 0x2710
push 0x40
push edx
call esi
mov eax, dword [edi + 0x20]
push 0
push 0x493e0
push 0x41
push eax
call esi
mov ecx, dword [edi + 0x20]
push 0
push 0x1b7740
push 0x43
push ecx
call esi
mov edx, dword [edi + 0xd24]
mov eax, dword [edi + 0xd20]
push 0x40
push edx
push eax
push 0
push 0
push 0
mov ecx, edi
call fcn.004d33ae
mov esi, 5
call fcn.00409790
mov edi, dword [esp + 0x2c]
call fcn.00416190
xor esi, esi
call fcn.00409690
mov ecx, 0x637938
call fcn.004d048c
cmp dword [ebx + 0xf0], esi
je 0x408557
mov ecx, dword [edi + 0x20]
push ecx
call dword [sym.imp.hook.dll_setMyHook]
add esp, 4
call fcn.0044f2b0
push 0
push 0x3e9
mov ecx, edi
call fcn.004d2fe2
mov ecx, eax
call fcn.004d31a3
mov byte [esp + 0x138], 0xb
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x408599
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x138], 3
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4085c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x138], 2
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4085e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x138], 1
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408611
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x138], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40863c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x130]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.004e3543
mov esp, ebp
pop ebp
ret