Function at 0x40f420
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x41a9a9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa4
push ebx
push ebp
push esi
mov esi, ecx
xor ebp, ebp
push edi
mov dword [esp + 0x5c], esi
xor ebx, ebx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0xbc], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x3c], ebp
lea ecx, [esp + 0x14]
mov byte [esp + 0xbc], 4
call fcn.00411f80
lea eax, [esp + 0x28]
push eax
push 0x41e7c8
push 7
push ebp
push 0x41e7b8
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebp
jl 0x40f4c1
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.ole32.dll_OleRun]
cmp eax, ebp
jl 0x40f4b7
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x14]
push ecx
push 0x41e7a8
mov edx, dword [eax]
push eax
call dword [edx]
mov eax, dword [esp + 0x28]
push eax
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [esi + 8]
push 0x41e828
push eax
call fcn.00413a21
add esp, 8
cmp eax, ebp
je 0x41032d
push eax
call fcn.00413979
mov edi, dword [esp + 0x18]
add esp, 4
cmp edi, ebp
je 0x41032d
mov ecx, dword [edi]
push ebp
push edi
call dword [ecx + 0xfc]
cmp eax, ebp
jge 0x40f509
push 0x41e7a8
push edi
push eax
call fcn.00419a2c
mov al, byte [esp + 0xc8]
test al, al
je 0x40f5f9
mov esi, dword [esi + 8]
mov word [esp + 0x2c], 8
push esi
call fcn.00419acb
cmp eax, ebp
mov dword [esp + 0x34], eax
jne 0x40f53e
cmp esi, ebp
je 0x40f53e
push 0x8007000e
call fcn.00419a1e
mov eax, dword [esp + 0x14]
mov byte [esp + 0xbc], 5
cmp eax, ebp
jne 0x40f55c
push 0x80004003
call fcn.00419a1e
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
lea ecx, [esp + 0x40]
push ecx
mov edx, dword [eax]
sub esp, 0x10
mov esi, eax
mov ecx, esp
push eax
mov dword [ecx], edi
mov edi, dword [esp + 0x48]
mov dword [ecx + 4], edi
mov edi, dword [esp + 0x4c]
mov dword [ecx + 8], edi
mov edi, dword [esp + 0x50]
mov dword [ecx + 0xc], edi
call dword [edx + pe_nt_image_headers32]
cmp eax, ebp
jge 0x40f59c
push 0x41e7a8
push esi
push eax
call fcn.00419a2c
movsx esi, word [esp + 0x40]
lea edx, [esp + 0x2c]
mov dword [esp + 0x54], esi
push edx
mov byte [esp + 0xc0], 4
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebp
jge 0x40f5c2
push eax
call fcn.00419a1e
cmp dword [esp + 0x14], ebp
jne 0x40f5d2
push 0x80004003
call fcn.00419a1e
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x44]
push eax
call fcn.00410590
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x20]
call fcn.00411fb0
lea ecx, [esp + 0x44]
call fcn.00411f80
cmp esi, ebp
jne 0x40f674
push ecx
mov dword [esp + 0x4c], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x64], eax
cmp eax, ebp
mov byte [esp + 0xc0], 6
je 0x40f628
push str.ISSUERESULT
mov ecx, eax
call fcn.00410460
jmp 0x40f62a
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40f642
push 0x8007000e
call fcn.00419a1e
lea edx, [esp + 0x48]
lea ecx, [esp + 0x18]
push edx
mov byte [esp + 0xc4], 4
call fcn.00411f90
mov ecx, eax
call fcn.004105e0
mov eax, dword [eax]
lea ecx, [esp + 0x1c]
push eax
call fcn.00411fb0
lea ecx, [esp + 0x44]
call fcn.00411f80
cmp dword [esp + 0x1c], ebp
je 0x41032d
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x28], 1
mov esi, dword [edi]
cmp esi, ebp
je 0x40f70d
push esi
mov word [esp + 0x30], 8
call fcn.00419acb
cmp eax, ebp
mov dword [esp + 0x34], eax
jne 0x40f6be
cmp esi, ebp
je 0x40f6be
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x2c]
mov byte [esp + 0xbc], 8
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push str.SysId
call fcn.004103c0
lea ecx, [esp + 0x24]
mov byte [esp + 0xc4], 8
call fcn.00411f90
mov ecx, eax
call fcn.00410740
lea edx, [esp + 0x2c]
mov byte [esp + 0xbc], 4
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebp
jge 0x40f78a
jmp 0x40f784
mov esi, dword [edi + 4]
cmp esi, ebp
je 0x40f78a
push esi
mov word [esp + 0x30], 8
call fcn.00419acb
cmp eax, ebp
mov dword [esp + 0x34], eax
jne 0x40f737
cmp esi, ebp
je 0x40f737
push 0x8007000e
call fcn.00419a1e
lea eax, [esp + 0x2c]
mov bl, 0xa
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push str.GenId
mov byte [esp + 0xc8], bl
call fcn.004103c0
lea ecx, [esp + 0x24]
mov byte [esp + 0xc4], bl
call fcn.00411f90
mov ecx, eax
call fcn.00410740
lea ecx, [esp + 0x2c]
mov byte [esp + 0xbc], 4
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebp
jge 0x40f78a
push eax
call fcn.00419a1e
mov eax, dword [edi + 0xc]
xor ebx, ebx
cmp eax, ebp
mov dword [esp + 0x58], ebx
jbe 0x40ffb3
jmp 0x40f7a1
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0xc4]
lea ebx, [ebx + ebx*2]
shl ebx, 3
mov eax, dword [edx + 0x10]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov cl, byte [ebx + eax + 0x14]
mov dword [esp + 0x6c], ebp
cmp cl, 1
je 0x40ff8b
push ecx
mov dword [esp + 0x28], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0xc
je 0x40f7fd
push str.ISSUE
mov ecx, eax
call fcn.00410460
jmp 0x40f7ff
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40f817
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x90]
mov byte [esp + 0xc0], 4
push ecx
lea ecx, [esp + 0x1c]
call fcn.00411f90
mov ecx, eax
call fcn.004105e0
mov edx, dword [eax]
lea ecx, [esp + 0x20]
push edx
call fcn.00411fb0
mov eax, dword [esp + 0x8c]
cmp eax, ebp
je 0x40f854
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x20], ebp
je 0x40ff87
mov edi, dword [esp + 0xc4]
mov edx, dword [edi + 0x10]
mov ecx, dword [ebx + edx]
lea eax, [ebx + edx]
cmp ecx, ebp
je 0x40f8ea
mov esi, ecx
mov word [esp + 0x2c], 8
push esi
call fcn.00419acb
cmp eax, ebp
mov dword [esp + 0x34], eax
jne 0x40f897
cmp esi, ebp
je 0x40f897
push 0x8007000e
call fcn.00419a1e
lea eax, [esp + 0x2c]
mov byte [esp + 0xbc], 0xe
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.GUID
call fcn.004103c0
lea ecx, [esp + 0x28]
mov byte [esp + 0xc4], 0xe
call fcn.00411f90
mov ecx, eax
call fcn.00410740
lea ecx, [esp + 0x2c]
mov byte [esp + 0xbc], 4
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp eax, ebp
jge 0x40f8ea
push eax
call fcn.00419a1e
push ecx
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x10
je 0x40f919
push str.STATUS
mov ecx, eax
call fcn.00410460
jmp 0x40f91b
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40f933
push 0x8007000e
call fcn.00419a1e
lea edx, [esp + 0x8c]
lea ecx, [esp + 0x18]
push edx
mov byte [esp + 0xc4], 4
call fcn.00411f90
mov ecx, eax
call fcn.004105e0
mov eax, dword [eax]
lea ecx, [esp + 0x10]
push eax
call fcn.00411fb0
mov eax, dword [esp + 0x88]
cmp eax, ebp
je 0x40f970
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x10], ebp
je 0x40fa8d
mov edx, dword [edi + 0x10]
xor eax, eax
mov al, byte [ebx + edx + 0x14]
sub eax, ebp
je 0x40f9e4
sub eax, 2
jne 0x40fa4e
mov edx, dword [esp + 0x4c]
push ecx
inc edx
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
mov dword [esp + 0x54], edx
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x14
je 0x40f9c8
push str.Failed
mov ecx, eax
call fcn.00410460
jmp 0x40f9ca
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40f9e2
push 0x8007000e
call fcn.00419a1e
jmp 0x40fa36
mov edx, dword [esp + 0x40]
push ecx
inc edx
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
mov dword [esp + 0x48], edx
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x12
je 0x40fa1c
push str.Detected
mov ecx, eax
call fcn.00410460
jmp 0x40fa1e
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40fa36
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x14]
mov byte [esp + 0xc0], 4
call fcn.00411f90
mov ecx, eax
call fcn.004104f0
cmp dword [esp + 0x20], ebp
jne 0x40fa5e
push 0x80004003
call fcn.00419a1e
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, dword [esp + 0x28]
call fcn.004104a0
mov eax, dword [esp + 0x90]
cmp eax, ebp
je 0x40fa85
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0x6c], 1
push ecx
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x16
je 0x40fabc
push 0x41e778
mov ecx, eax
call fcn.00410460
jmp 0x40fabe
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40fad6
push 0x8007000e
call fcn.00419a1e
lea eax, [esp + 0x78]
lea ecx, [esp + 0x18]
push eax
mov byte [esp + 0xc4], 4
call fcn.00411f90
mov ecx, eax
call fcn.004105e0
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x14]
call fcn.00411fb0
mov eax, dword [esp + 0x74]
cmp eax, ebp
je 0x40fb0d
mov edx, dword [eax]
push eax
call dword [edx + 8]
cmp dword [esp + 0x10], ebp
je 0x40fc06
mov eax, dword [edi + 0x10]
mov ecx, dword [ebx + eax + 4]
cmp ecx, ebp
push ecx
je 0x40fb6d
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x18
je 0x40fb51
push str.True
mov ecx, eax
call fcn.00410460
jmp 0x40fb53
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40fb6b
push 0x8007000e
call fcn.00419a1e
jmp 0x40fbb5
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x1a
je 0x40fb9b
push str.False
mov ecx, eax
call fcn.00410460
jmp 0x40fb9d
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40fbb5
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x14]
mov byte [esp + 0xc0], 4
call fcn.00411f90
mov ecx, eax
call fcn.004104f0
cmp dword [esp + 0x20], ebp
jne 0x40fbdd
push 0x80004003
call fcn.00419a1e
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x24]
push edx
call fcn.004104a0
mov eax, dword [esp + 0x7c]
cmp eax, ebp
je 0x40fbfe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x68], 1
push ecx
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x1c
je 0x40fc35
push str.URLRESULT
mov ecx, eax
call fcn.00410460
jmp 0x40fc37
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40fc4f
push 0x8007000e
call fcn.00419a1e
lea edx, [esp + 0x88]
lea ecx, [esp + 0x18]
push edx
mov byte [esp + 0xc4], 4
call fcn.00411f90
mov ecx, eax
call fcn.004105e0
mov eax, dword [eax]
lea ecx, [esp + 0x10]
push eax
call fcn.00411fb0
mov eax, dword [esp + 0x84]
cmp eax, ebp
je 0x40fc8c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x10], ebp
je 0x40fd37
mov edx, dword [edi + 0x10]
mov esi, dword [ebx + edx + 0xc]
cmp esi, ebp
je 0x40fcfe
push ecx
mov dword [esp + 0x1c], esp
mov edi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x1e
je 0x40fccc
push esi
mov ecx, eax
call fcn.00410460
jmp 0x40fcce
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [edi], eax
jne 0x40fce6
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x14]
mov byte [esp + 0xc0], 4
call fcn.00411f90
mov ecx, eax
call fcn.004104f0
cmp dword [esp + 0x20], ebp
jne 0x40fd0e
push 0x80004003
call fcn.00419a1e
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x78]
push eax
push ecx
mov ecx, dword [esp + 0x28]
call fcn.004104a0
mov eax, dword [esp + 0x78]
cmp eax, ebp
je 0x40fd2f
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov dword [esp + 0x64], 1
push ecx
mov dword [esp + 0x1c], esp
mov esi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x20
je 0x40fd66
push 0x41e750
mov ecx, eax
call fcn.00410460
jmp 0x40fd68
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [esi], eax
jne 0x40fd80
push 0x8007000e
call fcn.00419a1e
lea eax, [esp + 0x74]
lea ecx, [esp + 0x18]
push eax
mov byte [esp + 0xc4], 4
call fcn.00411f90
mov ecx, eax
call fcn.004105e0
mov ecx, dword [eax]
push ecx
lea ecx, [esp + 0x14]
call fcn.00411fb0
mov eax, dword [esp + 0x70]
cmp eax, ebp
je 0x40fdb7
mov edx, dword [eax]
push eax
call dword [edx + 8]
cmp dword [esp + 0x10], ebp
je 0x40ff3c
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x10]
cmp dword [ebx + ecx + 0x10], ebp
je 0x40ff3c
mov eax, dword [esp + 0x3c]
cmp eax, ebp
je 0x40fde3
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea eax, [esp + 0x50]
push eax
push 0x41e7c8
push 7
push ebp
push 0x41e7b8
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebp
jl 0x40fe2b
mov ecx, dword [esp + 0x50]
push ecx
call dword [sym.imp.ole32.dll_OleRun]
cmp eax, ebp
jl 0x40fe21
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x3c]
push ecx
push 0x41e7a8
mov edx, dword [eax]
push eax
call dword [edx]
mov eax, dword [esp + 0x50]
push eax
mov edx, dword [eax]
call dword [edx + 8]
cmp dword [esp + 0x3c], ebp
je 0x40ff3c
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 0x10]
push ecx
mov esi, dword [ebx + ecx + 0x10]
mov dword [esp + 0x1c], esp
mov edi, esp
push 0xc
call fcn.00412fb5
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebp
mov byte [esp + 0xc0], 0x22
je 0x40fe6e
push esi
mov ecx, eax
call fcn.00410460
jmp 0x40fe70
xor eax, eax
cmp eax, ebp
mov byte [esp + 0xc0], 4
mov dword [edi], eax
jne 0x40fe88
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x40]
mov byte [esp + 0xc0], 4
call fcn.00411f90
mov ecx, eax
call fcn.00410690
cmp dword [esp + 0x3c], ebp
jne 0x40feb0
push 0x80004003
call fcn.00419a1e
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x80]
push edx
call fcn.0040eeb0
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xc0], 0x24
call fcn.004125c0
cmp eax, ebp
jge 0x40fee4
cmp eax, 0x80004002
je 0x40fee4
push eax
call fcn.00419a1e
mov eax, dword [esp + 0x80]
mov byte [esp + 0xbc], 4
cmp eax, ebp
je 0x40fefd
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x10], ebp
je 0x40ff3c
cmp dword [esp + 0x20], ebp
jne 0x40ff13
push 0x80004003
call fcn.00419a1e
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x60]
push edx
push eax
call fcn.004104a0
mov eax, dword [esp + 0x60]
cmp eax, ebp
je 0x40ff34
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x44], 1
cmp dword [esp + 0x6c], ebp
je 0x40ffa8
cmp dword [esp + 0x68], ebp
je 0x40ffa8
cmp dword [esp + 0x64], ebp
je 0x40ffa8
cmp dword [esp + 0x44], ebp
je 0x40ffa8
cmp dword [esp + 0x1c], ebp
jne 0x40ff64
push 0x80004003
call fcn.00419a1e
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x48]
push edx
push eax
call fcn.004104a0
mov eax, dword [esp + 0x48]
cmp eax, ebp
je 0x40ff8b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40ff8b
mov dword [esp + 0x28], ebp
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x58]
inc eax
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x58], eax
cmp eax, ecx
jb 0x40f79d
jmp 0x40ffac
mov dword [esp + 0x28], ebp
mov edi, dword [esp + 0xc4]
mov eax, dword [esp + 0x54]
mov ebx, dword [edi + 0xc]
cmp eax, ebp
je 0x410075
push 0x41e7d8
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00412360
mov ebp, dword [esp + 0x64]
mov ecx, ebp
call fcn.0040e250
push str.Detected
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x20], esp
push edx
mov esi, eax
call fcn.00412360
mov ecx, ebp
call fcn.0040e250
push str.Failed
mov edi, eax
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
call fcn.00412360
mov ecx, ebp
call fcn.0040e250
push esi
mov ebp, eax
call fcn.004133c0
push edi
add ebx, eax
call fcn.004133c0
mov ecx, dword [esp + 0x48]
push ebp
add ecx, eax
mov dword [esp + 0x4c], ecx
call fcn.004133c0
mov ecx, dword [esp + 0x58]
add esp, 0xc
add ecx, eax
test esi, esi
mov dword [esp + 0x4c], ecx
je 0x41005b
push esi
call fcn.00412670
add esp, 4
test edi, edi
je 0x410068
push edi
call fcn.00412670
add esp, 4
test ebp, ebp
je 0x410075
push ebp
call fcn.00412670
add esp, 4
push ebx
lea ecx, [esp + 0x98]
push 0x41e15c
push ecx
call fcn.004130a0
add esp, 0xc
lea edx, [esp + 0x94]
mov edi, 8
push edx
mov word [esp + 0x30], di
call fcn.00419acb
test eax, eax
mov dword [esp + 0x34], eax
jne 0x4100bf
lea eax, [esp + 0x94]
test eax, eax
je 0x4100bf
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x2c]
mov bl, 0x25
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push 0x41e7d8
mov byte [esp + 0xc8], bl
call fcn.004103c0
lea ecx, [esp + 0x24]
mov byte [esp + 0xc4], bl
call fcn.00411f90
mov ecx, eax
call fcn.00410740
mov ebp, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0xc0], 4
call ebp
test eax, eax
jge 0x410114
push eax
call fcn.00419a1e
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x94]
push eax
push 0x41e15c
push ecx
call fcn.004130a0
add esp, 0xc
lea edx, [esp + 0x94]
mov word [esp + 0x2c], di
push edx
call fcn.00419acb
test eax, eax
mov dword [esp + 0x34], eax
jne 0x41015d
lea eax, [esp + 0x94]
test eax, eax
je 0x41015d
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x2c]
mov bl, 0x27
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.Detected
mov byte [esp + 0xc8], bl
call fcn.004103c0
lea ecx, [esp + 0x24]
mov byte [esp + 0xc4], bl
call fcn.00411f90
mov ecx, eax
call fcn.00410740
lea edx, [esp + 0x2c]
mov byte [esp + 0xbc], 4
push edx
call ebp
test eax, eax
jge 0x4101ac
push eax
call fcn.00419a1e
mov eax, dword [esp + 0x4c]
lea ecx, [esp + 0x94]
push eax
push 0x41e15c
push ecx
call fcn.004130a0
add esp, 0xc
lea edx, [esp + 0x94]
mov word [esp + 0x2c], di
push edx
call fcn.00419acb
test eax, eax
mov dword [esp + 0x34], eax
jne 0x4101f5
lea eax, [esp + 0x94]
test eax, eax
je 0x4101f5
push 0x8007000e
call fcn.00419a1e
lea ecx, [esp + 0x2c]
mov bl, 0x29
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push str.Failed
mov byte [esp + 0xc8], bl
call fcn.004103c0
lea ecx, [esp + 0x24]
mov byte [esp + 0xc4], bl
call fcn.00411f90
mov ecx, eax
call fcn.00410740
lea edx, [esp + 0x2c]
mov byte [esp + 0xbc], 4
push edx
call ebp
test eax, eax
jge 0x410244
push eax
call fcn.00419a1e
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x41027f
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41025e
push 0x80004003
call fcn.00419a1e
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x48]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.004104a0
mov eax, dword [esp + 0x48]
test eax, eax
je 0x41027f
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x5c]
mov word [esp + 0x2c], di
mov esi, dword [eax + 8]
push esi
call fcn.00419acb
test eax, eax
mov dword [esp + 0x34], eax
jne 0x4102a7
test esi, esi
je 0x4102a7
push 0x8007000e
call fcn.00419a1e
mov eax, dword [esp + 0x14]
mov byte [esp + 0xbc], 0x2b
test eax, eax
jne 0x4102c5
push 0x80004003
call fcn.00419a1e
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
sub esp, 0x10
mov edx, esp
mov ecx, dword [eax]
push eax
mov edi, eax
mov dword [edx], esi
mov esi, dword [esp + 0x44]
mov dword [edx + 4], esi
mov esi, dword [esp + 0x48]
mov dword [edx + 8], esi
mov esi, dword [esp + 0x4c]
mov dword [edx + 0xc], esi
call dword [ecx + 0x108]
mov esi, eax
test esi, esi
jge 0x410302
push 0x41e7a8
push edi
push esi
call fcn.00419a2c
lea eax, [esp + 0x2c]
mov byte [esp + 0xbc], 4
push eax
call ebp
test eax, eax
jge 0x41031b
push eax
call fcn.00419a1e
test esi, esi
je 0x410327
mov dword [esp + 0x28], 0
mov ebx, dword [esp + 0x28]
xor ebp, ebp
mov eax, dword [esp + 0x3c]
mov byte [esp + 0xbc], 3
cmp eax, ebp
je 0x410343
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0xbc], 2
cmp eax, ebp
je 0x410359
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x20]
mov byte [esp + 0xbc], 1
cmp eax, ebp
je 0x41036f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0xbc], 0
cmp eax, ebp
je 0x410385
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0xbc], 0xffffffff
cmp eax, ebp
je 0x41039e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0xb4]
pop edi
pop esi
mov eax, ebx
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xb0
ret 8