Function at 0x455390
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x607fe0
mov eax, dword fs:[0]
push eax
sub esp, 0x94
push ebx
push ebp
push esi
push edi
mov eax, dword [0x711ab8]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov dword [esp + 0x20], ecx
mov ebp, dword [ecx + 0x20]
xor eax, eax
shr ebp, 3
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
and ebp, 8
lea edi, [ecx + 8]
jmp 0x4553f0
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x45540b
test eax, eax
je 0x455406
mov ecx, dword [esp + 0x20]
add ecx, 0x10
cmp eax, dword [ecx]
je 0x45540b
call fcn.005c475a
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 4]
add esi, 0x10
cmp eax, dword [esi + 4]
je 0x455901
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x45544d
test eax, eax
jne 0x45542e
call fcn.005c475a
mov eax, dword [edi]
cmp dword [eax + 0x18], 0x10
jb 0x45543b
mov ecx, dword [eax + 4]
jmp 0x45543e
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
add edx, ecx
cmp dword [edi + 4], edx
jb 0x45544d
call fcn.005c475a
mov eax, dword [edi + 4]
mov bl, byte [eax]
mov byte [esp + 0x34], bl
cmp ebp, 8
ja case.default.0x45545f
jmp dword [ebp*4 + 0x455940]
cmp bl, 0xd
je 0x455470
cmp bl, 0xa
jne 0x45547a
mov ebp, 2
jmp 0x4553f0
mov ebp, 6
jmp 0x4553f0
cmp bl, 0xd
je 0x455492
cmp bl, 0xa
jne case.default.0x45545f
mov ebp, 2
jmp 0x4553f0
cmp dword [esp + 0x24], 0
mov ebp, 3
jle 0x4558a2
mov eax, dword [edi]
mov dword [esp + 0x24], 0
cmp eax, 0xfffffffc
je 0x4554e3
test eax, eax
jne 0x4554c4
call fcn.005c475a
mov eax, dword [edi]
cmp dword [eax + 0x18], 0x10
jb 0x4554d1
mov ecx, dword [eax + 4]
jmp 0x4554d4
lea ecx, [eax + 4]
mov eax, dword [eax + 0x14]
add eax, ecx
cmp dword [edi + 4], eax
jb 0x4554e3
call fcn.005c475a
mov eax, dword [edi]
inc dword [edi + 4]
cmp eax, 0xfffffffc
je 0x4554fa
test eax, eax
je 0x4554f5
cmp eax, dword [esi]
je 0x4554fa
call fcn.005c475a
mov ecx, dword [edi + 4]
cmp ecx, dword [esi + 4]
je 0x455901
mov ecx, edi
call fcn.00442fe0
movsx eax, byte [eax]
xor edx, edx
cmp bl, 0xd
setne dl
dec edx
and edx, 0xfffffffd
add edx, 0xd
cmp eax, edx
jne 0x4553f0
mov dword [esp + 0x24], 0xffffffff
jmp case.default.0x45545f
cmp bl, 0x20
je 0x45553e
cmp bl, 9
jne 0x455548
mov ebp, 5
jmp 0x4553f0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x45564c
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx], 0
je 0x4555d2
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
push eax
lea ecx, [esp + 0x74]
mov byte [edx + eax], 0
call fcn.0040abb0
xor esi, esi
mov dword [esp + 0xb0], esi
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x3c]
call fcn.0040abb0
mov byte [esp + 0xb0], 1
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x3c]
push edx
call fcn.00455ff0
mov byte [esp + 0xb0], 0
lea ecx, [esp + 0x38]
call fcn.0040ac20
mov dword [esp + 0xb0], 0xffffffff
lea ecx, [esp + 0x70]
call fcn.0040ac20
jmp 0x455644
push 0x6dbf65
lea ecx, [esp + 0x90]
call fcn.0040abb0
mov dword [esp + 0xb0], 2
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x58]
call fcn.0040abb0
mov byte [esp + 0xb0], 3
lea ecx, [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x58]
push edx
call fcn.00455ff0
mov byte [esp + 0xb0], 2
lea ecx, [esp + 0x54]
call fcn.0040ac20
mov dword [esp + 0xb0], 0xffffffff
lea ecx, [esp + 0x8c]
call fcn.0040ac20
xor esi, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], esi
cmp bl, 0xd
je 0x45565a
cmp bl, 0xa
je 0x45565a
xor eax, eax
jmp 0x45565f
mov eax, 1
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx*4 + 2]
mov ebp, ecx
jmp 0x4553f0
cmp bl, 0x20
je case.default.0x45545f
cmp bl, 9
je case.default.0x45545f
mov ebp, 7
jmp 0x4553f0
cmp bl, 0x20
je case.default.0x45545f
cmp bl, 9
je case.default.0x45545f
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x30]
jne 0x4556ca
lea edx, [esp + 0x1c]
push edx
push 0x20
lea esi, [esp + 0x38]
lea ebx, [esp + 0x30]
call fcn.004560b0
mov ebp, 7
jmp 0x4553f0
mov ecx, dword [esp + 0x28]
mov byte [eax + ecx], 0x20
inc eax
mov dword [esp + 0x1c], eax
mov ebp, 7
jmp 0x4553f0
mov dl, bl
sub dl, 0x21
cmp dl, 0x5d
ja 0x455762
cmp bl, 0x3a
je 0x455767
cmp dword [esp + 0x14], 0
jbe 0x455715
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
movzx edx, byte [eax + ecx - 1]
push edx
call fcn.004522b0
add esp, 4
test eax, eax
jne 0x4558db
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x2c]
jne 0x4557ad
lea eax, [esp + 0x14]
lea esi, [esp + 0x2c]
lea ebx, [esp + 0x18]
mov ecx, dword [esp + 0x34]
push eax
push ecx
call fcn.004560b0
mov eax, dword [edi]
cmp eax, 0xfffffffc
je 0x455891
test eax, eax
jne 0x45574e
call fcn.005c475a
mov eax, dword [edi]
cmp dword [eax + 0x18], 0x10
jb 0x45587f
mov ecx, dword [eax + 4]
jmp 0x455882
cmp bl, 0x3a
jne 0x45579c
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x455777
lea ebp, [ecx + 1]
jmp 0x4553f0
jbe 0x455795
mov edx, dword [esp + 0x18]
lea ecx, [ecx]
mov al, byte [edx + ecx - 1]
cmp al, 0x20
je 0x45578c
cmp al, 9
jne 0x455791
sub ecx, 1
jne 0x455780
mov dword [esp + 0x14], ecx
mov ebp, 4
jmp case.default.0x45545f
cmp bl, 0x20
je 0x455715
cmp bl, 9
jmp 0x45570f
mov edx, dword [esp + 0x18]
mov byte [eax + edx], bl
inc eax
mov dword [esp + 0x14], eax
jmp case.default.0x45545f
cmp bl, 0xd
je 0x4557c8
cmp bl, 0xa
jne 0x4557d2
mov ebp, 2
jmp 0x4553f0
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x30]
jne 0x4557ed
lea eax, [esp + 0x1c]
lea esi, [esp + 0x30]
lea ebx, [esp + 0x28]
jmp 0x45572f
mov edx, dword [esp + 0x28]
mov byte [eax + edx], bl
inc eax
mov dword [esp + 0x1c], eax
jmp case.default.0x45545f
cmp bl, 0xd
je 0x45580c
cmp bl, 0xa
jne case.default.0x45545f
mov ecx, edi
call fcn.00445a60
mov esi, eax
mov eax, dword [esi]
cmp eax, 0xfffffffc
je 0x455830
test eax, eax
je 0x45582b
mov ecx, dword [esp + 0x20]
add ecx, 0x10
cmp eax, dword [ecx]
je 0x455830
call fcn.005c475a
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 4]
add eax, 0x10
cmp ecx, dword [eax + 4]
je 0x455901
mov ecx, edi
call fcn.00442fe0
movsx eax, byte [eax]
xor edx, edx
cmp bl, 0xd
setne dl
dec edx
and edx, 0xfffffffd
add edx, 0xd
cmp eax, edx
jne 0x455867
mov ecx, edi
call fcn.00445a60
cmp dword [esp + 0x24], 0
je 0x455901
mov dword [esp + 0x24], 0
jmp 0x4553f0
lea ecx, [eax + 4]
mov edx, dword [eax + 0x14]
add edx, ecx
cmp dword [edi + 4], edx
jb 0x455891
call fcn.005c475a
mov eax, 1
add dword [edi + 4], eax
add dword [esp + 0x24], eax
jmp 0x4553f0
push esi
mov ecx, edi
call fcn.00445a60
mov ecx, eax
call fcn.00445aa0
test al, al
jne 0x455901
mov ecx, edi
call fcn.00442fe0
movsx edx, byte [eax]
xor ecx, ecx
cmp bl, 0xd
setne cl
dec ecx
and ecx, 0xfffffffd
add ecx, 0xd
cmp edx, ecx
jne 0x455901
mov ecx, edi
call fcn.00445a60
jmp 0x455901
mov ecx, dword [esp + 0x20]
add ecx, 0x44
call fcn.00455cd0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [eax]
push ecx
push edx
mov ecx, eax
call fcn.005bba50
mov ecx, eax
call fcn.0040f5b0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x455912
push eax
call fcn.005c47cb
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
je 0x455923
push eax
call fcn.005c47cb
add esp, 4
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret