Function at 0x51083b
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
push 0x10
call fcn.00535595
add esp, 4
mov dword [ebp - 0x1c], eax
mov edi, eax
mov esi, 0x6207f0
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], esp
push 0
mov ebx, dword [ebp + 8]
push dword [ebx]
call dword [sym.imp.version.dll_GetFileVersionInfoSizeA]
nop
nop
nop
nop
cmp dword [ebp - 0x24], esp
je 0x5108bd
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jle 0x510f28
push 0x80000301
push 0
push dword [ebp - 4]
push 1
mov ebx, 0x1bc
call fcn.00536520
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x5108fd
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], esp
mov eax, dword [ebp - 8]
test eax, eax
je 0x51090e
add eax, 8
push eax
push dword [ebp - 4]
push 0
mov ebx, dword [ebp + 8]
push dword [ebx]
call dword [sym.imp.version.dll_GetFileVersionInfoA]
nop
nop
nop
nop
cmp dword [ebp - 0x24], esp
je 0x510938
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x24], esp
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push str.VarFileInfoTranslation
mov eax, dword [ebp - 8]
test eax, eax
je 0x510952
add eax, 8
push eax
call dword [sym.imp.version.dll_VerQueryValueA]
nop
nop
nop
nop
cmp dword [ebp - 0x24], esp
je 0x51096f
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jne 0x510986
mov eax, 0x618809
jmp 0x510f49
push 0x80000301
push 0
push dword [ebp - 0x10]
push 1
mov ebx, 0x1bc
call fcn.00536520
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x5109b9
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], esp
push dword [ebp - 0x10]
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x5109d0
add eax, 8
push eax
call dword [sym.imp.kernel32.dll_RtlMoveMemory]
nop
nop
nop
nop
cmp dword [ebp - 0x24], esp
je 0x5109ed
push 6
call fcn.0053559b
add esp, 4
push 0
push 0
push 0
push 0x80000301
push 0
push 3
push reloc.WS2_32.dll_getpeername
push 0
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x510a12
mov eax, 0x6187fe
push eax
push 3
mov ebx, 0x19c
call fcn.00536650
add esp, 0x28
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
cmp ecx, 0x80000101
jne 0x510a46
and eax, 0xff
jmp 0x510a91
cmp ecx, 0x80000201
jne 0x510a51
cwde
jmp 0x510a91
cmp ecx, 0x80000301
je 0x510a91
cmp ecx, 0x80000401
je 0x510a91
mov dword [ebp - 0x34], eax
cmp ecx, 0x80000501
je 0x510a81
cmp ecx, 0x80000601
je 0x510a86
push 2
call fcn.0053559b
add esp, 4
fld dword [ebp - 0x34]
jmp 0x510a8c
mov dword [ebp - 0x30], edx
fld qword [ebp - 0x34]
call fcn.0049d9a9
push 0x80000301
push 0
push eax
push 1
mov ebx, 0x1d4
call fcn.00536840
add esp, 0x10
mov dword [ebp - 0x30], eax
push SysStringLen
push 0
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x510ac1
mov eax, 0x618809
push eax
push 1
mov ebx, 0x130
call fcn.005368d0
add esp, 0x10
mov dword [ebp - 0x34], eax
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x510ae7
push ebx
call fcn.0053558f
add esp, 4
fld qword [0x61897b]
fild dword [ebp - 0x34]
fstp qword [ebp - 0x3c]
fsub qword [ebp - 0x3c]
fstp qword [ebp - 0x44]
push SysStringLen
push 0
push 0x61892c
fld qword [ebp - 0x44]
call fcn.0049d9a9
push 0x80000301
push 0
push eax
push 2
mov ebx, 0x188
call fcn.005399f0
add esp, 0x1c
mov dword [ebp - 0x48], eax
push 0
push 0
push 0
push 0x80000301
push 0
push 3
push reloc.WS2_32.dll_getpeername
push 0
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x510b4f
mov eax, 0x6187fe
push eax
push 3
mov ebx, 0x19c
call fcn.00536650
add esp, 0x28
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x54]
cmp ecx, 0x80000101
jne 0x510b83
and eax, 0xff
jmp 0x510bce
cmp ecx, 0x80000201
jne 0x510b8e
cwde
jmp 0x510bce
cmp ecx, 0x80000301
je 0x510bce
cmp ecx, 0x80000401
je 0x510bce
mov dword [ebp - 0x5c], eax
cmp ecx, 0x80000501
je 0x510bbe
cmp ecx, 0x80000601
je 0x510bc3
push 2
call fcn.0053559b
add esp, 4
fld dword [ebp - 0x5c]
jmp 0x510bc9
mov dword [ebp - 0x58], edx
fld qword [ebp - 0x5c]
call fcn.0049d9a9
push 0x80000301
push 0
push eax
push 1
mov ebx, 0x1d4
call fcn.00536840
add esp, 0x10
mov dword [ebp - 0x58], eax
push dword [ebp - 0x58]
push dword [ebp - 0x48]
mov ecx, 2
call fcn.0049d94d
add esp, 8
mov dword [ebp - 0x5c], eax
mov ebx, dword [ebp - 0x48]
test ebx, ebx
je 0x510c11
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x58]
test ebx, ebx
je 0x510c21
push ebx
call fcn.0053558f
add esp, 4
mov eax, dword [ebp - 0x5c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x510c35
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
push 0x80000301
push 0
push 4
push SysStringLen
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x510c58
mov eax, 0x618809
push eax
push 2
mov ebx, 0x138
call fcn.00536870
add esp, 0x1c
mov dword [ebp - 0x24], eax
push 0x80000301
push 0
push 4
push SysStringLen
push 0
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x510c8d
mov eax, 0x618809
push eax
push 2
mov ebx, 0x134
call fcn.005368e0
add esp, 0x1c
mov dword [ebp - 0x28], eax
push dword [ebp - 0x28]
push dword [ebp - 0x24]
mov ecx, 2
call fcn.0049d94d
add esp, 8
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x510cc9
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x510cd9
push ebx
call fcn.0053558f
add esp, 4
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x510ced
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
mov eax, 0x620eee
push eax
mov ebx, eax
call fcn.0049d8c2
pop eax
sub ebx, eax
push ecx
push ebx
push eax
shl ecx, 2
add ecx, ebx
push ecx
call fcn.00535595
add esp, 4
pop esi
mov edi, eax
pop ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
test ecx, ecx
je 0x510d4e
push eax
lodsd eax, dword [esi]
push esi
push edi
push ecx
test eax, eax
je 0x510d42
push eax
mov ebx, eax
call fcn.0049d8e2
inc eax
push eax
call fcn.00535595
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop ecx
pop edi
pop esi
stosd dword es:[edi], eax
dec ecx
jne 0x510d25
pop eax
push eax
mov ebx, dword [ebp - 0x1c]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x510d6d
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x510d69
imul eax, dword [ebx]
jmp 0x510d5e
mov ecx, eax
test ecx, ecx
je 0x510d8c
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x510d85
push ebx
push eax
call fcn.0053558f
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x510d73
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp + 0x10], 0
jne 0x510da9
mov dword [ebp + 0xc], 1
mov ebx, dword [ebp - 0x1c]
call fcn.0049d8c2
push ebx
push ecx
mov eax, dword [ebp + 0xc]
dec eax
jns 0x510dc6
push 4
call fcn.0053559b
add esp, 4
pop ecx
pop ebx
cmp eax, ecx
jl 0x510dd9
push 1
call fcn.0053559b
add esp, 4
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x24]
push dword [ebx]
push dword [ebp - 0x18]
push str.StringFileInfo_
mov ecx, 3
call fcn.0049d94d
add esp, 0xc
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x28]
mov eax, dword [ebp - 8]
test eax, eax
je 0x510e16
add eax, 8
push eax
call dword [sym.imp.version.dll_VerQueryValueA]
nop
nop
nop
nop
cmp dword [ebp - 0x2c], esp
je 0x510e33
push 6
call fcn.0053559b
add esp, 4
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x510e46
push ebx
call fcn.0053558f
add esp, 4
cmp dword [ebp - 0x30], 0
je 0x510f28
push 0x80000301
push 0
push dword [ebp - 0x10]
push 1
mov ebx, 0x1bc
call fcn.00536520
add esp, 0x10
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x510e83
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], esp
push dword [ebp - 0x10]
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x510e9a
add eax, 8
push eax
call dword [sym.imp.kernel32.dll_RtlMoveMemory]
nop
nop
nop
nop
cmp dword [ebp - 0x24], esp
je 0x510eb7
push 6
call fcn.0053559b
add esp, 4
push 0
push 0
push 0
push 0x80000301
push 0
push 0xa
push reloc.WS2_32.dll_getpeername
push 0
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x510edc
mov eax, 0x6187fe
push eax
push 3
mov ebx, 0x19c
call fcn.00536650
add esp, 0x28
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
cmp ecx, 0x80000004
je 0x510f10
push 5
call fcn.0053559b
add esp, 4
mov eax, dword [ebp - 0x2c]
push eax
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x510f24
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x510f44
push eax
mov ebx, eax
call fcn.0049d8e2
inc eax
push eax
call fcn.00535595
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x510f49
push eax
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x510f5a
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x510f6a
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x510f7a
push ebx
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x1c]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x510f98
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x510f94
imul eax, dword [ebx]
jmp 0x510f89
mov ecx, eax
test ecx, ecx
je 0x510fb7
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x510fb0
push ebx
push eax
call fcn.0053558f
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x510f9e
call fcn.0053558f
add esp, 4
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x510fcf
push ebx
call fcn.0053558f
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 0xc