Function at 0x96d300
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0xb121f0
push 0xa847a0
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x1ac0
call fcn.00a91950
mov eax, dword [0xb196ec]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1aa8], eax
mov dword [ebp - 0x1ab4], ecx
mov dword [ebp - 0x1ab8], edx
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1ac8], eax
mov ecx, dword [ebp + 0x18]
mov dword [ebp - 0x1abc], ecx
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x1ac4], edx
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x1acc], eax
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x1ad4], ecx
mov edx, dword [ebp + 0x28]
mov dword [ebp - 0x1ab0], edx
mov edi, dword [ebp + 0x2c]
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x1a9c], eax
mov ecx, dword [ebp + 0x34]
mov dword [ebp - 0x1ad0], ecx
xor eax, eax
mov dword [ebp - 0x1a80], eax
mov dword [ebp - 0x1a90], eax
mov dword [ebp - 0x1a84], eax
mov dword [ebp - 0x1a98], eax
mov dword [ebp - 0x1a8c], eax
mov byte [ebp - 0x470], al
push 0x207
push eax
lea edx, [ebp - 0x46f]
push edx
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0x34], 0
xor eax, eax
mov dword [ebp - 0x33], eax
mov dword [ebp - 0x2f], eax
mov byte [ebp - 0x28], al
mov dword [ebp - 0x27], eax
mov dword [ebp - 0x23], eax
mov dword [ebp - 0x1aa0], eax
mov dword [ebp - 0x1ac0], 0x4e40409
cmp dword [0xbfd40c], eax
jne 0x96d4ce
mov ecx, str.version.dll
call fcn.0094c620
mov dword [0xbfd40c], eax
test eax, eax
je 0x96d4ce
push str.VerQueryValueA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xbfd410], eax
push str.GetFileVersionInfoA
mov eax, dword [0xbfd40c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xbfd414], eax
push str.GetFileVersionInfoSizeA
mov ecx, dword [0xbfd40c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xbfd418], eax
cmp dword [0xbfd410], 0
je 0x96d47d
cmp dword [0xbfd414], 0
je 0x96d47d
test eax, eax
jne 0x96d48a
mov edx, dword [0xbfd40c]
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push str.VerQueryValueW
mov eax, dword [0xbfd40c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xbfd41c], eax
push str.GetFileVersionInfoExW
mov ecx, dword [0xbfd40c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xbfd420], eax
push str.GetFileVersionInfoSizeExW
mov edx, dword [0xbfd40c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0xbfd424], eax
cmp dword [0xbfd410], 0
je 0x96dee6
cmp dword [0xbfd414], 0
je 0x96dee6
cmp dword [0xbfd418], 0
je 0x96dee6
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
test edi, edi
je 0x96d507
mov dword [edi], 0
mov eax, dword [ebp - 0x1a9c]
test eax, eax
je 0x96d517
mov dword [eax], 0
test ebx, ebx
je 0x96d530
cmp byte [ebx], 0
je 0x96d530
push ebx
lea eax, [ebp - 0x470]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x96d544
push 0x208
lea ecx, [ebp - 0x470]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor edi, edi
cmp dword [0xbd8704], edi
je 0x96d563
lea edx, [ebp - 0x470]
push edx
push str.GVI:__s
push edi
call fcn.0096a780
add esp, 0xc
mov dword [ebp - 4], edi
lea eax, [ebp - 0x1a98]
push eax
lea ecx, [ebp - 0x470]
push ecx
call dword [0xbfd418]
mov dword [ebp - 0x1aa4], eax
cmp eax, edi
jne 0x96d5d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov dword [ebp - 0x1aac], edi
cmp edi, 0x714
jne 0x96dedf
lea esi, [ebp - 0x470]
call fcn.00966a70
cmp eax, 1
jne 0x96d5c4
mov ecx, esi
call fcn.00959a10
test eax, eax
jne 0x96d5c4
mov edi, 5
mov dword [ebp - 0x1aac], edi
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x96dedf
mov dword [ebp - 4], 0xfffffffe
mov dword [ebp - 0x1a88], edi
cmp dword [0xbfd424], edi
je 0x96d62e
cmp dword [0xbfd420], 0
je 0x96d62e
lea ebx, [ebp - 0x1a88]
lea edi, [ebp - 0x470]
call fcn.009704b0
cmp dword [ebp - 0x1a88], 0
je 0x96d62e
mov eax, dword [ebp - 0x1a88]
cmp word [eax], 0
je 0x96d62e
lea edx, [ebp - 0x1a98]
push edx
push eax
push 2
call dword [0xbfd424]
mov ebx, eax
mov dword [ebp - 0x1a90], ebx
jmp 0x96d634
mov ebx, dword [ebp - 0x1a90]
push 1
mov eax, dword [ebp - 0x1aa4]
add eax, 0x10
push eax
call fcn.00a7b9f8
add esp, 8
mov edi, eax
mov dword [ebp - 0x1a94], edi
test edi, edi
jne 0x96d670
mov eax, dword [ebp - 0x1a88]
test eax, eax
je 0x96dee6
push eax
call fcn.00a78fec
add esp, 4
jmp 0x96dee6
push edi
mov ecx, dword [ebp - 0x1aa4]
push ecx
push 0
lea edx, [ebp - 0x470]
push edx
call dword [0xbfd414]
test eax, eax
jne 0x96d6ac
mov eax, dword [ebp - 0x1a88]
test eax, eax
je 0x96d69e
push eax
call fcn.00a78fec
add esp, 4
push edi
call fcn.00a78fec
add esp, 4
jmp 0x96dee6
cmp dword [0xbfd424], 0
je 0x96d70a
cmp dword [0xbfd420], 0
je 0x96d70a
test ebx, ebx
je 0x96d70a
push 1
lea eax, [ebx + 0x10]
push eax
call fcn.00a7b9f8
add esp, 8
mov edi, eax
mov dword [ebp - 0x1a84], edi
test edi, edi
je 0x96d70a
push edi
push ebx
push 0
mov ecx, dword [ebp - 0x1a88]
push ecx
push 2
call dword [0xbfd420]
test eax, eax
jne 0x96d70a
push edi
call fcn.00a78fec
add esp, 4
xor eax, eax
mov dword [ebp - 0x1a84], eax
mov dword [ebp - 0x1a90], eax
xor edi, edi
xor ebx, ebx
xor edx, edx
mov word [ebp - 0x48], dx
xor eax, eax
mov dword [ebp - 0x46], eax
mov dword [ebp - 0x42], eax
mov dword [ebp - 0x3e], eax
mov dword [ebp - 0x3a], eax
mov word [ebp - 0x5c], ax
mov dword [ebp - 0x5a], eax
mov dword [ebp - 0x56], eax
mov dword [ebp - 0x52], eax
mov dword [ebp - 0x4e], eax
xor ecx, ecx
mov word [ebp - 0x268], cx
push 0x206
push ecx
lea edx, [ebp - 0x266]
push edx
call fcn.00a7ffb0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x678], ax
push 0x206
push eax
lea ecx, [ebp - 0x676]
push ecx
call fcn.00a7ffb0
add esp, 0xc
mov dword [ebp - 0x1a7c], ebx
xor edx, edx
mov word [ebp - 0x1a78], dx
push 0xffe
push edx
lea eax, [ebp - 0x1a76]
push eax
call fcn.00a7ffb0
add esp, 0xc
lea ecx, [ebp - 0x1a80]
push ecx
lea edx, [ebp - 0x1aa0]
push edx
push 0xaa1564
mov eax, dword [ebp - 0x1a94]
push eax
call dword [0xbfd410]
test eax, eax
je 0x96d7c2
mov eax, dword [ebp - 0x1aa0]
mov edi, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov ecx, dword [ebp - 0x1ab8]
test ecx, ecx
je 0x96d7da
mov eax, dword [ebp - 0x1ac8]
test eax, eax
je 0x96d7da
mov dword [ecx], edi
mov dword [eax], ebx
lea ecx, [ebp - 0x1a80]
push ecx
lea edx, [ebp - 0x1a8c]
push edx
push str.VarFileInfoTranslation
mov ebx, dword [ebp - 0x1a94]
push ebx
call dword [0xbfd410]
test eax, eax
jne 0x96d80a
lea eax, [ebp - 0x1ac0]
mov dword [ebp - 0x1a8c], eax
mov ecx, dword [ebp - 0x1a8c]
mov edx, dword [ecx]
rol edx, 0x10
push edx
push 0xaebc78
lea eax, [ebp - 0x34]
push eax
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
call edi
add esp, 0xc
mov ecx, dword [ebp - 0x1a8c]
mov edx, dword [ecx]
push edx
push 0xaebc78
lea eax, [ebp - 0x28]
push eax
call edi
add esp, 0xc
mov ecx, dword [ebp - 0x1a8c]
mov edx, dword [ecx]
rol edx, 0x10
push edx
push str._08X
lea edx, [ebp - 0x48]
call fcn.00853e40
mov eax, dword [ebp - 0x1a8c]
mov ecx, dword [eax]
push ecx
push str._08X
lea edx, [ebp - 0x5c]
call fcn.00853e40
add esp, 0x10
test esi, esi
je 0x96d87a
mov byte [esi], 0
mov edi, dword [ebp - 0x1aa8]
test edi, edi
je 0x96d887
mov byte [edi], 0
test esi, esi
je 0x96db24
cmp dword [0xbfd424], 0
je 0x96daed
cmp dword [0xbfd420], 0
je 0x96daed
cmp dword [ebp - 0x1a90], 0
je 0x96daed
lea edx, [ebp - 0x48]
push edx
push str.StringFileInfo_sFileVersion
lea edx, [ebp - 0x1a78]
call fcn.00853e40
add esp, 8
lea eax, [ebp - 0x1a80]
push eax
lea ecx, [ebp - 0x1a7c]
push ecx
lea edx, [ebp - 0x1a78]
push edx
mov eax, dword [ebp - 0x1a84]
push eax
call dword [0xbfd41c]
test eax, eax
je 0x96d929
mov ecx, dword [ebp - 0x1a7c]
push ecx
call fcn.0095ac10
add esp, 4
push 0x103
mov edx, dword [ebp - 0x1a7c]
push edx
lea eax, [ebp - 0x268]
push eax
call fcn.00a7c40e
add esp, 0xc
lea ecx, [ebp - 0x268]
push ecx
jmp 0x96da27
push str.StringFileInfo040904E4FileVersion
lea edx, [ebp - 0x1a78]
call fcn.00853e40
add esp, 4
lea edx, [ebp - 0x1a80]
push edx
lea eax, [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x1a78]
push ecx
mov edx, dword [ebp - 0x1a84]
push edx
call dword [0xbfd41c]
test eax, eax
je 0x96d9b9
mov eax, dword [ebp - 0x1a7c]
push eax
call fcn.0095ac10
add esp, 4
push 0x103
mov ecx, dword [ebp - 0x1a7c]
push ecx
lea edx, [ebp - 0x268]
push edx
call fcn.00a7c40e
add esp, 0xc
lea eax, [ebp - 0x268]
push eax
push 0xaa8700
push esi
call fcn.00a78f30
add esp, 0xc
push 0xaacda4
push 0xaebccc
push esi
call fcn.0095e130
add esp, 0xc
jmp 0x96daed
lea ecx, [ebp - 0x5c]
push ecx
push str.StringFileInfo_sFileVersion
lea edx, [ebp - 0x1a78]
call fcn.00853e40
add esp, 8
lea edx, [ebp - 0x1a80]
push edx
lea eax, [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x1a78]
push ecx
mov edx, dword [ebp - 0x1a84]
push edx
call dword [0xbfd41c]
test eax, eax
je 0x96da4d
mov eax, dword [ebp - 0x1a7c]
push eax
call fcn.0095ac10
add esp, 4
push 0x103
mov ecx, dword [ebp - 0x1a7c]
push ecx
lea edx, [ebp - 0x268]
push edx
call fcn.00a7c40e
add esp, 0xc
lea eax, [ebp - 0x268]
push eax
push 0xaa8700
push esi
call fcn.00a78f30
add esp, 0xc
push 0xaacda4
push 0xaebccc
push esi
call fcn.0095e130
add esp, 0xc
jmp 0x96daed
push str.StringFileInfo040904b0FileVersion
lea edx, [ebp - 0x1a78]
call fcn.00853e40
add esp, 4
lea ecx, [ebp - 0x1a80]
push ecx
lea edx, [ebp - 0x1a7c]
push edx
lea eax, [ebp - 0x1a78]
push eax
mov ecx, dword [ebp - 0x1a84]
push ecx
call dword [0xbfd41c]
test eax, eax
je 0x96daed
mov edx, dword [ebp - 0x1a7c]
push edx
call fcn.0095ac10
add esp, 4
push 0x103
mov eax, dword [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x268]
push ecx
call fcn.00a7c40e
add esp, 0xc
lea edx, [ebp - 0x268]
push edx
push 0xaa8700
push esi
call fcn.00a78f30
add esp, 0xc
push 0xaacda4
push 0xaebccc
push esi
call fcn.0095e130
add esp, 0xc
push 0x40904b0
push str._08X
lea edx, [ebp - 0x48]
call fcn.00853e40
add esp, 8
test esi, esi
je 0x96db24
cmp byte [esi], 0
jne 0x96db24
push esi
lea eax, [ebp - 0x34]
push eax
push 0xae1aa8
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
test eax, eax
je 0x96db24
push 0xaacda4
push 0xaebccc
push esi
call fcn.0095e130
add esp, 0xc
test edi, edi
je 0x96dcba
cmp dword [0xbfd424], 0
je 0x96dc83
cmp dword [0xbfd420], 0
je 0x96dc83
cmp dword [ebp - 0x1a90], 0
je 0x96dc83
lea ecx, [ebp - 0x48]
push ecx
push str.StringFileInfo_sProductVersion
lea edx, [ebp - 0x1a78]
call fcn.00853e40
add esp, 8
lea edx, [ebp - 0x1a80]
push edx
lea eax, [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x1a78]
push ecx
mov esi, dword [ebp - 0x1a84]
push esi
call dword [0xbfd41c]
test eax, eax
jne 0x96dc31
push str.StringFileInfo040904E4ProductVersion
lea edx, [ebp - 0x1a78]
call fcn.00853e40
add esp, 4
lea eax, [ebp - 0x1a80]
push eax
lea ecx, [ebp - 0x1a7c]
push ecx
lea edx, [ebp - 0x1a78]
push edx
push esi
call dword [0xbfd41c]
test eax, eax
je 0x96dbfa
mov eax, dword [ebp - 0x1a7c]
push eax
call fcn.0095ac10
add esp, 4
push 0x103
mov ecx, dword [ebp - 0x1a7c]
push ecx
lea edx, [ebp - 0x678]
push edx
call fcn.00a7c40e
add esp, 0xc
lea eax, [ebp - 0x678]
push eax
jmp 0x96dc62
lea ecx, [ebp - 0x5c]
push ecx
push str.StringFileInfo_sProductVersion
lea edx, [ebp - 0x1a78]
call fcn.00853e40
add esp, 8
lea edx, [ebp - 0x1a80]
push edx
lea eax, [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x1a78]
push ecx
push esi
call dword [0xbfd41c]
test eax, eax
je 0x96dc83
mov edx, dword [ebp - 0x1a7c]
push edx
call fcn.0095ac10
add esp, 4
push 0x103
mov eax, dword [ebp - 0x1a7c]
push eax
lea ecx, [ebp - 0x678]
push ecx
call fcn.00a7c40e
add esp, 0xc
lea edx, [ebp - 0x678]
push edx
push 0xaa8700
push edi
call fcn.00a78f30
add esp, 0xc
push 0xaacda4
push 0xaebccc
push edi
call fcn.0095e130
add esp, 0xc
test edi, edi
je 0x96dcba
cmp byte [edi], 0
jne 0x96dcba
push edi
lea eax, [ebp - 0x34]
push eax
push 0xaebe08
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
test eax, eax
je 0x96dcba
push 0xaacda4
push 0xaebccc
push edi
call fcn.0095e130
add esp, 0xc
mov eax, dword [ebp - 0x1ab4]
test eax, eax
je 0x96dcdb
push eax
lea ecx, [ebp - 0x34]
push ecx
push 0xaebe18
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
mov eax, dword [ebp - 0x1abc]
test eax, eax
je 0x96dcfc
push eax
lea edx, [ebp - 0x34]
push edx
push 0xaebe28
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
mov eax, dword [ebp - 0x1ac4]
test eax, eax
je 0x96dd1d
push eax
lea eax, [ebp - 0x34]
push eax
push 0xaebe34
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
mov esi, dword [ebp - 0x1acc]
test esi, esi
je 0x96dd76
push esi
lea ecx, [ebp - 0x34]
push ecx
push 0xaebe44
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
cmp byte [esi], 0
jne 0x96dd76
push esi
lea edx, [ebp - 0x34]
push edx
push str.LegalTrademarks
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
cmp byte [esi], 0
jne 0x96dd76
push esi
lea eax, [ebp - 0x34]
push eax
push str.LegalTrademarks1
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
mov eax, dword [ebp - 0x1ad4]
test eax, eax
je 0x96dd97
push eax
lea ecx, [ebp - 0x34]
push ecx
push 0xaebe78
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
mov eax, dword [ebp - 0x1ab0]
test eax, eax
je 0x96ddb8
push eax
lea edx, [ebp - 0x34]
push edx
push 0xae5fb0
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
mov esi, dword [ebp - 0x1a9c]
test esi, esi
je 0x96de68
mov byte [ebp - 0xa78], 0
push 0x3ff
push 0
lea eax, [ebp - 0xa77]
push eax
call fcn.00a7ffb0
add esp, 0xc
mov dword [esi], 0
lea ecx, [ebp - 0xa78]
push ecx
lea edx, [ebp - 0x34]
push edx
push str.OLESelfRegister
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
test eax, eax
je 0x96de10
mov dword [esi], 1
cmp dword [esi], 0
jne 0x96de68
lea eax, [ebp - 0xa78]
push eax
lea ecx, [ebp - 0x34]
push ecx
push str.PrivateBuild
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
test eax, eax
je 0x96de3c
mov dword [esi], 1
cmp dword [esi], 0
jne 0x96de68
lea edx, [ebp - 0xa78]
push edx
lea eax, [ebp - 0x34]
push eax
push str.SpecialBuild
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
test eax, eax
je 0x96de68
mov dword [esi], 1
mov eax, dword [ebp - 0x1ad0]
test eax, eax
je 0x96de89
push eax
lea ecx, [ebp - 0x34]
push ecx
push str.CompiledScript
lea ecx, [ebp - 0x28]
mov edx, ebx
call fcn.0096d0d0
add esp, 0xc
mov eax, dword [ebp - 0x1a88]
test eax, eax
je 0x96de9c
push eax
call fcn.00a78fec
add esp, 4
mov eax, dword [ebp - 0x1a84]
test eax, eax
je 0x96deaf
push eax
call fcn.00a78fec
add esp, 4
push ebx
call fcn.00a78fec
add esp, 4
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
jmp 0x96dee8
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret 0x30