Function at 0x40b880
Capabilities:
Check os version
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4b126c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x524
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x4f4c50
lea ecx, [esp + 0x1c]
call fcn.004a2cae
xor ebx, ebx
mov ecx, 0x13
xor eax, eax
lea edi, [esp + 0x160]
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x124], ebx
rep stosd dword es:[edi], eax
mov ecx, 0xd
lea edi, [esp + 0x128]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x53c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
call fcn.0044ae30
lea ecx, [esp + 0x40]
mov byte [esp + 0x53c], 1
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
call fcn.0044ae30
mov ebp, dword [esp + 0x544]
lea ecx, [esp + 0x1c]
push ebp
mov byte [esp + 0x540], 2
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], ebx
call fcn.00447770
mov eax, dword [eax]
push ebx
push ebx
push 3
push ebx
push 7
push SysReAllocStringLen
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], edi
call fcn.00447cd0
cmp edi, 0xffffffff
je 0x40baac
lea eax, [esp + 0x50]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push edi
call fcn.00411c00
add esp, 0x24
cmp eax, ebx
mov dword [esp + 0x10], eax
je 0x40baa5
mov eax, dword [esp + 0x50]
cmp eax, 4
jne 0x40b9fd
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x5d]
mov byte [esp + 0x5c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x58]
lea edx, [esp + 0x54]
stosb byte es:[edi], al
push ecx
lea eax, [esp + 0x44]
push edx
lea ecx, [esp + 0x54]
push eax
lea edx, [esp + 0x54]
push ecx
lea eax, [esp + 0x48]
push edx
lea ecx, [esp + 0x138]
push eax
lea edx, [esp + 0x174]
push ecx
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x78]
push edx
push eax
push ecx
call fcn.00411a20
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
add esp, 0x28
mov dword [esp + 0x34], edx
jmp 0x40ba87
cmp eax, 6
jne 0x40ba48
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x5d]
mov byte [esp + 0x5c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edx, dword [esp + 0x24]
push ebx
stosb byte es:[edi], al
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x60]
push eax
push 0x20
push ecx
push edx
mov dword [esp + 0x3c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x60]
and eax, 0xff
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x62]
and eax, 4
jmp 0x40ba8c
mov ecx, 0xf
xor eax, eax
lea edi, [esp + 0x5d]
mov byte [esp + 0x5c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x28]
push ebx
stosb byte es:[edi], al
mov eax, dword [esp + 0x28]
push ecx
lea edx, [esp + 0x64]
push 0x40
push edx
push eax
mov dword [esp + 0x3c], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x34], ecx
and eax, 0x80
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
push edx
call fcn.0040b750
mov edi, dword [esp + 0x28]
add esp, 4
mov dword [esp + 0x28], eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0xe1
xor eax, eax
lea edi, [esp + 0x1ad]
mov byte [esp + 0x1ac], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
cmp eax, ebx
mov dword [esp + 0x24], ebx
je 0x40bd05
push ebp
lea ecx, [esp + 0x14]
call fcn.00447770
mov eax, dword [eax]
lea ecx, [esp + 0x1ac]
push ecx
push eax
mov byte [esp + 0x544], 3
call fcn.00412300
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
sete byte [esp + 0x23]
mov byte [esp + 0x53c], 2
call fcn.00447cd0
cmp byte [esp + 0x23], bl
jne 0x40bf55
lea edx, [esp + 0x1ac]
push edx
call fcn.00412a80
add esp, 4
test eax, eax
jne 0x40bb53
lea eax, [esp + 0x18]
push str.Warring:
push eax
call fcn.004a0c59
mov ecx, dword [esp + 0x20]
add esp, 8
push ecx
mov ecx, esi
call fcn.0040b000
push ebp
lea ecx, [esp + 0x2c]
call fcn.00447770
mov eax, dword [eax]
lea edx, [esp + 0x2c]
push edx
push ebx
push ebx
push eax
mov byte [esp + 0x54c], 6
call fcn.00411e80
add esp, 0x10
lea ecx, [esp + 0x28]
mov edi, eax
mov byte [esp + 0x53c], 2
call fcn.00447cd0
cmp edi, ebx
jne 0x40bc03
lea eax, [esp + 0x10]
lea ecx, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
call fcn.00411870
mov edi, eax
lea edx, [esp + 0x30]
push edi
push edx
call fcn.00401ab0
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax]
push ecx
push edx
push edi
push eax
lea ecx, [esp + 0x28]
push 0x4e0564
push ecx
mov byte [esp + 0x554], 7
call fcn.004a0c59
add esp, 0x18
lea ecx, [esp + 0x28]
mov byte [esp + 0x53c], 2
call fcn.004a2c3a
mov edx, dword [esp + 0x18]
mov ecx, esi
push edx
call fcn.0040b000
mov dword [esp + 0x2c], ebx
jmp 0x40bd01
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x40bd01
push eax
call fcn.004a2973
mov edi, eax
add esp, 4
cmp edi, ebx
mov dword [esp + 0x24], edi
je 0x40c014
mov ecx, dword [esp + 0x2c]
xor eax, eax
mov edx, ecx
push ebp
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [esp + 0x14]
mov dword [esp + 0x2c], ebx
call fcn.00447770
mov edx, dword [esp + 0x2c]
mov eax, dword [eax]
lea ecx, [esp + 0x28]
mov byte [esp + 0x53c], 8
push ecx
mov ecx, dword [esp + 0x28]
push edx
push ecx
push eax
call fcn.00411e80
add esp, 0x10
lea ecx, [esp + 0x10]
test eax, eax
sete byte [esp + 0x23]
mov byte [esp + 0x53c], 2
call fcn.00447cd0
cmp byte [esp + 0x23], bl
je 0x40bd05
lea edx, [esp + 0x10]
lea eax, [esp + 0x1c]
push edx
push eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], ebx
call fcn.00411870
mov edi, eax
lea ecx, [esp + 0x1c]
push edi
push ecx
call fcn.00401ab0
add esp, 0x10
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [eax]
push ecx
push edi
push edx
lea eax, [esp + 0x28]
push 0x4e0564
push eax
mov byte [esp + 0x554], 9
call fcn.004a0c59
add esp, 0x18
lea ecx, [esp + 0x14]
mov byte [esp + 0x53c], 2
call fcn.004a2c3a
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, esi
call fcn.0040b000
mov edx, dword [esp + 0x24]
push edx
call fcn.004a299c
add esp, 4
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x3c]
call fcn.0044ae30
push ebp
lea ecx, [esp + 0x18]
mov byte [esp + 0x540], 0xa
call fcn.00447770
mov eax, dword [eax]
lea ecx, [esp + 0x3c]
push ecx
push eax
mov byte [esp + 0x544], 0xb
call fcn.00413980
add esp, 8
lea ecx, [esp + 0x14]
mov byte [esp + 0x53c], 0xa
call fcn.00447cd0
push 0x4f4c50
lea ecx, [esp + 0x48]
call fcn.004a2cae
push ebp
lea edx, [esp + 0x48]
push 0x4e0550
push edx
mov byte [esp + 0x548], 0xc
call fcn.004a0c59
mov eax, dword [esp + 0x50]
add esp, 0xc
lea ecx, [esp + 0x9c]
push ebx
push ebx
push eax
call fcn.004ab523
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
lea edi, [esi + 0x5c]
push ecx
lea eax, [esp + 0x1b0]
push edx
push eax
mov ecx, edi
mov byte [esp + 0x548], 0xd
call fcn.00408180
mov edx, dword [esp + 0x24]
lea ecx, [esi + 0x1b0]
push edx
call fcn.00406ce0
push ecx
lea eax, [esp + 0x40]
mov ecx, esp
mov dword [esp + 0x18], esp
push eax
call fcn.0044aec0
lea ecx, [esi + 0x5bc]
call fcn.004020d0
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
push ebp
push edx
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x54]
push edx
lea ecx, [esi + 0x710]
push eax
call fcn.004097a0
push edi
lea ecx, [esp + 0xa0]
call fcn.004ab96f
lea edi, [esi + 0x1b0]
lea ecx, [esp + 0x9c]
push edi
call fcn.004ab96f
lea eax, [esi + 0x5bc]
lea ecx, [esp + 0x9c]
push eax
call fcn.004ab96f
lea eax, [esi + 0x710]
push eax
lea ecx, [esp + 0xa0]
call fcn.004ab96f
mov edx, dword [esp + 0xdc]
mov ecx, dword [esi + 0xbc]
and dh, 0xfd
mov eax, 0xffffffdf
mov dword [esp + 0xdc], edx
mov edx, dword [esi + 0x210]
and ecx, eax
and edx, eax
mov dword [esi + 0xbc], ecx
mov ecx, dword [esi + 0x61c]
mov dword [esi + 0x210], edx
mov edx, dword [esi + 0x770]
and ecx, eax
and edx, eax
mov dword [esi + 0x61c], ecx
lea ecx, [esp + 0x9c]
mov dword [esi + 0x770], edx
call fcn.004ab767
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x40beaa
push eax
call fcn.004a299c
add esp, 4
cmp dword [esp + 0x14], 1
jne 0x40c1b7
push 0x31
push ebx
push 0x4e052c
mov ecx, esi
mov dword [esp + 0x28], ebx
call fcn.004a54dc
cmp eax, 1
jne 0x40c0ba
lea ecx, [esp + 0x10]
call fcn.0044ae30
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0xe
push ecx
mov ecx, edi
call fcn.00407040
test eax, eax
je 0x40c050
push ebp
lea ecx, [esp + 0x18]
call fcn.00447770
mov edi, dword [eax]
push 1
lea ecx, [esp + 0x14]
mov byte [esp + 0x540], 0xf
call fcn.0044b330
push eax
push edi
call fcn.00411ff0
mov edi, eax
add esp, 0xc
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x53c], 0xe
call fcn.00447cd0
cmp edi, ebx
je 0x40c050
lea edx, [esp + 0x18]
push 0x4e0514
push edx
call fcn.004a0c59
add esp, 8
jmp 0x40c09d
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x10]
push eax
push ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
call fcn.00411870
mov edi, eax
mov eax, dword [esp + 0x30]
add esp, 8
cmp eax, ebx
push edi
je 0x40bfbd
lea edx, [esp + 0x18]
push edx
call fcn.00401ab0
add esp, 8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [eax]
push ecx
push edx
push edi
push eax
lea ecx, [esp + 0x28]
push 0x4e0480
push ecx
mov byte [esp + 0x554], 4
call fcn.004a0c59
add esp, 0x18
mov byte [esp + 0x53c], 2
lea ecx, [esp + 0x14]
jmp 0x40bffe
lea edx, [esp + 0x18]
push edx
call fcn.00401ab0
add esp, 8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [eax]
push ecx
push edx
push edi
push eax
lea ecx, [esp + 0x28]
push 0x4e0410
push ecx
mov byte [esp + 0x554], 5
call fcn.004a0c59
add esp, 0x18
mov byte [esp + 0x53c], 2
lea ecx, [esp + 0x14]
call fcn.004a2c3a
mov edx, dword [esp + 0x18]
mov ecx, esi
push edx
call fcn.0040b000
jmp 0x40bd05
lea ecx, [esp + 0x40]
mov byte [esp + 0x53c], 1
call fcn.0044af00
lea ecx, [esp + 0x38]
mov byte [esp + 0x53c], bl
call fcn.0044af00
lea ecx, [esp + 0x18]
mov dword [esp + 0x53c], 0xffffffff
call fcn.004a2c3a
xor eax, eax
jmp 0x40c227
push ebx
push ebx
call fcn.00411870
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00401ab0
mov edi, eax
push ebx
push ebx
mov byte [esp + 0x554], 0x10
call fcn.00411870
mov ecx, dword [edi]
add esp, 0x18
lea edx, [esp + 0x18]
push eax
push ecx
push 0x4e03d8
push edx
call fcn.004a0c59
add esp, 0x10
lea ecx, [esp + 0x14]
mov byte [esp + 0x53c], 0xe
call fcn.004a2c3a
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.0040b000
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0xd
call fcn.0044af00
push 0x31
push ebx
push 0x4e03b4
mov ecx, esi
call fcn.004a54dc
cmp eax, 1
jne 0x40c1b7
lea ecx, [esp + 0x10]
call fcn.0044ae30
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0x11
push ecx
lea ecx, [esi + 0x5bc]
call fcn.00402130
test eax, eax
je 0x40c133
push ebp
lea ecx, [esp + 0x18]
call fcn.00447770
mov edi, dword [eax]
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0x12
call fcn.0044b330
push eax
push edi
call fcn.004139e0
add esp, 8
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c], eax
mov byte [esp + 0x53c], 0x11
call fcn.00447cd0
cmp dword [esp + 0x1c], ebx
je 0x40c14d
lea edx, [esp + 0x18]
push 0x4e039c
push edx
call fcn.004a0c59
add esp, 8
jmp 0x40c19a
push ebx
push ebx
call fcn.00411870
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00401ab0
mov edi, eax
push ebx
push ebx
mov byte [esp + 0x554], 0x13
call fcn.00411870
mov ecx, dword [edi]
add esp, 0x18
lea edx, [esp + 0x18]
push eax
push ecx
push 0x4e0364
push edx
call fcn.004a0c59
add esp, 0x10
lea ecx, [esp + 0x14]
mov byte [esp + 0x53c], 0x11
call fcn.004a2c3a
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.0040b000
lea ecx, [esp + 0x10]
mov byte [esp + 0x53c], 0xd
call fcn.0044af00
lea ecx, [esp + 0x9c]
mov byte [esp + 0x53c], 0xc
call fcn.004ab5d7
lea ecx, [esp + 0x44]
mov byte [esp + 0x53c], 0xa
call fcn.004a2c3a
lea ecx, [esp + 0x3c]
mov byte [esp + 0x53c], 2
call fcn.0044af00
lea ecx, [esp + 0x40]
mov byte [esp + 0x53c], 1
call fcn.0044af00
lea ecx, [esp + 0x38]
mov byte [esp + 0x53c], bl
call fcn.0044af00
lea ecx, [esp + 0x18]
mov dword [esp + 0x53c], 0xffffffff
call fcn.004a2c3a
mov eax, 1
mov ecx, dword [esp + 0x534]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x530
ret 4