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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x534e6b
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
push ebx
push esi
push edi
mov eax, dword [0x5b339c]
xor eax, esp
push eax
lea eax, [esp + 0xe8]
mov dword fs:[0], eax
lea ecx, [esp + 0x3c]
call fcn.004e4820
xor edi, edi
mov dword [esp + 0xf0], edi
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x58], eax
lea eax, [esp + 0x44]
push eax
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x58], 0x200000
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov esi, dword [ebp + 0x24]
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + 4]
push edx
mov ecx, esi
call fcn.004062f0
mov eax, dword [esi + 0x18]
mov ebx, dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x1c], edi
mov dword [eax], eax
mov eax, dword [esi + 0x18]
mov dword [eax + 8], eax
lea eax, [esp + 0xa4]
push eax
lea ecx, [ebp + 0x18]
push ecx
call ebx
test eax, eax
jne 0x501a1c
lea edx, [ebp + 0x10]
push edx
lea eax, [ebp + 8]
push eax
call ebx
test eax, eax
jne 0x5019f2
mov dword [ebp + 0x18], 1
mov dword [ebp + 0x1c], edi
jmp 0x501a1c
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
cmp eax, ecx
jb 0x501a0e
ja 0x501a08
cmp edx, esi
jbe 0x501a0e
sub edx, esi
sbb eax, ecx
jmp 0x501a16
sub esi, edx
sbb ecx, eax
mov edx, esi
mov eax, ecx
mov dword [ebp + 0x18], edx
mov dword [ebp + 0x1c], eax
lea ecx, [ebp + 0x10]
push ecx
lea edx, [ebp + 8]
push edx
call ebx
mov ecx, dword [ebp + 0x20]
test eax, eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx]
jg 0x501e97
mov edx, dword [eax]
mov eax, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
lea ebx, [ebx]
mov eax, dword [ebp + 0x20]
mov ebx, dword [eax + 0x18]
mov eax, dword [eax]
test esi, esi
je 0x501a70
cmp esi, eax
je 0x501a76
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp edi, ebx
je 0x501ac9
test esi, esi
jne 0x501ac5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
cmp edi, dword [eax + 0x18]
jne 0x501a91
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
lea eax, [edi + 0x2c]
push eax
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jl 0x501ac9
test byte [edi + 0x28], 0xc0
je 0x501ab2
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x14]
call fcn.00411970
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x501a60
mov eax, dword [esi]
jmp 0x501a86
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov ebx, dword [ebp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edx
lea esp, [esp]
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx]
test esi, esi
je 0x501aed
cmp esi, eax
je 0x501af3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x18], edi
je 0x501b4c
test esi, esi
jne 0x501b40
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 0x18]
jne 0x501b14
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edi, dword [esp + 0x18]
lea edx, [edi + 0x2c]
push edx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jg 0x501b31
test byte [edi + 0x28], 0xc0
jne 0x501b44
lea ecx, [esp + 0x14]
call fcn.00411970
mov esi, dword [esp + 0x14]
jmp 0x501ae0
mov eax, dword [esi]
jmp 0x501b05
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
mov edi, dword [ebx + 0x18]
mov eax, dword [ebx]
test esi, esi
je 0x501b59
cmp esi, eax
je 0x501b5f
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x501b6f
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x1c]
mov esi, dword [ebx + 0x18]
mov eax, dword [ebx]
test edi, edi
je 0x501b80
cmp edi, eax
je 0x501b86
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x20], esi
je 0x501e14
mov esi, dword [ebx + 0x18]
mov eax, dword [ebx]
test edi, edi
je 0x501b9d
cmp edi, eax
je 0x501ba3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x20], esi
je 0x501bd6
test edi, edi
jne 0x501cb5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0x18]
jne 0x501bc8
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x20]
test byte [edx + 0x28], 0xc0
je 0x501e14
mov ecx, dword [esp + 0x2c]
mov esi, dword [ebx + 0x18]
mov eax, dword [ebx]
test ecx, ecx
je 0x501be7
cmp ecx, eax
je 0x501bed
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x30], esi
je 0x501dd8
mov eax, dword [esp + 0x2c]
mov esi, dword [ebx + 0x18]
mov ebx, dword [ebx]
test eax, eax
je 0x501c08
cmp eax, ebx
je 0x501c0e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x30], esi
je 0x501c45
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x501cbc
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax + 0x18]
jne 0x501c37
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x30]
test byte [edx + 0x28], 0xc0
je 0x501dd8
test edi, edi
jne 0x501cc3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0x18]
jne 0x501c60
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ebx, dword [esp + 0x20]
mov esi, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
add ebx, 0x10
lea edx, [esp + 0x24]
push edx
lea eax, [ebx + 0x1c]
push eax
mov dword [esp + 0x3c], ebx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jne 0x501ccb
test edi, edi
jne 0x501cc7
call esi
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0x18]
jne 0x501c97
call esi
push ebx
lea ecx, [esp + 0x40]
call fcn.004e48e0
movzx edx, byte [esp + 0x54]
or edx, 0x40000
mov dword [esp + 0x54], edx
jmp 0x501e27
mov eax, dword [edi]
jmp 0x501bb9
mov eax, dword [eax]
jmp 0x501c28
mov eax, dword [edi]
jmp 0x501c51
mov eax, dword [edi]
jmp 0x501c8c
cmp byte [ebp + 0x28], 0
je 0x501cfb
test edi, edi
jne 0x501cf7
call esi
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0x18]
jne 0x501ce4
call esi
push ebx
lea ecx, [esp + 0x40]
call fcn.004e48e0
mov ebx, dword [esp + 0x30]
jmp 0x501d84
mov eax, dword [edi]
jmp 0x501cd9
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x501dc0
call esi
xor eax, eax
mov ebx, dword [esp + 0x30]
cmp ebx, dword [eax + 0x18]
jne 0x501d16
call esi
lea esi, [ebx + 0x10]
test edi, edi
jne 0x501dc7
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edx, dword [esp + 0x20]
cmp edx, dword [eax + 0x18]
jne 0x501d38
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
push eax
push ecx
push esi
push edx
lea eax, [esp + 0xbc]
push eax
call fcn.00500b20
add esp, 0x14
mov byte [esp + 0xf0], 1
push eax
lea ecx, [esp + 0x40]
call fcn.004e48e0
mov byte [esp + 0xf0], 0
lea ecx, [esp + 0xac]
call fcn.004e4850
mov esi, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], edi
call fcn.00411970
mov eax, dword [esp + 0x14]
test eax, eax
je 0x501da7
cmp eax, dword [esp + 0x2c]
je 0x501da9
call esi
cmp dword [esp + 0x18], ebx
jne 0x501dce
movzx edx, byte [esp + 0x54]
or edx, 0x20000
mov dword [esp + 0x54], edx
jmp 0x501e27
mov eax, dword [eax]
jmp 0x501d0b
mov eax, dword [edi]
jmp 0x501d29
mov dword [esp + 0x54], 0x20058
jmp 0x501e27
mov dword [esp + 0x54], 0x20058
test edi, edi
jne 0x501e10
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0x18]
jne 0x501dfb
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x20]
add edx, 0x18
push edx
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
jmp 0x501e27
mov eax, dword [edi]
jmp 0x501dec
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x58], 0x200000
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x58], edx
push ecx
mov ecx, dword [ebp + 0x24]
lea edx, [esp + 0x9c]
push edx
mov dword [esp + 0x64], eax
call fcn.00406c40
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
add eax, edx
adc ecx, esi
mov esi, dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov dword [esp + 0x24], eax
lea eax, [ebp + 8]
mov dword [esp + 0x28], ecx
push eax
lea ecx, [esp + 0x28]
push ecx
call esi
test eax, eax
jl 0x5023cb
lea edx, [ebp + 0x10]
push edx
lea eax, [esp + 0x28]
push eax
call esi
test eax, eax
jl 0x501a4a
jmp 0x5023cb
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + 0x18]
mov edi, dword [eax]
mov eax, dword [ecx]
test esi, esi
je 0x501ed9
cmp esi, eax
je 0x501ee2
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [ebp + 0x20]
cmp ebx, edi
je 0x501f54
lea ecx, [esp + 0x2c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
call fcn.004ff540
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x501f4d
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edi, dword [esp + 0x30]
cmp edi, dword [eax + 0x18]
jne 0x501f16
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
lea eax, [edi + 0x2c]
push eax
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jg 0x501f51
test byte [edi + 0x28], 0xc0
je 0x501f37
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ebx
lea ecx, [esp + 0x1c]
call fcn.004ff540
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
jmp 0x501ec7
mov eax, dword [eax]
jmp 0x501f07
mov ecx, dword [ebp + 0x20]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], ebx
mov eax, dword [ecx + 0x18]
mov edi, dword [eax]
mov eax, dword [ecx]
test esi, esi
je 0x501f73
cmp esi, eax
je 0x501f7c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [ebp + 0x20]
cmp ebx, edi
je 0x502004
lea ecx, [esp + 0x90]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], ebx
call fcn.004ff540
mov eax, dword [esp + 0x90]
test eax, eax
jne 0x501ff5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov edi, dword [esp + 0x94]
cmp edi, dword [eax + 0x18]
jne 0x501fc3
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
lea edx, [edi + 0x2c]
push edx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jl 0x501fdc
test byte [edi + 0x28], 0xc0
jne 0x501ff9
lea ecx, [esp + 0x1c]
call fcn.004ff540
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x20]
jmp 0x501f64
mov eax, dword [eax]
jmp 0x501fb1
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0x18]
mov edi, dword [eax]
mov eax, dword [ecx]
test esi, esi
je 0x502013
cmp esi, eax
je 0x50201c
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov ecx, dword [ebp + 0x20]
cmp ebx, edi
jne 0x502028
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0x18]
mov esi, dword [eax]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x50203b
cmp ecx, eax
je 0x502041
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x38], esi
je 0x50233d
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + 0x18]
mov esi, dword [eax]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x502061
cmp ecx, eax
je 0x502067
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x38], esi
je 0x5020b3
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x78]
mov dword [esp + 0x7c], edx
call fcn.004ff540
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x5021a0
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov esi, dword [esp + 0x7c]
cmp esi, dword [eax + 0x18]
jne 0x5020a9
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
test byte [esi + 0x28], 0xc0
je 0x50233d
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + 0x18]
mov esi, dword [eax]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x5020c9
cmp ecx, eax
je 0x5020cf
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x18], esi
je 0x5022d9
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + 0x18]
mov esi, dword [eax]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x5020ef
cmp ecx, eax
je 0x5020f5
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x18], esi
je 0x502141
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x68], eax
call fcn.004ff540
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x5021a7
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov esi, dword [esp + 0x6c]
cmp esi, dword [eax + 0x18]
jne 0x502137
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
test byte [esi + 0x28], 0xc0
je 0x5022d9
cmp byte [ebp + 0x28], 0
je 0x5021b2
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x88]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
call fcn.004ff540
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x5021ae
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov esi, dword [esp + 0x8c]
cmp esi, dword [eax + 0x18]
jne 0x50218e
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
add esi, 0x10
push esi
lea ecx, [esp + 0x40]
call fcn.004e48e0
jmp 0x502277
mov eax, dword [eax]
jmp 0x50209a
mov eax, dword [eax]
jmp 0x502128
mov eax, dword [eax]
jmp 0x50217c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x74], edx
call fcn.004ff540
mov eax, dword [esp + 0x70]
mov ebx, dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
test eax, eax
jne 0x5022c1
call ebx
xor eax, eax
mov esi, dword [esp + 0x74]
cmp esi, dword [eax + 0x18]
jne 0x5021ec
call ebx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x80]
add esi, 0x10
mov dword [esp + 0x80], eax
call fcn.004ff540
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x5022c8
call ebx
xor eax, eax
mov edi, dword [esp + 0x84]
cmp edi, dword [eax + 0x18]
jne 0x502232
call ebx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push edx
push ecx
lea eax, [edi + 0x10]
push esi
push eax
lea edx, [esp + 0xbc]
push edx
call fcn.00500b20
add esp, 0x14
mov byte [esp + 0xf0], 2
push eax
lea ecx, [esp + 0x40]
call fcn.004e48e0
mov byte [esp + 0xf0], 0
lea ecx, [esp + 0xac]
call fcn.004e4850
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
call fcn.004ff540
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x50229e
cmp eax, dword [esp + 0x14]
je 0x5022a4
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x20], edx
jne 0x5022cf
movzx eax, byte [esp + 0x54]
or eax, 0x20000
mov dword [esp + 0x54], eax
jmp 0x502350
mov eax, dword [eax]
jmp 0x5021e1
mov eax, dword [eax]
jmp 0x502224
mov dword [esp + 0x54], 0x20058
jmp 0x502350
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x98], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x54], 0x20058
mov dword [esp + 0x9c], edx
call fcn.004ff540
mov eax, dword [esp + 0x98]
test eax, eax
jne 0x502339
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
xor eax, eax
mov esi, dword [esp + 0x9c]
cmp esi, dword [eax + 0x18]
jne 0x502328
call dword [sym.imp.MSVCR90.dll__invalid_parameter_noinfo]
add esi, 0x18
push esi
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
jmp 0x502350
mov eax, dword [eax]
jmp 0x502316
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x58], 0x200000
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x58], edx
push ecx
mov ecx, dword [ebp + 0x24]
lea edx, [esp + 0xdc]
push edx
mov dword [esp + 0x64], eax
call fcn.00406c40
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [esp + 0x24]
mov esi, dword [ebp + 0x18]
cmp eax, ecx
jb 0x502393
ja 0x50238d
cmp edx, esi
jbe 0x502393
sub edx, esi
sbb eax, ecx
jmp 0x50239b
sub esi, edx
sbb ecx, eax
mov edx, esi
mov eax, ecx
mov esi, dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov dword [esp + 0x28], eax
lea eax, [ebp + 8]
push eax
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x2c], edx
call esi
test eax, eax
jg 0x5023cb
lea edx, [ebp + 0x10]
push edx
lea eax, [esp + 0x28]
push eax
call esi
test eax, eax
jg 0x501ea7
mov dword [esp + 0xf0], 0xffffffff
lea ecx, [esp + 0x3c]
call fcn.004e4850
xor eax, eax
mov ecx, dword [esp + 0xe8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret