Function at 0x442900
Capabilities:
Copy file
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x524
mov eax, dword [0x4c143c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
test esi, esi
je 0x442c16
mov edi, 0x208
lea eax, [ebp - 0x518]
xor ebx, ebx
push edi
push ebx
push eax
mov byte [esi], bl
call fcn.0045b1d0
push ebx
push str.SHFolder.dll
call fcn.004433ee
add esp, 0x14
test eax, eax
je 0x442c16
push 0x494be8
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x442c16
lea ecx, [ebp - 0x518]
push ecx
push ebx
push ebx
push 0x802b
push ebx
call eax
test eax, eax
js 0x442c16
push 0x497acc
lea eax, [ebp - 0x518]
push edi
push eax
call fcn.00465e4f
lea eax, [ebp - 0x518]
push eax
call fcn.00444edf
add esp, 0x10
test eax, eax
jne 0x4429b5
lea eax, [ebp - 0x518]
push eax
call fcn.004448e3
pop ecx
test eax, eax
je 0x442c16
mov edi, 0x104
lea eax, [ebp - 0x108]
push edi
push ebx
push eax
call fcn.0045b1d0
add esp, 0xc
lea eax, [ebp - 0x108]
mov ecx, 0x4c3638
push edi
push eax
call fcn.0043e689
test al, al
je 0x442c16
lea eax, [ebp - 0x108]
push 0x5c
push eax
call fcn.004662f3
pop ecx
pop ecx
test eax, eax
je 0x442c16
push eax
call fcn.004662b8
push eax
lea eax, [ebp - 0x518]
push eax
push 0x494bc0
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
push edi
lea eax, [ebp - 0x310]
push ebx
push eax
call fcn.0045b1d0
push edi
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.0045b1d0
add esp, 0x2c
cmp byte [ebp - 0x108], bl
je 0x442bdc
lea eax, [ebp - 0x524]
push eax
lea eax, [ebp - 0x108]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x51c], eax
test eax, eax
je 0x442bdc
push eax
call fcn.0045f1f4
mov edi, eax
pop ecx
test edi, edi
je 0x442bdc
push edi
push dword [ebp - 0x51c]
lea eax, [ebp - 0x108]
push dword [ebp - 0x524]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x442ae5
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x520]
push eax
push 0x494bbc
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x442ae5
cmp dword [ebp - 0x51c], ebx
je 0x442ae5
mov ecx, dword [ebp - 0x520]
movzx eax, word [ecx + 0xc]
push eax
movzx eax, word [ecx + 0xe]
push eax
movzx eax, word [ecx + 8]
push eax
movzx eax, word [ecx + 0xa]
push eax
lea eax, [ebp - 0x310]
push 0x4953a4
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
push edi
call fcn.0045f1d9
pop ecx
cmp byte [ebp - 0x310], bl
je 0x442bdc
cmp byte [esi], bl
je 0x442bdc
lea eax, [ebp - 0x524]
push eax
push esi
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x520], eax
test eax, eax
je 0x442bdc
push eax
call fcn.0045f1f4
mov edi, eax
pop ecx
test edi, edi
je 0x442bdc
push edi
push dword [ebp - 0x520]
push dword [ebp - 0x524]
push esi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x442b97
lea eax, [ebp - 0x520]
push eax
lea eax, [ebp - 0x51c]
push eax
push 0x494bbc
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x442b97
cmp dword [ebp - 0x520], ebx
je 0x442b97
mov ecx, dword [ebp - 0x51c]
movzx eax, word [ecx + 0xc]
push eax
movzx eax, word [ecx + 0xe]
push eax
movzx eax, word [ecx + 8]
push eax
movzx eax, word [ecx + 0xa]
push eax
lea eax, [ebp - 0x20c]
push 0x4953a4
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
push edi
call fcn.0045f1d9
pop ecx
cmp byte [ebp - 0x20c], bl
je 0x442bdc
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x310]
push eax
call fcn.004660fd
pop ecx
pop ecx
test eax, eax
je 0x442bd8
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x310]
push eax
call fcn.004447ab
pop ecx
pop ecx
test al, al
je 0x442bdc
xor eax, eax
jmp 0x442c19
push ebx
push esi
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
jne 0x442c05
push ebx
lea eax, [ebp - 0x108]
push esi
push eax
call fcn.0044357c
add esp, 0xc
neg eax
sbb ebx, ebx
inc ebx
lea eax, [ebp - 0x518]
push eax
call fcn.0044267b
pop ecx
mov eax, ebx
jmp 0x442c19
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00458eeb
leave
ret