Function at 0x4083b8
Capabilities:
Check os version
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa34
mov eax, dword [0x47b570]
xor eax, esp
mov dword [esp + 0xa30], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
push dword [ebp + 0x18]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x10]
push ecx
push eax
mov dword [esp + 0x30], ecx
push esi
mov ecx, str.Zbv05AiN1OxUnPr_GfOB2EiV9OoY5I3HQ53u5xnjj9xNw7uuL5fJinXeu6xZ5MmPA5X_gQ
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
call fcn.00420467
push eax
call fcn.0041f822
add esp, 0x14
mov edi, 0x11c
push edi
lea eax, [esp + 0x6c]
push 0
push eax
mov byte [esp + 0x1b], 0
call fcn.00434cd0
add esp, 0xc
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x6c], edi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x6c], 6
jb 0x408446
mov byte [esp + 0xf], 1
lea eax, [esp + 0x830]
push eax
mov ebx, 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x40847f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_get_the_Temp_folder:__d
call fcn.004312d5
pop ecx
xor eax, eax
pop ecx
mov ecx, dword [esp + 0x10]
inc eax
mov dword [ecx], eax
jmp 0x4088a3
push 0
call fcn.00430451
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x18]
imul eax, eax, 0x3c
mov dword [esp + 0x20], edx
cdq
add eax, dword [esp + 0x1c]
pop ecx
adc edx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x30], edx
call fcn.004316e0
pop ecx
mov edi, eax
push dword [edi + 4]
lea eax, [esp + 0x834]
push dword [edi + 8]
push esi
push eax
push str._sami_s_d_d.exe
lea eax, [esp + 0x63c]
push ebx
push eax
call fcn.004311bc
mov eax, dword [edi + 0x10]
add esp, 0x1c
push dword [edi + 4]
inc eax
push dword [edi + 8]
mov ebx, 0x76c
push dword [edi + 0xc]
push eax
mov eax, dword [edi + 0x14]
add eax, ebx
push eax
push str._d__.2d__.2dT_.2d:_.2d:00
lea eax, [esp + 0x20c]
push 0x19
push eax
call fcn.004311bc
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add eax, 0x834
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
adc ecx, 0
push eax
mov dword [esp + 0x68], ecx
call fcn.004316e0
mov ecx, dword [eax + 0x10]
add esp, 0x24
push dword [edi + 4]
inc ecx
push dword [eax + 8]
push dword [eax + 0xc]
mov eax, dword [eax + 0x14]
push ecx
add eax, ebx
push eax
push str._d__.2d__.2dT_.2d:_2d:00
lea eax, [esp + 0x1a4]
push 0x19
push eax
call fcn.004311bc
mov edi, dword [ebp + 0x18]
mov eax, edi
imul eax, eax, 0x78
cdq
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x60], edx
call fcn.004316e0
add esp, 0x24
push dword [eax + 4]
push dword [eax + 8]
push dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
inc ecx
push ecx
add eax, ebx
push eax
push str._d__.2d__.2dT_.2d:_.2d:00
lea eax, [esp + 0x1d8]
push 0x19
push eax
call fcn.004311bc
add esp, 0x20
cmp byte [esp + 0xf], 0
je 0x408627
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1f4]
push eax
lea eax, [esp + 0x62c]
push eax
push esi
lea ecx, [esp + 0x198]
call fcn.00429f57
add esp, 0xc
test eax, eax
je 0x4085e8
mov ecx, str.ZJb0_0aNrd1DmO_uONiZwUqWu8v1IbKQoz37ijWncQc2d3qFduLywaN9KsfxYvOUpy76lzTgdhIlfTqGJeazlWSu0Txc6KddmR
push esi
call fcn.00420467
push eax
call fcn.0041f822
jmp 0x40846f
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x18c]
push eax
lea eax, [esp + 0x1c4]
push eax
push esi
lea edx, [esp + 0x634]
call fcn.0042a1dd
add esp, 0xc
test eax, eax
je 0x408719
push esi
push 0x407d
mov ecx, str.Zbv05AiN1OxUnPr_GfOB2EiV9OoY5I3HQ53u5xnjj9xNw7vNHd6CykLZ7Rc1JzKR43qx3ZzsZIiu_qENvO20eK8Ksa2JyPA6q7gQ
call fcn.00420467
pop ecx
jmp 0x4085dd
mov ecx, dword [esp + 0x14]
push edi
push esi
lea edx, [esp + 0x630]
call fcn.0042a4b1
pop ecx
pop ecx
test eax, eax
je 0x40864c
push esi
push 0x27db
mov ecx, str.Zbv05AiN1OxUnPr_GfOB2EiV9OoY5I3HQ53u5xnjj9xNw7vNHd6CykLZ7Rc1JzKR43qx2XisBRl_fkHdPO20eK8Ksa2JyPA6q7gQ
jmp 0x40861f
add edi, 0xa
push edi
mov edi, dword [esp + 0x28]
push esi
lea ecx, [esp + 0x630]
call fcn.0042a88b
pop ecx
pop ecx
test eax, eax
je 0x408671
mov ecx, str.Zbv05AiN1OxUnPr_GfOB2EiV9OoY5I3HQ53u5xnjj9xNw7vNHd6CykLZ7Rc1JzKR43qx3ZzsZIiu_qENvO20eK8Ksa2JyPA6q7gQ
jmp 0x4085d7
mov edi, dword [ebp + 0x18]
lea eax, [edi + 0x14]
push eax
push esi
lea ecx, [esp + 0x630]
call fcn.0042ab7a
pop ecx
pop ecx
test eax, eax
je 0x4086a3
push esi
push 0x34ee
push 0x5c4
mov ecx, str.Zbv05AiN1OxUnPr_GfOLw0ON_tgf34vLU5X3x3EhZUGv_riENKKj1KWugO0o_bQ9n6qxjSgspSnLv_HcSFj0CW6atZ5M6l
call fcn.00420467
pop ecx
jmp 0x408624
lea ebx, [esp + 0x4c]
call fcn.0042af20
cmp dword [esp + 0x60], 8
mov ecx, dword [esp + 0x4c]
jae 0x4086b9
mov ecx, ebx
add edi, 0x15
push edi
push str.sfile
call fcn.0042ab7a
pop ecx
pop ecx
test eax, eax
je 0x408708
push esi
push 0x3f82
push 0x4f4d
mov ecx, str.Zbv05AiN1OxUnPr_GfOLw0ON_tgf34vLU5X3x3EhZUGv_riENKKj1KWugO0o_bQ9n6qxjSgspSnLv_HcSFj0CW6atZ5M6l
call fcn.00420467
pop ecx
pop ecx
push eax
call fcn.0041f822
mov eax, dword [esp + 0x18]
pop ecx
xor ebx, ebx
inc ebx
pop ecx
push ebx
xor edi, edi
lea esi, [esp + 0x50]
mov dword [eax], ebx
call fcn.00402342
mov eax, ebx
jmp 0x4088a3
push 1
xor edi, edi
lea esi, [esp + 0x50]
call fcn.00402342
mov esi, dword [esp + 0x30]
push esi
push 0x694d
mov ecx, str.Zbv05AiN1OxUnPr_GfOB2EiV9OoY5I3HQ53u5xnjj9xNw7vPE8CAw0mY_6sd2YqPT5fo_x3bgo9SmOjgD5eZylScugO0o_bQ5277RPFzop12ZE
call fcn.00420467
pop ecx
push eax
call fcn.0041f822
pop ecx
pop ecx
push 0x46b86c
push esi
mov edi, str.RaKCHsy9x7
push 0x852
mov ecx, edi
call fcn.004204c2
pop ecx
push eax
lea eax, [esp + 0x234]
push eax
call fcn.0040b275
push 0xa
lea eax, [esp + 0x43c]
push eax
push 0
call fcn.004317ae
mov ecx, dword [esp + 0x50]
add ecx, 0xffffff9c
add esp, 0x1c
lea ebx, [esp + 0x428]
lea edx, [esp + 0x228]
mov dword [esp + 0x14], ecx
call fcn.00408335
push 0x46a6b8
push esi
push 0x149e
mov ecx, edi
call fcn.004204c2
pop ecx
push eax
lea eax, [esp + 0x234]
push eax
call fcn.0040b275
push 0xa
mov eax, ebx
push eax
push dword [esp + 0x34]
push dword [esp + 0x34]
call fcn.0043184b
mov ecx, dword [esp + 0x34]
add esp, 0x20
lea edx, [esp + 0x228]
call fcn.00408335
push 0x46afbc
push esi
mov ecx, edi
call fcn.004204c2
push eax
lea eax, [esp + 0x234]
push eax
call fcn.0040b275
mov ecx, dword [esp + 0x2c]
push 0xa
push 0x100
mov eax, ebx
push eax
mov eax, dword [esp + 0x34]
add eax, 0x834
adc ecx, 0
push ecx
push eax
call fcn.00431ae4
mov ecx, dword [esp + 0x38]
add esp, 0x24
lea edx, [esp + 0x228]
call fcn.00408335
push 0x46a148
push esi
mov ecx, edi
call fcn.004204c2
push eax
lea eax, [esp + 0x234]
push eax
call fcn.0040b275
push 0xa
push 0x100
mov eax, ebx
push eax
push 0
push 8
call fcn.00431ae4
mov ecx, dword [esp + 0x38]
add esp, 0x24
lea edx, [esp + 0x228]
call fcn.00408335
push 0x46b880
push esi
mov ecx, edi
call fcn.004204c2
push eax
lea eax, [esp + 0x234]
push eax
call fcn.0040b275
push 0xa
mov eax, ebx
push eax
push 1
call fcn.004317ae
mov ecx, dword [esp + 0x30]
add esp, 0x1c
lea edx, [esp + 0x228]
call fcn.00408335
mov eax, dword [esp + 0x10]
and dword [eax], 0
xor eax, eax
mov ecx, dword [esp + 0xa3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042fd59
mov esp, ebp
pop ebp
ret 0x18