Function at 0x4078f0
Capabilities:
Check if file exists
Copy file
Create directory
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x476b60
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov eax, dword [0x492afc]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
xor edi, edi
push str.UpdateService.exe
lea ecx, [esp + 0x28]
mov dword [esp + 0x54], edi
call fcn.004027e0
push str.ResPacket.dll
lea ecx, [esp + 0x34]
mov byte [esp + 0x54], 1
call fcn.004027e0
mov dword [esp + 0x14], edi
lea eax, [esp + 0x14]
push eax
mov byte [esp + 0x54], 3
call fcn.00415eb0
mov eax, dword [esp + 0x18]
mov ebx, dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
add esp, 4
cmp eax, edi
je 0x407985
mov esi, eax
mov eax, dword [eax]
cmp eax, edi
je 0x407985
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov ecx, dword [esi]
push eax
push ecx
call ebx
cmp eax, edi
jne 0x407987
push 0x8007000e
call fcn.00414020
xor eax, eax
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push eax
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4079ca
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4079c3
mov eax, dword [esi]
test eax, eax
je 0x4079c3
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov edx, dword [esi]
push eax
push edx
call ebx
test eax, eax
jne 0x4079c5
push 0x8007000e
call fcn.00414020
xor eax, eax
push 0
push eax
call ebp
mov dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x54], 4
call fcn.00415f90
mov esi, dword [esp + 0x20]
add esp, 4
test esi, esi
je 0x407a0d
mov eax, dword [esi]
test eax, eax
je 0x407a0d
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov ecx, dword [esi]
push eax
push ecx
call ebx
test eax, eax
jne 0x407a0f
push 0x8007000e
call fcn.00414020
xor eax, eax
push eax
call edi
xor edi, edi
test eax, eax
jne 0x407a47
mov esi, dword [esp + 0x1c]
cmp esi, edi
je 0x407a41
mov eax, dword [esi]
cmp eax, edi
je 0x407a41
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov edx, dword [esi]
push eax
push edx
call ebx
cmp eax, edi
jne 0x407a43
push 0x8007000e
call fcn.00414020
xor eax, eax
push edi
push eax
call ebp
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x54], 8
call fcn.00415ae0
add esp, 4
test eax, eax
jne 0x407bde
mov esi, dword [esp + 0x18]
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp esi, edi
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
je 0x407abd
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x407ab5
test esi, esi
je 0x407ab5
mov eax, dword [esi]
test eax, eax
je 0x407a9c
push eax
call ebp
mov eax, dword [esi + 4]
test eax, eax
je 0x407aac
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x1c]
xor ebx, ebx
cmp esi, ebx
je 0x407afb
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x407af7
cmp esi, ebx
je 0x407af7
mov eax, dword [esi]
cmp eax, ebx
je 0x407ade
push eax
call ebp
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x407aee
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + 0x14]
cmp esi, ebx
je 0x407b37
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x407b33
cmp esi, ebx
je 0x407b33
mov eax, dword [esi]
cmp eax, ebx
je 0x407b1a
push eax
call ebp
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x407b2a
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x14], ebx
mov esi, dword [esp + 0x30]
cmp esi, ebx
je 0x407b6b
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x407b6b
mov eax, dword [esi]
cmp eax, ebx
je 0x407b52
push eax
call ebp
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x407b62
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x24]
cmp esi, ebx
je 0x407b9f
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x407b9f
mov eax, dword [esi]
cmp eax, ebx
je 0x407b86
push eax
call ebp
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x407b96
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x5c]
cmp esi, ebx
je 0x407bd7
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x407bd7
cmp esi, ebx
je 0x407bd7
mov eax, dword [esi]
cmp eax, ebx
je 0x407bbe
push eax
call ebp
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x407bce
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
xor eax, eax
jmp 0x4087ac
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x30]
call fcn.004023a0
mov dword [esp + 0x28], edi
lea edx, [esp + 0x28]
mov byte [esp + 0x50], 9
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407670
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
call fcn.00402230
mov dword [esp + 0x58], edi
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x54], 0xa
call fcn.004023a0
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x38]
call fcn.004023a0
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x38]
call fcn.00402230
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x1c]
call fcn.00402230
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
call fcn.004023a0
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x24]
call fcn.00402230
mov eax, dword [esp + 0x20]
cmp eax, edi
je 0x407c7b
mov ecx, dword [eax]
jmp 0x407c7d
xor ecx, ecx
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x407c89
mov eax, dword [eax]
jmp 0x407c8b
xor eax, eax
push edi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x407d02
lea ecx, [esp + 0x58]
call fcn.00402910
lea ecx, [esp + 0x28]
call fcn.00402910
lea ecx, [esp + 0x34]
call fcn.00402910
lea ecx, [esp + 0x2c]
call fcn.00402910
lea ecx, [esp + 0x20]
call fcn.00402910
lea ecx, [esp + 0x18]
call fcn.00402910
lea ecx, [esp + 0x1c]
call fcn.00402910
lea ecx, [esp + 0x14]
call fcn.00402910
lea ecx, [esp + 0x30]
call fcn.00402910
lea ecx, [esp + 0x24]
call fcn.00402910
lea ecx, [esp + 0x5c]
call fcn.00402910
xor eax, eax
jmp 0x4087ac
mov edi, 0x4949e8
jmp 0x407d10
push edi
lea ecx, [esp + 0x40]
call fcn.004027e0
push edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0x54], 0xb
call fcn.004027e0
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xc
call fcn.0040a3f0
mov esi, eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0x60]
mov byte [esp + 0x58], 0xd
call fcn.0040a3f0
mov ecx, dword [esi]
test ecx, ecx
je 0x407d65
mov ecx, dword [ecx]
jmp 0x407d67
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x407d71
mov eax, dword [eax]
jmp 0x407d73
xor eax, eax
xor ebp, ebp
push ebp
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
mov eax, dword [esp + 0x40]
sete bl
cmp eax, ebp
je 0x407dc9
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x407dc5
cmp esi, ebp
je 0x407dc5
mov eax, dword [esi]
cmp eax, ebp
je 0x407dac
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407dbc
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x40], ebp
mov esi, dword [esp + 0x44]
cmp esi, ebp
je 0x407e0d
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x407e09
cmp esi, ebp
je 0x407e09
mov eax, dword [esi]
cmp eax, ebp
je 0x407df0
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407e00
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x44], ebp
mov esi, dword [esp + 0x38]
cmp esi, ebp
je 0x407e4d
lea ecx, [esi + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x407e49
mov eax, dword [esi]
cmp eax, ebp
je 0x407e30
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407e40
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x38], ebp
mov byte [esp + 0x50], 0xa
mov esi, dword [esp + 0x3c]
cmp esi, ebp
je 0x407e92
lea edx, [esi + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x407e8e
mov eax, dword [esi]
cmp eax, ebp
je 0x407e75
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407e85
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x3c], ebp
test bl, bl
jne 0x407ef1
add edi, 0x3c
cmp edi, 0x494b8c
jl 0x407d10
mov ebp, dword [esp + 0x2c]
push ecx
mov eax, esp
mov dword [esp + 0x48], esp
mov dword [eax], ebp
test ebp, ebp
je 0x407ec0
lea edx, [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
call fcn.00416070
mov esi, dword [sym.imp.OLEAUT32.dll_VariantInit]
add esp, 4
test eax, eax
jne 0x40819f
test ebp, ebp
je 0x408170
mov eax, dword [ebp]
test eax, eax
je 0x408170
push eax
call esi
jmp 0x408172
mov esi, dword [esp + 0x58]
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp esi, ebp
je 0x407f33
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x407f33
mov eax, dword [esi]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp eax, ebp
je 0x407f18
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407f28
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
jmp 0x407f39
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [esp + 0x28]
cmp esi, ebp
je 0x407f6d
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x407f6d
mov eax, dword [esi]
cmp eax, ebp
je 0x407f54
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407f64
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x34]
cmp esi, ebp
je 0x407fa1
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x407fa1
mov eax, dword [esi]
cmp eax, ebp
je 0x407f88
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407f98
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x2c]
cmp esi, ebp
je 0x407fd5
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x407fd5
mov eax, dword [esi]
cmp eax, ebp
je 0x407fbc
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x407fcc
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x20]
cmp esi, ebp
je 0x408009
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x408009
mov eax, dword [esi]
cmp eax, ebp
je 0x407ff0
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x408000
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x18]
cmp esi, ebp
je 0x408045
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x408041
cmp esi, ebp
je 0x408041
mov eax, dword [esi]
cmp eax, ebp
je 0x408028
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x408038
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x18], ebp
mov esi, dword [esp + 0x1c]
cmp esi, ebp
je 0x408081
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x40807d
cmp esi, ebp
je 0x40807d
mov eax, dword [esi]
cmp eax, ebp
je 0x408064
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x408074
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x14]
cmp esi, ebp
je 0x4080bd
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x4080b9
cmp esi, ebp
je 0x4080b9
mov eax, dword [esi]
cmp eax, ebp
je 0x4080a0
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x4080b0
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x14], ebp
mov esi, dword [esp + 0x30]
cmp esi, ebp
je 0x4080f1
lea edx, [esi + 8]
push edx
call edi
test eax, eax
jne 0x4080f1
mov eax, dword [esi]
cmp eax, ebp
je 0x4080d8
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x4080e8
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x24]
cmp esi, ebp
je 0x408125
lea eax, [esi + 8]
push eax
call edi
test eax, eax
jne 0x408125
mov eax, dword [esi]
cmp eax, ebp
je 0x40810c
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x40811c
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x5c]
cmp esi, ebp
je 0x407bd7
lea ecx, [esi + 8]
push ecx
call edi
test eax, eax
jne 0x407bd7
cmp esi, ebp
je 0x407bd7
mov eax, dword [esi]
cmp eax, ebp
je 0x408150
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x408160
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
xor eax, eax
jmp 0x4087ac
xor eax, eax
test ebp, ebp
je 0x40817b
mov edx, dword [ebp]
jmp 0x40817d
xor edx, edx
mov ecx, str.eng.dll
lea eax, [eax + eax - 0xe]
sub eax, ecx
add edx, eax
lea ebx, [ebx]
movzx eax, word [ecx]
mov word [edx + ecx], ax
add ecx, 2
test ax, ax
jne 0x408190
mov edi, dword [esp + 0x34]
test edi, edi
je 0x4081ab
mov ecx, dword [edi]
jmp 0x4081ad
xor ecx, ecx
test ebp, ebp
je 0x4081b6
mov eax, dword [ebp]
jmp 0x4081b8
xor eax, eax
push 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40845e
mov esi, dword [esp + 0x58]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test esi, esi
je 0x408208
lea ecx, [esi + 8]
push ecx
call ebx
test eax, eax
jne 0x408208
mov eax, dword [esi]
test eax, eax
je 0x4081ef
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x4081ff
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x28]
test esi, esi
je 0x408240
lea edx, [esi + 8]
push edx
call ebx
test eax, eax
jne 0x408240
mov eax, dword [esi]
test eax, eax
je 0x408227
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x408237
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
test edi, edi
je 0x408274
lea eax, [edi + 8]
push eax
call ebx
test eax, eax
jne 0x408274
mov eax, dword [edi]
test eax, eax
je 0x40825b
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
test eax, eax
je 0x40826b
push eax
call fcn.00422bf7
add esp, 4
push edi
call fcn.00422bf7
add esp, 4
test ebp, ebp
je 0x4082a9
lea ecx, [ebp + 8]
push ecx
call ebx
test eax, eax
jne 0x4082a9
mov eax, dword [ebp]
test eax, eax
je 0x408290
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 4]
test eax, eax
je 0x4082a0
push eax
call fcn.00422bf7
add esp, 4
push ebp
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x20]
test esi, esi
je 0x4082e5
lea edx, [esi + 8]
push edx
call ebx
test eax, eax
jne 0x4082e5
mov eax, dword [esi]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test eax, eax
je 0x4082ca
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x4082da
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
jmp 0x4082eb
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [esp + 0x18]
test esi, esi
je 0x40832b
lea eax, [esi + 8]
push eax
call ebx
test eax, eax
jne 0x408323
test esi, esi
je 0x408323
mov eax, dword [esi]
test eax, eax
je 0x40830a
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x40831a
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x18], 0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x40836b
lea ecx, [esi + 8]
push ecx
call ebx
test eax, eax
jne 0x408363
test esi, esi
je 0x408363
mov eax, dword [esi]
test eax, eax
je 0x40834a
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x40835a
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4083ab
lea edx, [esi + 8]
push edx
call ebx
test eax, eax
jne 0x4083a3
test esi, esi
je 0x4083a3
mov eax, dword [esi]
test eax, eax
je 0x40838a
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x40839a
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4083df
lea eax, [esi + 8]
push eax
call ebx
test eax, eax
jne 0x4083df
mov eax, dword [esi]
test eax, eax
je 0x4083c6
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x4083d6
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x24]
test esi, esi
je 0x408413
lea ecx, [esi + 8]
push ecx
call ebx
test eax, eax
jne 0x408413
mov eax, dword [esi]
test eax, eax
je 0x4083fa
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x40840a
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x407bd7
lea edx, [esi + 8]
push edx
call ebx
test eax, eax
jne 0x407bd7
test esi, esi
je 0x407bd7
mov eax, dword [esi]
test eax, eax
je 0x40843e
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x40844e
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
xor eax, eax
jmp 0x4087ac
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4084de
mov eax, dword [eax]
test eax, eax
je 0x4084de
push eax
call esi
test eax, eax
jbe 0x4084de
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4084a6
mov eax, dword [esi]
test eax, eax
je 0x4084a0
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
push eax
mov eax, dword [esi]
push eax
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
test eax, eax
jne 0x4084a2
push 0x8007000e
call fcn.00414020
xor eax, eax
mov esi, eax
jmp 0x4084a8
xor esi, esi
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x4084d5
mov eax, dword [ebx]
test eax, eax
je 0x4084d5
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov ecx, dword [ebx]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
test eax, eax
jne 0x4084d7
push 0x8007000e
call fcn.00414020
xor eax, eax
push 5
push 0
push esi
jmp 0x408513
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x40850b
mov eax, dword [ebx]
test eax, eax
je 0x40850b
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
mov edx, dword [ebx]
push eax
push edx
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
test eax, eax
jne 0x40850d
push 0x8007000e
call fcn.00414020
xor eax, eax
push 5
push 0
push 0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov esi, dword [esp + 0x58]
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test esi, esi
je 0x40855f
lea eax, [esi + 8]
push eax
call ebp
test eax, eax
jne 0x40855f
mov eax, dword [esi]
test eax, eax
je 0x408546
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x408556
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x28]
test esi, esi
je 0x408597
lea ecx, [esi + 8]
push ecx
call ebp
test eax, eax
jne 0x408597
mov eax, dword [esi]
test eax, eax
je 0x40857e
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x40858e
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
test edi, edi
je 0x4085cb
lea edx, [edi + 8]
push edx
call ebp
test eax, eax
jne 0x4085cb
mov eax, dword [edi]
test eax, eax
je 0x4085b2
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi + 4]
test eax, eax
je 0x4085c2
push eax
call fcn.00422bf7
add esp, 4
push edi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x408603
lea eax, [esi + 8]
push eax
call ebp
test eax, eax
jne 0x408603
mov eax, dword [esi]
test eax, eax
je 0x4085ea
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x4085fa
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
test ebx, ebx
je 0x408637
lea ecx, [ebx + 8]
push ecx
call ebp
test eax, eax
jne 0x408637
mov eax, dword [ebx]
test eax, eax
je 0x40861e
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebx + 4]
test eax, eax
je 0x40862e
push eax
call fcn.00422bf7
add esp, 4
push ebx
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x18]
xor edi, edi
cmp esi, edi
je 0x408689
lea edx, [esi + 8]
push edx
call ebp
test eax, eax
jne 0x40867d
cmp esi, edi
je 0x40867d
mov eax, dword [esi]
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp eax, edi
je 0x40865e
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, edi
je 0x40866e
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x18], edi
jmp 0x40868f
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esp + 0x18], edi
jmp 0x40868f
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [esp + 0x1c]
cmp esi, edi
je 0x4086cb
lea eax, [esi + 8]
push eax
call ebp
test eax, eax
jne 0x4086c7
cmp esi, edi
je 0x4086c7
mov eax, dword [esi]
cmp eax, edi
je 0x4086ae
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, edi
je 0x4086be
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x1c], edi
mov esi, dword [esp + 0x14]
cmp esi, edi
je 0x408707
lea ecx, [esi + 8]
push ecx
call ebp
test eax, eax
jne 0x408703
cmp esi, edi
je 0x408703
mov eax, dword [esi]
cmp eax, edi
je 0x4086ea
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, edi
je 0x4086fa
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x30]
cmp esi, edi
je 0x40873b
lea edx, [esi + 8]
push edx
call ebp
test eax, eax
jne 0x40873b
mov eax, dword [esi]
cmp eax, edi
je 0x408722
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, edi
je 0x408732
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x24]
cmp esi, edi
je 0x40876f
lea eax, [esi + 8]
push eax
call ebp
test eax, eax
jne 0x40876f
mov eax, dword [esi]
cmp eax, edi
je 0x408756
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, edi
je 0x408766
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov esi, dword [esp + 0x5c]
cmp esi, edi
je 0x4087a7
lea ecx, [esi + 8]
push ecx
call ebp
test eax, eax
jne 0x4087a7
cmp esi, edi
je 0x4087a7
mov eax, dword [esi]
cmp eax, edi
je 0x40878e
push eax
call ebx
mov eax, dword [esi + 4]
cmp eax, edi
je 0x40879e
push eax
call fcn.00422bf7
add esp, 4
push esi
call fcn.00422bf7
add esp, 4
mov eax, 1
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 8