Function at 0x430520
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46f571
mov eax, dword fs:[0]
push eax
sub esp, 0x180
mov eax, dword [0x495580]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x130], edi
call fcn.004304c0
push pe_nt_image_headers32
lea eax, [ebp - 0x120]
push 0
push eax
call fcn.0044cff0
add esp, 0xc
mov dword [ebp - 0x124], 0x114
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x120], 6
jne 0x43059f
cmp dword [ebp - 0x11c], 2
jae 0x4305a5
jmp 0x430665
jbe 0x430665
mov ecx, edi
call fcn.004304c0
lea ecx, [ebp - 0x18c]
call fcn.0043a809
lea ecx, [ebp - 0x178]
mov dword [ebp - 4], 0
call fcn.00438f3a
lea edx, [ebp - 0x178]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18c]
call fcn.00416190
mov bl, al
test bl, bl
je 0x430640
mov ecx, dword [ebp - 0x170]
xor esi, esi
mov eax, ecx
mov dword [ebp - 0x12c], eax
test eax, eax
jle 0x430640
test esi, esi
js 0x43086e
cmp esi, dword [ebp - 0x184]
jge 0x43086e
mov eax, dword [ebp - 0x188]
movzx edx, word [eax + esi*2]
cmp esi, ecx
jge 0x43086e
mov eax, dword [ebp - 0x174]
mov ecx, edi
push dword [eax + esi*4]
push edx
call fcn.004310a0
inc esi
cmp esi, dword [ebp - 0x12c]
jge 0x430640
mov ecx, dword [ebp - 0x170]
jmp 0x4305f8
lea ecx, [ebp - 0x178]
call fcn.00438f51
lea ecx, [ebp - 0x18c]
mov dword [ebp - 4], 0xffffffff
call fcn.0043a820
test bl, bl
jne 0x430850
mov ecx, edi
call fcn.004304c0
lea ecx, [ebp - 0x164]
call fcn.00438f3a
mov dword [ebp - 4], 2
movaps xmm0, xmmword [0x48a0c0]
mov dword [ebp - method.CMap_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const___class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const__.virtual_0], vtable.CMap_unsigned_long_int__unsigned_long_int__unsigned_long_int__unsigned_long_int_.0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0x11
movups xmmword [ebp - 0x144], xmm0
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 3
call fcn.00415260
test al, al
je 0x4307e7
cmp dword [ebp - 0x15c], 0
jle 0x4307e7
lea ecx, [ebp - 0x150]
call fcn.00414fb0
test al, al
je 0x4307e7
mov eax, dword [ebp - 0x15c]
xor ebx, ebx
mov ecx, eax
mov dword [ebp - 0x134], ecx
mov byte [ebp - 0x125], 1
cmp ebx, ecx
jge 0x4307eb
test ebx, ebx
js 0x43086e
cmp ebx, eax
jge 0x43086e
mov eax, dword [ebp - 0x160]
mov ecx, 0x1f31d
mov dword [ebp - 0x12c], 0xffffffff
mov edi, dword [eax + ebx*4]
mov eax, 0x834e0b5f
imul edi
mov eax, edi
add edx, edi
sar edx, 0x10
mov esi, edx
shr esi, 0x1f
add esi, edx
cdq
idiv ecx
imul eax, esi, 0xb14
imul ecx, edx, 0x41a7
sub ecx, eax
lea esi, [ecx + 0x7fffffff]
cmovns esi, ecx
xor edx, edx
mov eax, esi
div dword [ebp - 0x148]
mov eax, dword [ebp - 0x14c]
test eax, eax
je 0x430782
mov eax, dword [eax + edx*4]
test eax, eax
je 0x430782
cmp dword [eax + 0xc], esi
jne 0x43077b
cmp dword [eax], edi
je 0x4307c2
mov eax, dword [eax + 8]
test eax, eax
jne 0x430772
xor ecx, ecx
test ecx, ecx
mov eax, edi
movzx ecx, di
mov esi, 0xffff
cmovne eax, dword [ebp - 0x12c]
mov edx, ecx
cmp cx, si
je 0x4307d6
cmp eax, 0xffffffff
je 0x4307d6
push eax
push ecx
mov ecx, dword [ebp - 0x130]
call fcn.004310a0
mov eax, dword [ebp - 0x15c]
inc ebx
mov ecx, dword [ebp - 0x134]
jmp 0x4306f1
test eax, eax
je 0x430782
mov eax, dword [eax + 4]
mov ecx, 1
mov dword [ebp - 0x12c], eax
jmp 0x430784
mov ecx, dword [ebp - 0x130]
xor bl, bl
push eax
push edx
call fcn.004310a0
jmp 0x4307f1
xor bl, bl
jmp 0x4307f1
mov bl, byte [ebp - 0x125]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x14c]
mov dword [ebp - method.CMap_class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const___class_ATL::CStringT_wchar_t__class_StrTraitMFC_wchar_t__class_ATL::ChTraitsCRT_wchar_t_____wchar_t_const__.virtual_0], vtable.CMap_unsigned_long_int__unsigned_long_int__unsigned_long_int__unsigned_long_int_.0
test eax, eax
je 0x43081c
push eax
call fcn.00437038
add esp, 4
mov dword [ebp - 0x14c], 0
mov ecx, dword [ebp - 0x13c]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
call fcn.0043ab57
lea ecx, [ebp - 0x164]
mov dword [ebp - 0x13c], 0
call fcn.00438f51
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044ae3d
mov esp, ebp
pop ebp
ret
call fcn.00436600
int3