Function at 0x10043627
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
jb 0x1004353f
mov eax, dword [eax]
lea ecx, [ebp - 0x34]
push ecx
lea ecx, [ebp - 0x30]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x28]
push ecx
push str._d._d._d._d
push eax
call fcn.101fa50d
mov eax, dword [ebp - 0x28]
shl eax, 0x10
add eax, dword [ebp - 0x2c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x30]
shl eax, 0x10
add eax, dword [ebp - 0x34]
push 0x1025c02a
push 0x4000
mov dword [ebp - 0x20], eax
call fcn.101c85a0
mov edi, eax
add esp, 0x20
mov dword [ebp - 0x3c], edi
test edi, edi
je 0x100436d3
mov ecx, dword [esi]
mov esi, dword [ecx]
cmp esi, ecx
je 0x100436ca
push ebx
mov edi, edi
push 0
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10041c20
add esp, 0xc
lea eax, [ebp - 0x1c]
xor bl, bl
cmp dword [ebp - 8], 8
jb 0x100435c0
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x44]
push ecx
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je case.default.0x10043620
cmp eax, 0x4000
jae case.default.0x10043620
cmp dword [ebp - 8], 8
lea ecx, [ebp - 0x1c]
jb 0x100435e9
mov ecx, dword [ebp - 0x1c]
push edi
push eax
push 0
push ecx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je case.default.0x10043620
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
push eax
push 0x10202944
push edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je case.default.0x10043620
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
movzx eax, byte [ebp + 0xc]
cmp eax, 3
ja case.default.0x10043620
jmp dword [eax*4 + 0x100436e8]
cmp edx, dword [ebp - 0x20]
jne 0x10043631
cmp ecx, dword [ebp - 0x24]
je 0x10043663
xor bl, bl
jmp case.default.0x10043620
cmp ecx, dword [ebp - 0x24]
jl 0x10043631
jg 0x10043663
cmp edx, dword [ebp - 0x20]
jae 0x10043663
xor bl, bl
jmp case.default.0x10043620
cmp ecx, dword [ebp - 0x24]
jg 0x10043631
jl 0x10043663
cmp edx, dword [ebp - 0x20]
jbe 0x10043663
xor bl, bl
jmp case.default.0x10043620
cmp edx, dword [ebp - 0x20]
jne 0x10043663
cmp ecx, dword [ebp - 0x24]
jne 0x10043663
xor bl, bl
jmp case.default.0x10043620
mov bl, 1
mov edi, dword [esi]
test bl, bl
mov ebx, dword [ebp - 0x38]
jne 0x10043686
mov eax, dword [esi + 4]
push esi
mov dword [eax], edi
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov ecx, ebx
dec dword [ebx + 4]
call fcn.10040fe0
mov edx, dword [ebp - 8]
cmp edx, 8
jb 0x100436bc
mov ecx, dword [ebp - 0x1c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x100436b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100436e3
push edx
push ecx
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
cmp edi, dword [ebx]
mov esi, edi
mov edi, dword [ebp - 0x3c]
jne 0x100435a0
pop ebx
push edi
call sub.msvcrt.dll_void___cdecl_operator_delete___void__
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.101f99c6
mov esp, ebp
pop ebp
ret
call fcn.101e6c40
daa
add al, 16
xor eax, 0x45100436
add al, 16
push ebp
add al, 16
int3