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

Disassembly:
push 0xffffffffffffffff
push 0x6c1de3
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 0x5c4d30
mov byte [esi + 0x14], 1
mov al, byte [0x71bb5c]
test al, al
je 0x5c4cf1
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 [0x710a5c]
mov cl, al
inc al
push ecx
mov ecx, edi
mov byte [0x710a5c], al
call fcn.00610310
dec ebx
jne 0x5c4cd6
jmp 0x5c4d30
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 0x5c4e53
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 0x5c4d9f
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 0x5c4e2c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5c4e23
cmp al, 0xff
je 0x5c4e23
dec al
mov byte [ecx], al
jmp 0x5c4e2c
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 0x5c5385
mov eax, dword [esp + 0x3c]
xor edi, edi
and eax, 0xff
sub eax, ebp
je 0x5c506d
dec eax
jne case.default.0x5c4e83
mov ecx, dword [esp + 0x30]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 3
ja case.default.0x5c4e83
jmp dword [eax*4 + 0x5c53a0]
push 0x11
mov ecx, esi
call fcn.00610190
test al, 1
je 0x5c4e9b
push 0x57
jmp 0x5c4e9d
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 0x5c5046
push 0x12
mov ecx, esi
call fcn.00610190
test al, 1
je 0x5c4f02
push 0x57
jmp 0x5c4f04
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 0x5c5046
push 0x12
mov ecx, esi
call fcn.00610190
test al, 2
je 0x5c4f6f
push 0x59
jmp 0x5c4f71
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 0x5c5046
push 0x12
mov ecx, esi
call fcn.00610190
and al, 0xf0
cmp al, 0xb0
jae 0x5c4fef
push 0x12
mov ecx, esi
call fcn.00610190
and eax, 0xff
shr eax, 4
mov edi, eax
jmp case.default.0x5c4e83
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.0x5c4e83
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5c516f
cmp al, 0xff
je 0x5c516f
dec al
mov byte [ecx], al
jmp case.default.0x5c4e83
mov eax, dword [esp + 0x30]
and eax, 0xff
dec eax
je 0x5c50b8
dec eax
jne case.default.0x5c4e83
push 0xd
mov ecx, esi
call fcn.00610190
test al, 1
je 0x5c50b1
xor edi, edi
mov ebx, 1
push 0xd
mov ecx, esi
call fcn.00610190
mov cl, bl
shr al, cl
test al, 1
je 0x5c50a6
inc edi
inc ebx
cmp ebx, 6
jl 0x5c5094
jmp case.default.0x5c4e83
xor edi, edi
jmp case.default.0x5c4e83
push 0xc
mov ecx, esi
call fcn.00610190
test al, al
jne 0x5c50c9
push 0x50
jmp 0x5c5102
push 0xc
mov ecx, esi
call fcn.00610190
and eax, 0x3e
add eax, 0xfffffffe
cmp eax, 0x1e
ja case.0x5c50e5.7
xor edx, edx
mov dl, byte [eax + 0x5c53c8]
jmp dword [edx*4 + 0x5c53b0]
push 0x51
jmp 0x5c5102
push 0x52
jmp 0x5c5102
push 0x53
jmp 0x5c5102
push 0x54
jmp 0x5c5102
push 0x55
jmp 0x5c5102
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.0x5c4e83
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5c516f
cmp al, 0xff
je 0x5c516f
dec al
mov byte [ecx], al
jmp case.default.0x5c4e83
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 0x5c5230
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 0x5c51b1
call fcn.0069788b
mov edi, dword [esp + 0x18]
cmp edi, ebp
je 0x5c51d9
mov al, byte [edi - 1]
test al, al
je 0x5c51d9
cmp al, 0xff
je 0x5c51d9
cmp ebx, ebp
jne 0x5c5202
dec al
push ebp
lea ecx, [esp + 0x18]
mov byte [edi - 1], al
call fcn.004138a0
jmp 0x5c5230
cmp ebx, ebp
jne 0x5c51ea
push 1
lea ecx, [esp + 0x18]
call fcn.004138a0
jmp 0x5c5230
mov eax, dword [esp + 0x20]
cmp eax, 0x1f
ja 0x5c51f7
cmp eax, ebx
jae 0x5c5210
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 0x5c5259
mov ebp, eax
lea edx, [esp + 0x14]
cmp ebx, edx
jne 0x5c5278
push eax
push ebp
mov ecx, ebx
call fcn.004140d0
push edi
push edi
mov ecx, ebx
call fcn.004140d0
jmp 0x5c5300
cmp ebp, edi
jbe 0x5c52c4
cmp ebp, ecx
jne 0x5c52c4
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5c528d
mov eax, 0x6ce1f8
cmp byte [eax - 1], 0xfe
jae 0x5c52c4
push 1
mov ecx, ebx
call fcn.004138a0
mov eax, dword [esp + 0x18]
cmp eax, edi
jne 0x5c52a9
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 0x5c5300
push 1
push ebp
mov ecx, ebx
call fcn.00414210
test al, al
je 0x5c5300
mov esi, dword [esp + 0x18]
cmp esi, edi
jne 0x5c52df
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 0x5c5363
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5c535a
cmp al, 0xff
je 0x5c535a
dec al
mov byte [ecx], al
jmp 0x5c5363
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