Function at 0x40ab80
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5c95c4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9c
push ebx
push ebp
push esi
push edi
xor ebx, ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0xb4], ebx
call fcn.005589e0
mov al, byte [esp + 0x5b]
mov dword [esp + 0x14], ebx
mov byte [esp + 0x10], al
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
push 6
push 0x609b58
lea ecx, [esp + 0x4c]
mov byte [esp + 0xbc], 2
call fcn.00558100
push 6
push 0x609b50
lea ecx, [esp + 0x34]
mov byte [esp + 0xbc], 3
call fcn.00558100
push 6
push 0x609b48
lea ecx, [esp + 0x48]
mov byte [esp + 0xbc], 4
call fcn.00558100
push 6
push 0x609b40
lea ecx, [esp + 0x3c]
mov byte [esp + 0xbc], 5
call fcn.00558100
push 6
push 0x609b38
lea ecx, [esp + 0x40]
mov byte [esp + 0xbc], 6
call fcn.00558100
push 6
push 0x609b40
lea ecx, [esp + 0x38]
mov byte [esp + 0xbc], 7
call fcn.00558100
push 6
push 0x609b30
lea ecx, [esp + 0x44]
mov byte [esp + 0xbc], 8
call fcn.00558100
push 0x96
push ebx
lea ecx, [esp + 0x34]
mov byte [esp + 0xbc], 9
call fcn.005584a0
push 0x96
push ebx
lea ecx, [esp + 0x4c]
call fcn.005584a0
push 0x96
push ebx
lea ecx, [esp + 0x48]
call fcn.005584a0
push 0x96
push ebx
lea ecx, [esp + 0x3c]
call fcn.005584a0
push 0x96
push ebx
lea ecx, [esp + 0x40]
call fcn.005584a0
push 0x96
push ebx
lea ecx, [esp + 0x38]
call fcn.005584a0
push 0x96
push ebx
lea ecx, [esp + 0x44]
call fcn.005584a0
push ecx
lea edx, [esp + 0xc0]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
mov dword [esp + 0x64], 0x609b28
mov dword [esp + 0x68], 0x609b20
mov dword [esp + 0x6c], 0x609b18
mov dword [esp + 0x70], 0x609b10
mov dword [esp + 0x74], 0x609b08
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0x609b00
mov dword [esp + 0x80], 0x609af8
mov dword [esp + 0x84], 0x609af0
mov dword [esp + 0x88], 0x609ae8
mov dword [esp + 0x8c], 0x609ae0
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], 0x609ad8
mov dword [esp + 0x98], 0x609ad0
mov dword [esp + 0x9c], 0x609ac8
mov dword [esp + 0xa0], 0x609ac0
mov dword [esp + 0xa4], 0x609ab8
mov dword [esp + 0xa8], 0x609ab0
mov dword [esp + 0xac], 0x609aa8
mov dword [esp + 0xb0], ebx
call fcn.00558070
lea ecx, [esp + 0x4c]
call fcn.005590c0
push ebx
push ebx
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 6
push 0x609448
call fcn.00558100
push ecx
mov byte [esp + 0xc4], 0xa
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x60959c
call fcn.00558100
mov ecx, 0x619a58
mov byte [esp + 0xc4], 9
call fcn.00543af0
lea ecx, [esp + 0x20]
call fcn.00558060
mov eax, dword [0x619c28]
mov byte [esp + 0xb4], 0xb
cmp eax, 0x4106a
ja 0x40aeda
cmp eax, 0x41069
jae 0x40aefb
cmp eax, 0x41063
ja 0x40aed0
je 0x40aefb
cmp eax, 0x31066
je 0x40aefb
cmp eax, 0x31362
je 0x40aefb
xor ebx, ebx
lea ecx, [esp + 0x48]
call fcn.00559480
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp esi, edi
mov ebp, esi
je 0x40ae72
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40ae64
mov dword [esp + 0x18], ebp
xor edi, edi
xor ebp, ebp
movsx esi, di
push 5
lea ecx, [esp + 0x24]
mov eax, dword [esp + esi*4 + 0x60]
push eax
call fcn.00558600
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00558070
lea ecx, [esp + 0x4c]
call fcn.00558c30
lea eax, [esp + 0x10]
push 1
lea ecx, [esp + 0x4c]
push eax
push ecx
mov ecx, 0x619c20
call fcn.00406ed0
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x40b49d
xor ecx, ecx
jmp 0x40b4a6
cmp eax, 0x41066
jmp 0x40ae45
cmp eax, 0x44062
ja 0x40b2c6
cmp eax, 0x44061
jae 0x40b108
cmp eax, 0x4106c
jne 0x40ae4b
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x48]
call fcn.00559480
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp esi, edi
mov ebp, esi
je 0x40af24
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40af16
mov dword [esp + 0x18], ebp
xor edi, edi
movsx esi, di
push 5
lea ecx, [esp + 0x24]
mov eax, dword [esp + esi*4 + 0x60]
push eax
call fcn.00558600
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00558070
lea ecx, [esp + 0x4c]
call fcn.00558c30
lea eax, [esp + 0x10]
push 1
lea ecx, [esp + 0x4c]
push eax
push ecx
mov ecx, 0x619c20
call fcn.00406ed0
mov eax, dword [esp + 0x14]
cmp eax, ebx
jne 0x40af79
xor ecx, ecx
jmp 0x40af82
mov ecx, dword [esp + 0x18]
sub ecx, eax
sar ecx, 2
cmp ecx, esi
jbe 0x40aff9
lea ecx, [eax + esi*4]
call fcn.00558520
xor edx, edx
cmp ax, 2
setg dl
inc edi
mov eax, edx
cmp di, 5
jl 0x40af2a
cmp ax, bx
mov ecx, 4
jne 0x40afae
mov ecx, dword [esp + 0x24]
inc ecx
cmp cx, 3
mov dword [esp + 0x24], ecx
jl 0x40aeff
xor ebp, ebp
push ebp
push 1
push ecx
cmp ax, bp
mov ecx, esp
jne 0x40b5dd
mov dword [esp + 0x34], esp
push 6
push 0x6094cc
call fcn.00558100
push ecx
mov byte [esp + 0xc4], 0x10
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x60957c
jmp 0x40b603
push ebx
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x6094cc
call fcn.00558100
push ecx
mov byte [esp + 0xc4], 0xc
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x609440
call fcn.00558100
mov ecx, 0x619a58
mov byte [esp + 0xc4], 0xb
call fcn.00543af0
lea ecx, [esp + 0x20]
mov byte [esp + 0xb4], 9
call fcn.005581a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb4], 8
call fcn.005581a0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 7
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 6
call fcn.005581a0
lea ecx, [esp + 0x34]
mov byte [esp + 0xb4], 5
call fcn.005581a0
lea ecx, [esp + 0x40]
mov byte [esp + 0xb4], 4
call fcn.005581a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 3
call fcn.005581a0
lea ecx, [esp + 0x44]
mov byte [esp + 0xb4], 2
call fcn.005581a0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov byte [esp + 0xb4], 1
mov edi, ecx
mov esi, eax
je 0x40b0ee
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40b0dc
mov eax, dword [esp + 0x14]
push eax
call fcn.005bc500
add esp, 4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
jmp 0x40b6df
xor ebx, ebx
lea ecx, [esp + 0x48]
call fcn.00559480
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp esi, edi
mov ebp, esi
je 0x40b12f
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40b121
mov dword [esp + 0x18], ebp
xor edi, edi
xor ebp, ebp
movsx esi, di
push 5
lea ecx, [esp + 0x24]
mov eax, dword [esp + esi*4 + 0x78]
push eax
call fcn.00558600
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00558070
lea ecx, [esp + 0x4c]
call fcn.00558c30
lea eax, [esp + 0x10]
push 1
lea ecx, [esp + 0x4c]
push eax
push ecx
mov ecx, 0x619c20
call fcn.00406ed0
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x40b186
xor ecx, ecx
jmp 0x40b18f
mov ecx, dword [esp + 0x18]
sub ecx, eax
sar ecx, 2
cmp ecx, esi
jbe 0x40b1c7
lea ecx, [eax + esi*4]
call fcn.00558520
xor edx, edx
cmp ax, 2
setg dl
inc edi
mov eax, edx
cmp di, 5
jl 0x40b137
cmp ax, bp
je 0x40b1b7
mov ebx, 4
inc ebx
cmp bx, 3
jl 0x40b10a
jmp 0x40afbd
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x6094cc
call fcn.00558100
push ecx
mov byte [esp + 0xc4], 0xd
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x609440
call fcn.00558100
mov ecx, 0x619a58
mov byte [esp + 0xc4], 0xb
call fcn.00543af0
lea ecx, [esp + 0x20]
mov byte [esp + 0xb4], 9
call fcn.005581a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb4], 8
call fcn.005581a0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 7
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 6
call fcn.005581a0
lea ecx, [esp + 0x34]
mov byte [esp + 0xb4], 5
call fcn.005581a0
lea ecx, [esp + 0x40]
mov byte [esp + 0xb4], 4
call fcn.005581a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 3
call fcn.005581a0
lea ecx, [esp + 0x44]
mov byte [esp + 0xb4], 2
call fcn.005581a0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov byte [esp + 0xb4], 1
mov edi, ecx
mov esi, eax
je 0x40b5d7
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40b2ae
mov eax, dword [esp + 0x14]
push eax
jmp 0x40b6cb
cmp eax, 0x44367
jb 0x40ae4b
cmp eax, 0x4436a
ja 0x40ae4b
xor ebx, ebx
lea ecx, [esp + 0x48]
call fcn.00559480
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
cmp esi, edi
mov ebp, esi
je 0x40b303
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40b2f5
mov dword [esp + 0x18], ebp
xor edi, edi
xor ebp, ebp
movsx esi, di
push 5
lea ecx, [esp + 0x24]
mov eax, dword [esp + esi*4 + 0x90]
push eax
call fcn.00558600
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x2c], esp
push edx
call fcn.00558070
lea ecx, [esp + 0x4c]
call fcn.00558c30
lea eax, [esp + 0x10]
push 1
lea ecx, [esp + 0x4c]
push eax
push ecx
mov ecx, 0x619c20
call fcn.00406ed0
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x40b35d
xor ecx, ecx
jmp 0x40b366
mov ecx, dword [esp + 0x18]
sub ecx, eax
sar ecx, 2
cmp ecx, esi
jbe 0x40b39e
lea ecx, [eax + esi*4]
call fcn.00558520
xor edx, edx
cmp ax, 2
setg dl
inc edi
mov eax, edx
cmp di, 7
jl 0x40b30b
cmp ax, bp
je 0x40b38e
mov ebx, 4
inc ebx
cmp bx, 3
jl 0x40b2de
jmp 0x40afbd
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x6094cc
call fcn.00558100
push ecx
mov byte [esp + 0xc4], 0xe
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x609440
call fcn.00558100
mov ecx, 0x619a58
mov byte [esp + 0xc4], 0xb
call fcn.00543af0
lea ecx, [esp + 0x20]
mov byte [esp + 0xb4], 9
call fcn.005581a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb4], 8
call fcn.005581a0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 7
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 6
call fcn.005581a0
lea ecx, [esp + 0x34]
mov byte [esp + 0xb4], 5
call fcn.005581a0
lea ecx, [esp + 0x40]
mov byte [esp + 0xb4], 4
call fcn.005581a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 3
call fcn.005581a0
lea ecx, [esp + 0x44]
mov byte [esp + 0xb4], 2
call fcn.005581a0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov byte [esp + 0xb4], 1
mov edi, ecx
mov esi, eax
je 0x40b5d7
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40b485
mov eax, dword [esp + 0x14]
push eax
jmp 0x40b6cb
mov ecx, dword [esp + 0x18]
sub ecx, eax
sar ecx, 2
cmp ecx, esi
jbe 0x40b4e2
lea ecx, [eax + esi*4]
call fcn.00558520
xor edx, edx
cmp ax, 2
setg dl
inc edi
mov eax, edx
cmp di, 5
jl 0x40ae7a
cmp ax, bp
je 0x40b4d2
mov ebx, 4
inc ebx
cmp bx, 3
jl 0x40ae4d
jmp 0x40afbf
push ebp
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x6094cc
call fcn.00558100
push ecx
mov byte [esp + 0xc4], 0xf
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x609440
call fcn.00558100
mov ecx, 0x619a58
mov byte [esp + 0xc4], 0xb
call fcn.00543af0
lea ecx, [esp + 0x20]
mov byte [esp + 0xb4], 9
call fcn.005581a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb4], 8
call fcn.005581a0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 7
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 6
call fcn.005581a0
lea ecx, [esp + 0x34]
mov byte [esp + 0xb4], 5
call fcn.005581a0
lea ecx, [esp + 0x40]
mov byte [esp + 0xb4], 4
call fcn.005581a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 3
call fcn.005581a0
lea ecx, [esp + 0x44]
mov byte [esp + 0xb4], 2
call fcn.005581a0
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, ecx
mov byte [esp + 0xb4], 1
mov edi, ecx
mov esi, eax
je 0x40b5d7
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40b5c5
mov eax, dword [esp + 0x14]
push eax
jmp 0x40b6cb
mov dword [esp + 0x34], esp
push 6
push 0x609448
call fcn.00558100
push ecx
mov byte [esp + 0xc4], 0x11
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
push 0x609584
call fcn.00558100
mov ecx, 0x619a58
mov byte [esp + 0xc4], 0xb
call fcn.00543af0
lea ecx, [esp + 0x20]
mov byte [esp + 0xb4], 9
call fcn.005581a0
lea ecx, [esp + 0x3c]
mov byte [esp + 0xb4], 8
call fcn.005581a0
lea ecx, [esp + 0x30]
mov byte [esp + 0xb4], 7
call fcn.005581a0
lea ecx, [esp + 0x38]
mov byte [esp + 0xb4], 6
call fcn.005581a0
lea ecx, [esp + 0x34]
mov byte [esp + 0xb4], 5
call fcn.005581a0
lea ecx, [esp + 0x40]
mov byte [esp + 0xb4], 4
call fcn.005581a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb4], 3
call fcn.005581a0
lea ecx, [esp + 0x44]
mov byte [esp + 0xb4], 2
call fcn.005581a0
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp esi, eax
mov byte [esp + 0xb4], 1
mov edi, eax
je 0x40b6ca
mov ecx, esi
call fcn.005581a0
add esi, 4
cmp esi, edi
jne 0x40b6b8
mov esi, dword [esp + 0x14]
push esi
call fcn.005bc500
add esp, 4
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
lea ecx, [esp + 0x48]
mov byte [esp + 0xb4], 0
call fcn.00558a00
lea ecx, [esp + 0xbc]
mov dword [esp + 0xb4], 0xffffffff
call fcn.005581a0
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebp
xor ax, ax
mov dword fs:[0], ecx
pop ebx
add esp, 0xa8
ret 4