Function at 0x409347
Capabilities:
Accept command line arguments
Check for time delay via gettickcount

Disassembly:
push 0x24
push 0x41dcb8
call fcn.0040c77c
call fcn.0040387e
mov esi, 0x4041e1
push esi
push 0x16
call fcn.0040dd8f
push esi
push 8
call fcn.0040dd8f
push esi
push 4
call fcn.0040dd8f
push esi
push 2
pop edi
push edi
call fcn.0040dd8f
push esi
push 0xb
call fcn.0040dd8f
push esi
push 0xf
call fcn.0040dd8f
push 0x4042e4
call fcn.0040dc88
xor esi, esi
inc esi
push esi
call sub.IEOOPDLL.dll_setExitDebugLevel
add esp, 0x38
call fcn.0040369c
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_OleInitialize]
push esi
push edi
push esi
call sub.urlmon.dll_CoInternetSetFeatureEnabled
push esi
push edi
push 8
call sub.urlmon.dll_CoInternetSetFeatureEnabled
push esi
push edi
push 5
call sub.urlmon.dll_CoInternetSetFeatureEnabled
push esi
push edi
push 9
call sub.urlmon.dll_CoInternetSetFeatureEnabled
push esi
push edi
push 0xc
call sub.urlmon.dll_CoInternetSetFeatureEnabled
push esi
push edi
push edi
call sub.urlmon.dll_CoInternetSetFeatureEnabled
push esi
push edi
push 3
call sub.urlmon.dll_CoInternetSetFeatureEnabled
push esi
push edi
push 0x1b
call sub.urlmon.dll_CoInternetSetFeatureEnabled
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, eax
mov dword [ebp - 0x20], ebx
mov esi, 0x41a7f0
push esi
call fcn.0040bad0
pop ecx
mov dword [ebp - 0x28], eax
cmp dword [0x435bd4], ebx
jle 0x409449
mov eax, dword [0x435bd8]
push dword [eax + ebx*4]
call fcn.0040bad0
pop ecx
add eax, dword [ebp - 0x28]
add dword [ebp - 0x20], eax
inc ebx
cmp ebx, dword [0x435bd4]
jl 0x40942c
inc dword [ebp - 0x20]
push dword [ebp - 0x20]
call fcn.0040c410
pop ecx
mov dword [ebp - 0x20], eax
xor ebx, ebx
cmp eax, ebx
je 0x4094b4
mov byte [eax], bl
cmp dword [0x435bd4], ebx
jle 0x40948d
mov eax, dword [0x435bd8]
push dword [eax + ebx*4]
push dword [ebp - 0x20]
call fcn.0040d760
push esi
push dword [ebp - 0x20]
call fcn.0040d760
add esp, 0x10
inc ebx
cmp ebx, dword [0x435bd4]
jl 0x409468
push dword [ebp - 0x20]
push 0x480
push str.WinMain
push str..IEOOP.cpp
push 0x2bc
call sub.IEOOPDLL.dll_loggingL
push dword [ebp - 0x20]
call fcn.0040c4d3
add esp, 0x18
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x1c], ebx
jle 0x409500
mov eax, dword [edi + ebx*4]
cmp word [eax], 0x7b
je 0x4094cd
inc ebx
cmp ebx, dword [ebp - 0x1c]
jl 0x4094bc
jmp 0x409500
lea esi, [edi + ebx*4]
mov eax, dword [esi]
mov dword [0x4202c8], eax
push 0x4217c0
push dword [esi]
call dword [sym.imp.ole32.dll_CLSIDFromString]
mov eax, dword [ebp - 0x1c]
dec eax
cmp ebx, eax
jge 0x4094f6
mov eax, dword [esi + 4]
mov dword [0x4202d0], eax
jmp 0x409500
mov dword [0x4202d0], str.000000
cmp dword [0x4202d8], 0
jne 0x40950e
call fcn.00402cf4
cmp dword [0x4202c8], 0
jne 0x40955f
mov eax, dword [edi + 4]
push str._UnregServer
push eax
call fcn.0040d6b9
pop ecx
pop ecx
test eax, eax
jne 0x40955f
cmp dword [ebp - 0x1c], 3
jne 0x409539
mov eax, dword [edi + 8]
mov dword [0x4202d0], eax
call fcn.00402f0a
cmp al, 1
je 0x40955f
mov esi, LoadRegTypeLib
mov dword [0x435a84], 1
push 0
call sub.IEOOPDLL.dll_setExitDebugLevel
mov eax, esi
jmp 0x409922
push 0x419790
push dword [ebp + 8]
push 0x4202e8
mov ebx, 0x435a98
mov ecx, ebx
call fcn.00403cbe
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x435ac8], eax
xor esi, esi
mov dword [ebp - 0x20], esi
cmp dword [ebp - 0x1c], esi
jle 0x4095eb
mov eax, dword [edi + esi*4]
mov dword [ebp - 0x24], eax
push str._UnregServer
push eax
call fcn.0040d6b9
pop ecx
pop ecx
test eax, eax
je 0x409608
push str._RegServer
push dword [ebp - 0x24]
call fcn.0040d6b9
pop ecx
pop ecx
test eax, eax
je 0x409624
push str._SelfRegServer
push dword [ebp - 0x24]
call fcn.0040d6b9
pop ecx
pop ecx
test eax, eax
je 0x40966c
push str._SelfUnregServer
push dword [ebp - 0x24]
call fcn.0040d6b9
pop ecx
pop ecx
test eax, eax
je 0x409689
inc esi
cmp esi, dword [ebp - 0x1c]
jl 0x40958d
mov ecx, ebx
call fcn.0040417f
mov ecx, ebx
cmp dword [0x435a78], 0
je 0x409705
push 0
jmp 0x409707
push 0
push 1
mov ecx, ebx
call fcn.00406db2
test eax, eax
jmp 0x4096b9
mov esi, 0x8000058b
jmp 0x409547
call dword [0x4206fc]
inc esi
cmp esi, dword [ebp - 0x1c]
jge 0x4096ee
mov eax, dword [edi + esi*4]
mov dword [0x4202c8], eax
push 0
push 1
mov ecx, ebx
call fcn.00406d43
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x4096ee
push 1
push str.tlogpsdll
call dword [sym.imp.ole32.dll_CoLoadLibrary]
mov esi, eax
test esi, esi
je 0x40961a
push str.DllRegisterServer
jmp 0x4096da
call fcn.00402be0
call fcn.00402e0f
push 0x4217c0
push dword [0x4202c8]
call dword [sym.imp.ole32.dll_CLSIDFromString]
jmp 0x40963c
call fcn.00402e0f
call fcn.00402f0a
xor esi, esi
cmp dword [0x4202c8], esi
je 0x40961a
cmp dword [0x4202d0], esi
je 0x40961a
push esi
push 1
mov ecx, ebx
call fcn.00406db2
cmp eax, esi
mov dword [ebp - 0x20], eax
jne 0x4096ee
push 1
push str.tlogpsdll
call dword [sym.imp.ole32.dll_CoLoadLibrary]
mov esi, eax
test esi, esi
je 0x40961a
push str.DllUnregisterServer
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4096e7
call eax
push esi
call dword [sym.imp.ole32.dll_CoFreeLibrary]
mov dword [0x435a84], 1
push 0
call sub.IEOOPDLL.dll_setExitDebugLevel
pop ecx
jmp 0x409901
push 1
push 4
call fcn.004045df
push dword [ebp + 8]
call fcn.00403627
mov dword [0x435a88], eax
push 0x1c
call fcn.0040ba64
pop ecx
pop ecx
mov esi, eax
test esi, esi
je 0x409735
push 7
pop ecx
xor eax, eax
mov edi, esi
rep stosd dword es:[edi], eax
jmp 0x409737
xor esi, esi
mov dword [ebp - 0x28], esi
call fcn.00409174
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], 0x64
xor edi, edi
push edi
push edi
push edi
push esi
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, edi
je 0x4098e3
cmp eax, 0xffffffff
je 0x4098e3
push esi
call dword [sym.imp.USER32.dll_TranslateMessage]
cmp dword [esi + 4], 0x50
jne 0x409795
cmp dword [0x435a7c], 1
jne 0x409795
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [ebp - 0x24]
mov dword [ebp - 0x24], eax
cmp ecx, dword [ebp - 0x2c]
jb 0x40974f
mov eax, dword [esi + 4]
cmp eax, 0x100
je 0x4097c6
cmp eax, 0x102
je 0x4097c6
cmp eax, 0x101
je 0x4097c6
cmp eax, 0x104
je 0x4097c6
cmp eax, 0x105
je 0x4097c6
cmp eax, 0x106
jne 0x409887
mov ecx, dword [esi]
cmp ecx, edi
je 0x409887
cmp eax, 0x102
jne 0x4097e8
mov eax, dword [esi + 8]
cmp eax, 0x20
jb 0x4097e8
cmp eax, 0x7f
jbe 0x409887
push ecx
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
and dword [ebp + 8], 0
lea eax, [ebp + 8]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x30], eax
push edi
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
mov dword [ebp - 0x34], edi
test edi, edi
je 0x40974f
lea eax, [ebp + 8]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp + 8]
je 0x409800
test edi, edi
je 0x40974f
push 0x1c
call fcn.0040ba64
pop ecx
mov edx, eax
xor eax, eax
test edx, edx
je 0x409851
push 7
pop ecx
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, edx
mov edi, dword [ebp - 0x34]
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esi]
mov dword [eax], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [esi + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [esi + 0x18]
mov dword [eax + 0x18], ecx
push eax
push edi
call fcn.0040616b
pop ecx
pop ecx
jmp 0x40974f
mov dword [ebp - 4], edi
push esi
call dword [sym.imp.USER32.dll_DispatchMessageA]
mov dword [ebp - 4], 0xfffffffe
jmp 0x40974f
push esi
call fcn.00409ebf
pop ecx
call fcn.00409336
mov ecx, ebx
call fcn.00404621
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, ebx
call fcn.0040458d
call dword [sym.imp.ole32.dll_OleUninitialize]
mov dword [0x435a84], 1
push 0
call sub.IEOOPDLL.dll_setExitDebugLevel
mov eax, dword [ebp - 0x20]
pop ecx
call fcn.0040c7c1
ret 0x10