Function at 0x470054
Capabilities:
Check os version
Get system information on windows

Disassembly:
mov eax, 0x6c80d8
call fcn.006b9c3c
sub esp, 0xbb0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x40], ecx
xor ebx, ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 4], 1
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x208], ebx
mov byte [ebp - 4], 2
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x24], 0xf
mov dword [ebp - 0x28], ebx
mov byte [ebp - 0x38], bl
mov byte [ebp - 4], 3
mov dword [ebp - 0x44], ebx
mov edi, 0x11c
push edi
call fcn.00689e2f
mov esi, eax
mov dword [ebp - 0x20], esi
push edi
push ebx
push esi
call fcn.005077d5
add esp, 0x10
mov dword [esi], edi
xor eax, eax
lea edi, [ebp - 0x368]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
movaps xmm0, xmmword [0x748fd0]
movups xmmword [ebp - 0x35c], xmm0
movaps xmm0, xmmword [0x748fc0]
movups xmmword [ebp - 0x34c], xmm0
mov dword [ebp - 0x33c], 0x7b
mov ecx, ebx
mov dword [ebp - 0x10c], ecx
push 9
pop eax
push 0x7f
pop esi
mov dword [ebp - 0x18], esi
cmp ecx, eax
jae 0x470130
mov eax, dword [ebp + ecx*4 - 0x35c]
sub eax, 0x72
imul eax, eax, 0xc
cdq
idiv esi
lea eax, [esi + edx]
cdq
idiv esi
mov byte [ebp + ecx - 0x368], dl
inc ecx
mov dword [ebp - 0x10c], ecx
push 9
pop eax
jmp 0x470103
mov byte [ebp - 0x35f], bl
lea eax, [ebp - 0x368]
push eax
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
mov esi, eax
xor eax, eax
lea edi, [ebp - 0x3fc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
movaps xmm0, xmmword [0x748360]
movups xmmword [ebp - 0x3ec], xmm0
movaps xmm0, xmmword [0x7467c0]
movups xmmword [ebp - 0x3dc], xmm0
movaps xmm0, xmmword [0x745e90]
movups xmmword [ebp - 0x3cc], xmm0
mov dword [ebp - 0x3bc], 0x15
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x110], ecx
cmp ecx, 0xd
jae 0x4701b6
push 0x51
pop eax
sub eax, dword [ebp + ecx*4 - 0x3ec]
imul eax, eax, 0x17
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x3fc], dl
inc ecx
jmp 0x47018b
mov byte [ebp - 0x3ef], bl
lea eax, [ebp - 0x3fc]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov esi, eax
push 0x24
push ebx
lea eax, [ebp - 0x3b8]
push eax
call fcn.005077d5
add esp, 0xc
mov edi, dword [ebp - 0x20]
push edi
call esi
test eax, eax
je 0x470282
push 0x11c
push edi
call fcn.0068a1b1
pop ecx
pop ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], 0xf
mov dword [ebp - 0x6c], 0x6a
mov dword [ebp - 0x68], 4
mov ecx, ebx
push 0x7f
pop esi
mov dword [ebp - 0x114], ecx
cmp ecx, 3
jae 0x47023b
push 0x4c
pop eax
sub eax, dword [ebp + ecx*4 - 0x70]
imul eax, eax, 0x2d
cdq
idiv esi
lea eax, [esi + edx]
cdq
idiv esi
mov byte [ebp + ecx - 0x74], dl
inc ecx
jmp 0x470216
mov byte [ebp - 0x71], bl
lea eax, [ebp - 0x74]
push eax
mov esi, dword [ebp - 0x40]
mov ecx, esi
call fcn.00411aae
xor eax, eax
inc eax
mov dword [ebp - 0x3c], eax
mov byte [ebp - 4], 2
push ebx
push eax
lea ecx, [ebp - 0x38]
call fcn.00411bc8
mov byte [ebp - 4], 1
test ebx, ebx
je 0x47026f
mov ecx, ebx
call fcn.0040f5b8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x3b8]
push eax
call dword [sym.imp.KERNEL32.DLL_GetNativeSystemInfo]
mov esi, dword [ebp - 0x20]
cmp dword [esi + 0x10], 2
jne 0x4713f8
cmp dword [esi + 4], 4
jbe 0x4713f8
cmp dword [esi + 4], 0xb
jne 0x47039d
cmp dword [esi + 8], ebx
jne 0x47039d
cmp byte [esi + 0x11a], 1
jne 0x470346
mov dword [ebp - 0x198], ebx
mov dword [ebp - 0x194], ebx
movaps xmm0, xmmword [0x747770]
movups xmmword [ebp - 0x190], xmm0
push 0x71
pop eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], 0x4f
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x118], ecx
cmp ecx, 7
jae 0x470329
push 0xf
pop eax
sub eax, dword [ebp + ecx*4 - 0x190]
imul eax, eax, 0x3f
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x198], dl
inc ecx
jmp 0x4702fe
mov byte [ebp - 0x191], bl
lea eax, [ebp - 0x198]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x198]
push eax
jmp 0x470395
cmp dword [esi + 0xc], 0x4563
jb 0x47039d
push ecx
lea ecx, [ebp - 0x608]
call fcn.00488dc4
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0x78], edi
cmp edi, 0x10
jae 0x470387
push 0x42
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x14
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x470360
mov byte [eax + 0x10], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 0xa
jne 0x470525
cmp dword [esi + 8], ebx
jne 0x470525
cmp byte [esi + 0x11a], 1
jne 0x470481
cmp dword [esi + 0xc], 0x55ec
jae 0x47044f
mov dword [ebp - 0x1bc], ebx
mov dword [ebp - 0x1b8], ebx
movaps xmm0, xmmword [0x746b80]
movups xmmword [ebp - 0x1b4], xmm0
mov dword [ebp - 0x1a4], 0x5a
mov dword [ebp - 0x1a0], 0x49
mov dword [ebp - 0x19c], 0x37
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x7c], ecx
cmp ecx, 7
jae 0x47042f
mov eax, dword [ebp + ecx*4 - 0x1b4]
sub eax, 0x13
imul eax, eax, 0xf
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x1bc], dl
inc ecx
jmp 0x470407
mov byte [ebp - 0x1b5], bl
lea eax, [ebp - 0x1bc]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x1bc]
push eax
jmp 0x47051d
push str.Win_11
lea ecx, [ebp - 0x174]
call fcn.00494750
mov ecx, eax
call fcn.0049471e
mov esi, eax
push esi
call fcn.0040f475
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.00411f4c
mov esi, dword [ebp - 0x20]
jmp 0x470525
cmp dword [esi + 0xc], 0x3839
jne 0x4704c2
push ecx
lea ecx, [ebp - 0x65c]
call fcn.00488d55
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0x80], edi
cmp edi, 0x10
jae 0x47050f
push 0x33
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x1a
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x47049b
cmp dword [esi + 0xc], 0x4563
jb 0x470525
cmp dword [esi + 0xc], 0x55ec
jae 0x470525
push ecx
lea ecx, [ebp - 0x6b0]
call fcn.00488ce8
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0x84], edi
cmp edi, 0x10
jae 0x47050f
push 0x58
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x23
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x4704e5
push eax
mov byte [eax + 0x10], bl
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 6
jne 0x4707dd
cmp dword [esi + 8], 3
jne 0x470607
cmp byte [esi + 0x11a], 1
jne 0x4705b6
xor eax, eax
lea edi, [ebp - 0x394]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x746ae0]
movups xmmword [ebp - 0x388], xmm0
movaps xmm0, xmmword [0x746ac0]
movups xmmword [ebp - 0x378], xmm0
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x88], ecx
cmp ecx, 8
jae 0x470599
push 0x45
pop eax
sub eax, dword [ebp + ecx*4 - 0x388]
imul eax, eax, 0x24
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x394], dl
inc ecx
jmp 0x47056e
mov byte [ebp - 0x38c], bl
lea eax, [ebp - 0x394]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x394]
push eax
jmp 0x4705ff
push ecx
lea ecx, [ebp - 0x914]
call fcn.00488c71
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0x8c], edi
cmp edi, 0x13
jae 0x4705f1
push 0x24
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x2c
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x4705c7
mov byte [eax + 0x13], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 6
jne 0x4707dd
cmp dword [esi + 8], ebx
jne 0x4706a3
cmp byte [esi + 0x11a], 1
jne 0x470652
push str.Win_Vista
lea ecx, [ebp - 0x240]
call fcn.00488bbb
mov ecx, eax
call fcn.00488b89
mov esi, eax
push esi
call fcn.0040f475
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.00411f4c
mov esi, dword [ebp - 0x20]
jmp 0x4706a3
push ecx
lea ecx, [ebp - 0x704]
call fcn.00488b1f
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0x90], edi
cmp edi, 0x10
jae 0x47068d
push 0x60
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x2d
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x470663
mov byte [eax + 0x10], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 6
jne 0x4707dd
cmp dword [esi + 8], 2
jne 0x470740
cmp byte [esi + 0x11a], 1
jne 0x4706ef
push str.Win_8
lea ecx, [ebp - 0x138]
call fcn.0049df78
mov ecx, eax
call fcn.0049df46
mov esi, eax
push esi
call fcn.0040f475
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.00411f4c
mov esi, dword [ebp - 0x20]
jmp 0x470740
push ecx
lea ecx, [ebp - 0x758]
call fcn.00488ab5
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0x94], edi
cmp edi, 0x10
jae 0x47072a
mov ecx, dword [eax + edi*4 + 0x14]
sub ecx, 0x64
imul eax, ecx, 0x13
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x470700
mov byte [eax + 0x10], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 6
jne 0x4707dd
cmp dword [esi + 8], 1
jne 0x4707dd
cmp byte [esi + 0x11a], 1
jne 0x47078c
push str.Win_7
lea ecx, [ebp - 0x138]
call fcn.0049b8ea
mov ecx, eax
call fcn.0049b8b8
mov esi, eax
push esi
call fcn.0040f475
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.00411f4c
mov esi, dword [ebp - 0x20]
jmp 0x4707dd
push ecx
lea ecx, [ebp - 0x974]
call fcn.00488a42
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0x98], edi
cmp edi, 0x13
jae 0x4707c7
push 6
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x3e
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x47079d
mov byte [eax + 0x13], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 5
jne 0x470c83
cmp dword [esi + 8], 1
jne 0x470944
mov dword [ebp - 0x1e0], ebx
mov dword [ebp - 0x1dc], ebx
movaps xmm0, xmmword [0x747b00]
movups xmmword [ebp - 0x1d8], xmm0
mov dword [ebp - 0x1c8], 0x5f
mov dword [ebp - 0x1c4], 0x15
mov dword [ebp - 0x1c0], 0x55
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x9c], ecx
cmp ecx, 7
jae 0x470859
mov eax, dword [ebp + ecx*4 - 0x1d8]
sub eax, 0x2b
imul eax, eax, 0x1f
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x1e0], dl
inc ecx
jmp 0x47082e
mov byte [ebp - 0x1d9], bl
lea eax, [ebp - 0x1e0]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x1e0]
push eax
lea ecx, [ebp - 0x38]
call fcn.00411f4c
mov eax, 0x200
mov ecx, ebx
test word [esi + 0x118], ax
je 0x4708ed
mov dword [ebp - 0x150], ebx
mov byte [ebp - 0x14c], bl
movaps xmm0, xmmword [str.PD_n__fg_f_1]
movups xmmword [ebp - 0x148], xmm0
mov dword [ebp - 0xa0], ecx
cmp ecx, 4
jae 0x4708d1
push 0x18
pop eax
sub eax, dword [ebp + ecx*4 - 0x148]
imul eax, eax, 0x23
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x150], dl
inc ecx
jmp 0x4708a6
mov byte [ebp - 0x14c], bl
lea eax, [ebp - 0x150]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x150]
jmp 0x47093b
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], 0x4a
mov dword [ebp - 0x4c], 0x61
mov dword [ebp - 0x48], 0x18
mov dword [ebp - 0xa4], ecx
cmp ecx, 3
jae 0x47092a
mov eax, dword [ebp + ecx*4 - 0x50]
sub eax, 0x75
imul eax, eax, 7
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x54], dl
inc ecx
jmp 0x470905
mov byte [ebp - 0x51], bl
lea eax, [ebp - 0x54]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 5
jne 0x470c83
cmp dword [esi + 8], ebx
jne 0x470acd
xor eax, eax
lea edi, [ebp - 0x338]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
movaps xmm0, xmmword [0x745d70]
movups xmmword [ebp - 0x32c], xmm0
movaps xmm0, xmmword [0x748cc0]
movups xmmword [ebp - 0x31c], xmm0
mov dword [ebp - 0x30c], 0x1e
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0xa8], ecx
cmp ecx, 9
jae 0x4709b9
mov eax, dword [ebp + ecx*4 - 0x32c]
sub eax, 0x70
imul eax, eax, 0xc
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x338], dl
inc ecx
jmp 0x47098e
mov byte [ebp - 0x32f], bl
lea eax, [ebp - 0x338]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x338]
push eax
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp byte [esi + 0x11a], 1
jne 0x4709fe
push 0x73c8cc
lea ecx, [ebp - 0x74]
call fcn.00429cb8
mov ecx, eax
call fcn.004a4239
jmp 0x470ab7
movzx eax, word [esi + 0x118]
test al, al
jns 0x470a49
push ecx
lea ecx, [ebp - 0x804]
call fcn.004889d8
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0xac], edi
cmp edi, 0x11
jae 0x470a44
push 0x66
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x2a
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x470a1a
mov byte [eax + 0x11], bl
jmp 0x470a8b
test al, 2
je 0x470aa0
push ecx
lea ecx, [ebp - 0x4d0]
call fcn.00488976
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov dword [ebp - 0xb0], edi
cmp edi, 0xf
jae 0x470a88
push 0x37
pop ecx
sub ecx, dword [eax + edi*4 + 0x10]
imul eax, ecx, 0x3f
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x1c]
mov byte [edi + eax], dl
inc edi
jmp 0x470a5e
mov byte [eax + 0xf], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
jmp 0x470acd
push str.Server
lea ecx, [ebp - 0x138]
call fcn.0041adb0
mov ecx, eax
call fcn.0041ad7e
mov esi, eax
push esi
call fcn.0040f475
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.00411f4c
mov esi, dword [ebp - 0x20]
cmp dword [esi + 4], 5
jne 0x470c83
cmp dword [esi + 8], 2
jne 0x470c83
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x470b36
push ecx
lea ecx, [ebp - 0x9dc]
call fcn.004888f8
mov edi, eax
mov ecx, ebx
mov dword [ebp - 0xb4], ecx
cmp ecx, 0x14
jae 0x470b25
mov eax, dword [edi + ecx*4 + 0x18]
sub eax, 0x57
imul eax, eax, 0x1c
cdq
idiv dword [ebp - 0x18]
push 0x7f
pop eax
add eax, edx
cdq
idiv dword [ebp - 0x18]
mov byte [ecx + edi], dl
inc ecx
jmp 0x470afd
mov byte [edi + 0x14], bl
push edi
call fcn.0040f475
pop ecx
push eax
push edi
jmp 0x470c69
movzx eax, word [esi + 0x118]
test eax, 0x2000
je 0x470b87
push ecx
lea ecx, [ebp - 0xb24]
call fcn.00488868
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xb8], edi
cmp edi, 0x17
jae 0x470b7f
push 0x7c
pop ecx
sub ecx, dword [eax + edi*4 + 0x18]
imul eax, ecx, 0x12
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x470b55
mov byte [eax + 0x17], bl
jmp 0x470c5e
test ax, ax
jns 0x470bcb
push ecx
lea ecx, [ebp - 0x51c]
call fcn.00488803
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xbc], edi
cmp edi, 0xf
jae 0x470c5b
mov ecx, dword [eax + edi*4 + 0x10]
sub ecx, 0x69
imul eax, ecx, 0x1f
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x470b9d
cmp byte [esi + 0x11a], 1
jne 0x470c20
push 9
pop eax
cmp word [ebp - 0x3b8], ax
jne 0x470c20
push ecx
lea ecx, [ebp - 0x7ac]
call fcn.00488791
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xc0], edi
cmp edi, 0x10
jae 0x470c1b
mov ecx, dword [eax + edi*4 + 0x14]
sub ecx, 0x48
imul eax, ecx, 0x22
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x470bf1
mov byte [eax + 0x10], bl
jmp 0x470c5e
push ecx
lea ecx, [ebp - 0x568]
call fcn.0048872b
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xc4], edi
cmp edi, 0xf
jae 0x470c5b
push 0x43
pop ecx
sub ecx, dword [eax + edi*4 + 0x10]
imul eax, ecx, 0x24
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x470c31
mov byte [eax + 0xf], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x18]
lea ecx, [ebp - 0x38]
call fcn.00411f4c
lea eax, [ebp - 0x44]
push eax
push ebx
push ebx
push dword [esi + 8]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.DLL_GetProductInfo]
mov eax, dword [ebp - 0x44]
cmp eax, 0x19
ja 0x47125c
je 0x471219
dec eax
cmp eax, 0x11
ja case.0x470c9f.5
jmp dword [eax*4 + 0x471448]
push str.Ultimate
lea ecx, [ebp - 0x26c]
call fcn.0049dcc5
mov ecx, eax
call fcn.0049dc93
mov esi, eax
push esi
call fcn.0040f475
pop ecx
push eax
push esi
lea ecx, [ebp - 0x38]
call fcn.00411f4c
mov esi, dword [ebp - 0x20]
jmp case.0x470c9f.5
push ecx
lea ecx, [ebp - 0x43c]
call fcn.004886d6
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xc8], edi
cmp edi, 0xc
jae 0x470d13
push 0xa
pop ecx
sub ecx, dword [eax + edi*4 + 0x10]
imul eax, ecx, 0x2d
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x470ce9
mov byte [eax + 0xc], bl
push eax
call fcn.0040f475
pop ecx
push eax
push dword [ebp - 0x18]
jmp 0x4712b3
push str.Home_Basic
lea ecx, [ebp - 0x240]
call fcn.00494512
mov ecx, eax
call fcn.004944e0
jmp 0x470cbd
xor eax, eax
lea edi, [ebp - 0x2a0]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x746bb0]
movups xmmword [ebp - 0x294], xmm0
movaps xmm0, xmmword [0x7450c0]
movups xmmword [ebp - 0x284], xmm0
mov dword [ebp - 0x274], 0x44
mov dword [ebp - 0x270], 0x38
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0xcc], ecx
cmp ecx, 0xa
jae 0x470daf
push 0x2a
pop eax
sub eax, dword [ebp + ecx*4 - 0x294]
imul eax, eax, 0x14
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x2a0], dl
inc ecx
jmp 0x470d84
mov byte [ebp - 0x296], bl
lea eax, [ebp - 0x2a0]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x2a0]
jmp 0x4712b2
xor eax, eax
lea edi, [ebp - 0x26c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x747b20]
movups xmmword [ebp - 0x260], xmm0
movaps xmm0, xmmword [0x744ed0]
movups xmmword [ebp - 0x250], xmm0
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0xd0], ecx
cmp ecx, 8
jae 0x470e25
mov eax, dword [ebp + ecx*4 - 0x260]
sub eax, 0x4f
imul eax, eax, 0xf
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x26c], dl
inc ecx
jmp 0x470dfa
mov byte [ebp - 0x264], bl
lea eax, [ebp - 0x26c]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x26c]
jmp 0x4712b2
mov dword [ebp - 0x174], ebx
mov dword [ebp - 0x170], ebx
movaps xmm0, xmmword [0x748150]
movups xmmword [ebp - 0x16c], xmm0
mov dword [ebp - 0x15c], 0x6e
mov dword [ebp - 0x158], 5
mov dword [ebp - 0x154], 0x60
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0xd4], ecx
cmp ecx, 7
jae 0x470eac
push 0x3c
pop eax
sub eax, dword [ebp + ecx*4 - 0x16c]
imul eax, eax, 0x12
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x174], dl
inc ecx
jmp 0x470e81
mov byte [ebp - 0x16d], bl
lea eax, [ebp - 0x174]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x174]
jmp 0x4712b2
push ecx
lea ecx, [ebp - 0x484]
call fcn.00488678
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xd8], edi
cmp edi, 0xe
jae 0x470f06
push 0x1b
pop ecx
sub ecx, dword [eax + edi*4 + 0x10]
imul eax, ecx, 0x1a
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x470edc
mov byte [eax + 0xe], bl
jmp 0x470d16
xor eax, eax
lea edi, [ebp - 0x2d4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x746310]
movups xmmword [ebp - 0x2c8], xmm0
movaps xmm0, xmmword [0x747a40]
movups xmmword [ebp - 0x2b8], xmm0
mov dword [ebp - 0x2a8], 0x1e
mov dword [ebp - 0x2a4], 0x1a
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0xdc], ecx
cmp ecx, 0xa
jae 0x470f7b
push 0x16
pop eax
sub eax, dword [ebp + ecx*4 - 0x2c8]
imul eax, eax, 0x23
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x2d4], dl
inc ecx
jmp 0x470f50
mov byte [ebp - 0x2ca], bl
lea eax, [ebp - 0x2d4]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x2d4]
jmp 0x4712b2
push ecx
lea ecx, [ebp - 0x85c]
call fcn.0048860b
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xe0], edi
cmp edi, 0x11
jae 0x470fd5
push 0x57
pop ecx
sub ecx, dword [eax + edi*4 + 0x14]
imul eax, ecx, 0x24
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x470fab
mov byte [eax + 0x11], bl
jmp 0x470d16
xor eax, eax
lea edi, [ebp - 0x308]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x746a20]
movups xmmword [ebp - 0x2fc], xmm0
movaps xmm0, xmmword [0x747590]
movups xmmword [ebp - 0x2ec], xmm0
mov dword [ebp - 0x2dc], 0x46
mov dword [ebp - 0x2d8], 0x35
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0xe4], ecx
cmp ecx, 0xa
jae 0x47104a
push 0xc
pop eax
sub eax, dword [ebp + ecx*4 - 0x2fc]
imul eax, eax, 0x2c
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x308], dl
inc ecx
jmp 0x47101f
mov byte [ebp - 0x2fe], bl
lea eax, [ebp - 0x308]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x308]
jmp 0x4712b2
push ecx
lea ecx, [ebp - 0x8b4]
call fcn.00488595
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xe8], edi
cmp edi, 0x11
jae 0x470fd5
mov ecx, dword [eax + edi*4 + 0x14]
sub ecx, 0x5b
imul eax, ecx, 0x37
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x47107a
push ecx
lea ecx, [ebp - 0xa44]
call fcn.0048850f
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xec], edi
cmp edi, 0x14
jae 0x4710e3
push 0x72
pop ecx
sub ecx, dword [eax + edi*4 + 0x18]
imul eax, ecx, 0x2d
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x4710b9
mov byte [eax + 0x14], bl
jmp 0x470d16
push ecx
lea ecx, [ebp - 0xab0]
call fcn.0048848e
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xf0], edi
cmp edi, 0x15
jae 0x471126
mov ecx, dword [eax + edi*4 + 0x18]
sub ecx, 0x7b
imul eax, ecx, 0x29
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x4710fc
mov byte [eax + 0x15], bl
jmp 0x470d16
push str.Standard
lea ecx, [ebp - 0x368]
call fcn.0041a9d2
mov ecx, eax
call fcn.0041a9a0
jmp 0x470cbd
push ecx
lea ecx, [ebp - 0x5b4]
call fcn.0048836f
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xf4], edi
cmp edi, 0xf
jae 0x471185
push 0x6c
pop ecx
sub ecx, dword [eax + edi*4 + 0x10]
imul eax, ecx, 0x3e
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x47115b
mov byte [eax + 0xf], bl
jmp 0x470d16
xor eax, eax
lea edi, [ebp - 0x240]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x745790]
movups xmmword [ebp - 0x234], xmm0
movaps xmm0, xmmword [0x748be0]
movups xmmword [ebp - 0x224], xmm0
mov dword [ebp - 0x214], 0x35
mov dword [ebp - 0x210], 0x4e
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0xf8], ecx
cmp ecx, 0xa
jae 0x4711fa
mov eax, dword [ebp + ecx*4 - 0x234]
sub eax, 0x67
imul eax, eax, 0x1f
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x240], dl
inc ecx
jmp 0x4711cf
mov byte [ebp - 0x236], bl
lea eax, [ebp - 0x240]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x240]
jmp 0x4712b2
push ecx
lea ecx, [ebp - 0xbb8]
call fcn.004883d8
mov dword [ebp - 0x18], eax
mov edi, ebx
mov dword [ebp - 0xfc], edi
cmp edi, 0x1d
jae 0x471254
mov ecx, dword [eax + edi*4 + 0x20]
sub ecx, 0x22
imul eax, ecx, 0x13
cdq
push 0x7f
pop ecx
idiv ecx
lea eax, [ecx + edx]
cdq
idiv ecx
mov eax, dword [ebp - 0x18]
mov byte [edi + eax], dl
inc edi
jmp 0x47122a
mov byte [eax + 0x1d], bl
jmp 0x470d16
push 0x30
pop ecx
cmp eax, ecx
jne case.0x470c9f.5
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], 0x29
mov dword [ebp - 0x58], 8
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x100], ecx
cmp ecx, 3
jae 0x4712a1
push 0x39
pop eax
sub eax, dword [ebp + ecx*4 - 0x60]
imul eax, eax, 0x17
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x64], dl
inc ecx
jmp 0x47127c
mov byte [ebp - 0x61], bl
lea eax, [ebp - 0x64]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x38]
call fcn.00411f4c
cmp dword [esi + 4], 6
jb 0x4713dd
push 9
pop eax
cmp word [ebp - 0x3b8], ax
jne 0x47134e
xor eax, eax
lea edi, [ebp - 0x200]
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x747a60]
movups xmmword [ebp - 0x1f8], xmm0
mov dword [ebp - 0x1e8], 0x1a
mov dword [ebp - 0x1e4], 0x58
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x104], ecx
cmp ecx, 6
jae 0x47132f
push 0x2a
pop eax
sub eax, dword [ebp + ecx*4 - 0x1f8]
imul eax, eax, 0x23
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x200], dl
inc ecx
jmp 0x471304
mov byte [ebp - 0x1fa], bl
lea eax, [ebp - 0x200]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x200]
jmp 0x4713d4
cmp word [ebp - 0x3b8], 0
jne 0x4713dd
xor eax, eax
lea edi, [ebp - 0x138]
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
movaps xmm0, xmmword [0x7483c0]
movups xmmword [ebp - 0x130], xmm0
mov dword [ebp - 0x120], 0xa
mov dword [ebp - 0x11c], 0x75
mov ecx, ebx
push 0x7f
pop edi
mov dword [ebp - 0x108], ecx
cmp ecx, 6
jae 0x4713ba
mov eax, dword [ebp + ecx*4 - 0x130]
sub eax, 0x5d
imul eax, eax, 7
cdq
idiv edi
lea eax, [edi + edx]
cdq
idiv edi
mov byte [ebp + ecx - 0x138], dl
inc ecx
jmp 0x47138f
mov byte [ebp - 0x132], bl
lea eax, [ebp - 0x138]
push eax
call fcn.0040f475
pop ecx
push eax
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x38]
call fcn.00411f4c
push 0x11c
push esi
call fcn.0068a1b1
pop ecx
pop ecx
lea eax, [ebp - 0x38]
cmp dword [ebp - 0x24], 0x10
cmovae eax, dword [ebp - 0x38]
push eax
jmp 0x47140a
push 0x11c
push esi
call fcn.0068a1b1
pop ecx
pop ecx
push 0x73a9e8
mov esi, dword [ebp - 0x40]
mov ecx, esi
call fcn.00411aae
jmp 0x47024c