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

Disassembly:
push 0xffffffffffffffff
push 0x6c2693
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xdc
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x2c], ebp
mov al, byte [esp + 0x2b]
mov dword [esp + 0xf4], 1
mov byte [esp + 0x14], al
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 2
call fcn.0060d180
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf4], 3
call fcn.00546ec0
mov ecx, dword [0x710a78]
mov dx, word [0x710a7c]
mov dword [esp + 0x34], ecx
push 6
push 0x704398
lea ecx, [esp + 0x18]
mov byte [esp + 0xfc], 4
mov word [esp + 0x40], dx
call fcn.0060ff10
push 4
lea ecx, [esp + 0x104]
mov byte [esp + 0xf8], 5
call fcn.00610190
push 5
lea ecx, [esp + 0x104]
mov byte [esp + 0x40], al
call fcn.00610190
mov byte [esp + 0x30], al
mov al, byte [esi + 0x14]
cmp al, 0xff
jne 0x5cb320
mov byte [esi + 0x14], 1
mov al, byte [0x71bb5c]
test al, al
je 0x5cb2e1
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push ebp
call fcn.0060fea0
lea edi, [esi + 0x10]
mov ecx, edi
call fcn.006101a0
push 0x16
mov ecx, edi
call fcn.00610310
push 0x61
mov ecx, edi
call fcn.00610310
mov al, byte [esi + 0x14]
mov ecx, edi
push eax
call fcn.00610310
mov ebx, 0x14
mov al, byte [0x710d5c]
mov cl, al
inc al
push ecx
mov ecx, edi
mov byte [0x710d5c], al
call fcn.00610310
dec ebx
jne 0x5cb2c6
jmp 0x5cb320
sub esp, 0x24
lea edx, [esp + 0x58]
mov ecx, esp
mov dword [esp + 0x48], esp
push 1
push edx
push ecx
lea ecx, [esp + 0xf8]
call fcn.00547f90
lea ecx, [esp + 0x78]
call fcn.0060d330
push ecx
lea ecx, [esp + 0x58]
mov eax, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0060d6b0
lea ecx, [esi + 0x10]
call fcn.006101a0
add esi, 0x10
mov ecx, esi
call fcn.00610330
cmp ax, 0x12
jge 0x5cb443
push 0x70386c
lea ecx, [esp + 0x44]
push 0x703868
push ecx
call fcn.00698355
lea edi, [esp + 0x4c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x18]
push ebx
call fcn.00414210
test al, al
je 0x5cb38f
mov edi, dword [esp + 0x18]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x40]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [eax + ebx], 0
mov esi, dword [esp + 0xfc]
mov cl, byte [esp + 0x14]
lea eax, [esp + 0x14]
mov byte [esi], cl
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
mov edx, dword [0x6ce1fc]
mov ecx, esi
push edx
push ebp
push eax
call fcn.004136a0
mov dword [esp + 0x2c], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0xf4], 4
call fcn.0060ffb0
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf4], 3
call fcn.00546f80
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 2
call fcn.0060d280
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x5cb41c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cb413
cmp al, 0xff
je 0x5cb413
dec al
mov byte [ecx], al
jmp 0x5cb41c
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x100]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov byte [esp + 0xf4], 0
call fcn.0060ffb0
mov eax, esi
jmp 0x5cb975
mov eax, dword [esp + 0x3c]
xor edi, edi
and eax, 0xff
sub eax, ebp
je 0x5cb65d
dec eax
jne case.default.0x5cb473
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 3
ja case.default.0x5cb473
jmp dword [eax*4 + 0x5cb990]
push 0x11
mov ecx, esi
call fcn.00610190
test al, 1
je 0x5cb48b
push 0x57
jmp 0x5cb48d
push 0x58
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x7c]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xf4], 7
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0x7c]
mov byte [esp + 0xf4], 5
jmp 0x5cb636
push 0x12
mov ecx, esi
call fcn.00610190
test al, 1
je 0x5cb4f2
push 0x57
jmp 0x5cb4f4
push 0x58
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x8c]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xf4], 8
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0x8c]
mov byte [esp + 0xf4], 5
jmp 0x5cb636
push 0x12
mov ecx, esi
call fcn.00610190
test al, 2
je 0x5cb55f
push 0x59
jmp 0x5cb561
push 0x5a
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0xac]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xf4], 9
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0xac]
mov byte [esp + 0xf4], 5
jmp 0x5cb636
push 0x12
mov ecx, esi
call fcn.00610190
and al, 0xf0
cmp al, 0xb0
jae 0x5cb5df
push 0x12
mov ecx, esi
call fcn.00610190
and eax, 0xff
shr eax, 4
mov edi, eax
jmp case.default.0x5cb473
push 0x5b
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0060fe80
lea eax, [esp + 0x9c]
push eax
call fcn.0060f170
add esp, 8
mov ecx, dword [0x6ce1fc]
mov byte [esp + 0xf4], 0xa
push ecx
push ebp
push eax
lea ecx, [esp + 0x20]
call fcn.004136a0
mov eax, dword [esp + 0x9c]
mov byte [esp + 0xf4], 5
cmp eax, ebp
je case.default.0x5cb473
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cb75f
cmp al, 0xff
je 0x5cb75f
dec al
mov byte [ecx], al
jmp case.default.0x5cb473
mov eax, dword [esp + 0x30]
and eax, 0xff
dec eax
je 0x5cb6a8
dec eax
jne case.default.0x5cb473
push 0xd
mov ecx, esi
call fcn.00610190
test al, 1
je 0x5cb6a1
xor edi, edi
mov ebx, 1
push 0xd
mov ecx, esi
call fcn.00610190
mov cl, bl
shr al, cl
test al, 1
je 0x5cb696
inc edi
inc ebx
cmp ebx, 6
jl 0x5cb684
jmp case.default.0x5cb473
xor edi, edi
jmp case.default.0x5cb473
push 0xc
mov ecx, esi
call fcn.00610190
test al, al
jne 0x5cb6b9
push 0x50
jmp 0x5cb6f2
push 0xc
mov ecx, esi
call fcn.00610190
and eax, 0x3e
add eax, 0xfffffffe
cmp eax, 0x1e
ja case.0x5cb6d5.7
xor edx, edx
mov dl, byte [eax + 0x5cb9b8]
jmp dword [edx*4 + 0x5cb9a0]
push 0x51
jmp 0x5cb6f2
push 0x52
jmp 0x5cb6f2
push 0x53
jmp 0x5cb6f2
push 0x54
jmp 0x5cb6f2
push 0x55
jmp 0x5cb6f2
push 0x56
push 5
lea ecx, [esp + 0x18]
call fcn.006102b0
push ecx
lea eax, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0060fe80
lea ecx, [esp + 0xbc]
push ecx
call fcn.0060f170
add esp, 8
mov edx, dword [0x6ce1fc]
lea ecx, [esp + 0x14]
push edx
push ebp
push eax
mov byte [esp + 0x100], 6
call fcn.004136a0
mov eax, dword [esp + 0xbc]
mov byte [esp + 0xf4], 5
cmp eax, ebp
je case.default.0x5cb473
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cb75f
cmp al, 0xff
je 0x5cb75f
dec al
mov byte [ecx], al
jmp case.default.0x5cb473
push ecx
call fcn.00697880
add esp, 4
push edi
lea eax, [esp + 0x44]
push 0x703498
push eax
call fcn.00698355
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp eax, ebp
jne 0x5cb820
lea edi, [esp + 0x40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x5cb7a1
call fcn.0069788b
mov edi, dword [esp + 0x18]
cmp edi, ebp
je 0x5cb7c9
mov al, byte [edi - 1]
test al, al
je 0x5cb7c9
cmp al, 0xff
je 0x5cb7c9
cmp ebx, ebp
jne 0x5cb7f2
dec al
push ebp
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x5cb820
cmp ebx, ebp
jne 0x5cb7da
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
jmp 0x5cb820
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x5cb7e7
cmp eax, ebx
jae 0x5cb800
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
push ebx
lea ecx, [esp + 0x18]
call fcn.00414870
mov edi, dword [esp + 0x18]
mov ecx, ebx
lea esi, [esp + 0x40]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov byte [eax + ebx], 0
mov ebx, dword [esp + 0xfc]
mov cl, byte [esp + 0x14]
xor edi, edi
mov byte [ebx], cl
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 4], edi
mov dword [ebx + 8], edi
mov dword [ebx + 0xc], edi
mov eax, dword [0x6ce1fc]
mov ebp, ecx
cmp eax, ebp
jae 0x5cb849
mov ebp, eax
lea edx, [esp + 0x14]
cmp ebx, edx
jne 0x5cb868
push eax
push ebp
mov ecx, ebx
call fcn.004140d0
push edi
push edi
mov ecx, ebx
call fcn.004140d0
jmp 0x5cb8f0
cmp ebp, edi
jbe 0x5cb8b4
cmp ebp, ecx
jne 0x5cb8b4
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5cb87d
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5cb8b4
push 1
mov ecx, ebx
call fcn.004138a0
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5cb899
mov eax, 0x6ce1f8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5cb8f0
push 1
push ebp
mov ecx, ebx
call fcn.00414210
test al, al
je 0x5cb8f0
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x5cb8cf
mov esi, 0x6ce1f8
mov edi, dword [ebx + 4]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 4]
mov dword [ebx + 8], ebp
add ebp, eax
xor edi, edi
mov byte [ebp], 0
lea ecx, [esp + 0x10]
mov dword [esp + 0x2c], 1
mov byte [esp + 0xf4], 4
call fcn.0060ffb0
lea ecx, [esp + 0xc8]
mov byte [esp + 0xf4], 3
call fcn.00546f80
lea ecx, [esp + 0x54]
mov byte [esp + 0xf4], 2
call fcn.0060d280
mov eax, dword [esp + 0x18]
cmp eax, edi
je 0x5cb953
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cb94a
cmp al, 0xff
je 0x5cb94a
dec al
mov byte [ecx], al
jmp 0x5cb953
push ecx
call fcn.00697880
add esp, 4
lea ecx, [esp + 0x100]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov byte [esp + 0xf4], 0
call fcn.0060ffb0
mov eax, ebx
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xe8
ret 8