Function at 0x53e1f0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0xa8], ebp
mov ebx, ecx
mov edi, dword [ebp + 8]
mov dword [esi + 0xac], esp
mov dword [esi + 0xb8], 0xffffffff
lea eax, [esi + 0xb0]
mov dword [esi + 0xb4], 0x5ce2d0
mov ecx, dword fs:[0]
mov dword [esi + 0xb0], ecx
mov dword fs:[0], eax
lea ecx, [esi + 0x98]
call fcn.004a32c0
lea eax, [edi + 4]
mov dword [esi + 0x94], eax
lea eax, [ebx + 0x30]
mov dword [esi + 4], eax
mov dword [esi], ebx
lea eax, [ebx + 0x5c]
mov dword [esi + 0x90], eax
mov dword [esi + 0x8c], 0
mov eax, dword [esi + 0x8c]
and al, 1
mov byte [esi + 0x68], al
cmp byte [esi + 0x68], 0
jne 0x53e594
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete cl
cmp dword [0x60cddc], 0xa
setl al
or al, cl
lea edx, [esi + 0x28]
nop word [eax + eax]
test al, al
je 0x53e2b0
mov ecx, dword [esi]
mov eax, dword [ecx + 0x28]
cmp eax, 6
jl 0x53e5a3
cmp eax, 9
jae 0x53e360
cmp eax, 7
jb 0x53e630
je 0x53e685
mov byte [esi + 0x28], 2
mov dword [esi + 0xb8], 0
mov ecx, dword [ebp + 8]
push edx
call fcn.0055e5c0
mov dword [esi + 8], eax
mov ecx, dword [esi + 0x94]
lea eax, [esi + 8]
push eax
call fcn.0055ebd0
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x60cddc], 0xa
setge cl
setl ah
xor ah, dl
jne 0x53e334
or cl, al
jne 0x53f080
mov ecx, dword [esi]
call fcn.00530470
cmp eax, 0xa
je 0x53e793
mov byte [esi + 8], 1
lea ecx, [esi + 0x98]
lea eax, [esi + 8]
push eax
call fcn.00540350
jmp 0x53e279
cmp eax, 0xe
jae 0x53f152
mov dword [esi + 0xb8], 0
cmp eax, 0xa
jae 0x53f22f
mov byte [esi + 0x28], 1
mov ecx, dword [ebp + 8]
push edx
call fcn.0055e5c0
mov dword [esi + 8], eax
mov ecx, dword [esi + 0x94]
lea eax, [esi + 8]
push eax
call fcn.0055ebd0
mov ecx, dword [0x60cde0]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x60cde4], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x53e3c8
or cl, al
test cl, 1
jne 0x53f070
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53e3f3
xor cl, al
je 0x53f090
mov ecx, dword [esi]
call fcn.00530470
mov ecx, dword [0x60cdd8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
cmp dword [0x60cddc], 0xa
setl cl
or cl, dl
cmp eax, 0xb
je 0x53e85f
test cl, cl
je 0x53f0a0
mov eax, dword [esi]
cmp dword [eax + 0x28], 4
jne 0x53f282
mov edx, dword [0x60cd78]
mov ecx, dword [0x60cd7c]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x1d054f1e
mov edi, 0xb51e73bd
cmovne edx, edi
cmp eax, 0xffffffff
sete byte [esi + 0x50]
mov eax, edx
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
cmovge eax, edx
mov ecx, 0x19c0c0c
nop word cs:[eax + eax]
cmp ecx, 0x19c0c0b
jg 0x53e4b0
cmp ecx, 0xb111b02c
je 0x53e4e7
cmp ecx, 0xb51e73bd
jne 0x53e490
jmp 0x53e500
cmp ecx, 0x1d054f1e
je 0x53e4eb
cmp ecx, 0x19c0c0c
jne 0x53e490
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x28]
mov ch, dl
xor ch, cl
mov edi, 0x1d054f1e
mov ebx, 0xb111b02c
cmovne edi, ebx
test cl, cl
mov ecx, edi
cmovne ecx, ebx
test dl, dl
cmove ecx, edi
jmp 0x53e490
mov ecx, eax
jmp 0x53e490
mov ecx, 0xb111b02c
jmp 0x53e490
mov eax, dword [esi + 0x90]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx - 4]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xb8], 0
push eax
lea eax, [esi + 8]
push eax
call fcn.00553940
mov eax, dword [esi + 8]
add eax, 0x28
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [0x60cdd8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x60cddc], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x53e565
or cl, al
test cl, 1
jne 0x53f0b0
mov ecx, dword [esi]
call fcn.00530470
cmp eax, 0xc
jne 0x53f683
mov byte [esi + 8], 0
lea ecx, [esi + 0x98]
lea eax, [esi + 8]
push eax
call fcn.00540350
mov ecx, dword [esi]
call fcn.00530470
jmp 0x53e279
mov dword [esi + 0x8c], 0
jmp 0x53e927
cmp eax, 3
jge 0x53e5d8
test eax, eax
jle 0x53f22f
mov dword [esi + 0xb8], 0
cmp eax, 1
jne 0x53ef92
mov byte [esi + 8], 1
mov ecx, dword [ebp + 8]
lea eax, [esi + 8]
push eax
call fcn.00560b10
jmp 0x53e927
jne 0x53eed1
mov dword [esi + 8], 0
mov dword [esi + 0xb8], 0
mov ecx, dword [ebp + 8]
lea eax, [esi + 8]
push eax
call fcn.005615d0
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53e927
xor cl, al
jne 0x53e927
jmp 0x53f140
vmovsd xmm0, qword [ecx + 0x78]
vmovsd qword [esi + 8], xmm0
mov dword [esi + 0xb8], 0
mov ecx, dword [ebp + 8]
lea eax, [esi + 8]
push eax
call fcn.00562500
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53e927
xor cl, al
jne 0x53e927
jmp 0x53f120
vmovsd xmm0, qword [ecx + 0x88]
sub esp, 8
vmovsd qword [esi + 0x68], xmm0
vmovsd qword [esp], xmm0
call fcn.00555c30
add esp, 8
test eax, eax
jg 0x53f77f
mov eax, dword [0x60cd78]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x60cd7c]
sete byte [esi + 0x50]
sete dl
mov eax, 0x1d054f1e
mov edi, 0xb51e73bd
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0x1d054f1e
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x19c0c0c
nop word cs:[eax + eax]
cmp ecx, 0x19c0c0b
jg 0x53e720
cmp ecx, 0xb111b02c
je 0x53e757
cmp ecx, 0xb51e73bd
jne 0x53e700
jmp 0x53e762
cmp ecx, 0x1d054f1e
je 0x53e75b
cmp ecx, 0x19c0c0c
jne 0x53e700
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x28]
mov dh, cl
xor dh, dl
test cl, cl
mov ecx, 0x1d054f1e
mov edi, 0xb111b02c
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x53e700
mov ecx, eax
jmp 0x53e700
mov ecx, 0xb111b02c
jmp 0x53e700
mov eax, dword [esi + 0x90]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
vmovsd xmm0, qword [esi + 0x68]
vmovsd qword [esi + 8], xmm0
mov dword [esi + 0xb8], 0
mov ecx, dword [ebp + 8]
lea eax, [esi + 8]
push eax
call fcn.0055fa90
jmp 0x53e927
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0x68], eax
mov ecx, dword [0x60cde8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov edx, dword [0x60cdec]
sete byte [esi + 0x28]
sete bl
mov ecx, 0x1976c01b
mov edi, 0x419790f
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 8]
setl dl
mov eax, 0x1976c01b
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0xe135582e
nop word cs:[eax + eax]
cmp edx, 0x419790e
jg 0x53e840
cmp edx, 0x8bf55deb
je 0x53e85b
cmp edx, 0xe135582e
jne 0x53e7f0
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 8]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0x1976c01b
mov eax, 0x8bf55deb
cmovne edx, eax
test bl, bl
mov edi, 0x1976c01b
cmove edx, edi
test bh, bh
cmovne edx, eax
jmp 0x53e7f0
cmp edx, 0x419790f
je 0x53e91b
cmp edx, 0x1976c01b
jne 0x53e7f0
mov edx, 0x8bf55deb
jmp 0x53e7f0
mov edx, ecx
jmp 0x53e7f0
test cl, cl
je 0x53f130
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [esi + 0x68], eax
mov ecx, dword [0x60cde8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
mov edx, dword [0x60cdec]
sete byte [esi + 0x28]
sete bl
mov ecx, 0x1976c01b
mov edi, 0x419790f
cmove ecx, edi
cmp edx, 0xa
setl byte [esi + 8]
setl dl
mov eax, 0x1976c01b
cmovge ecx, eax
xor dl, bl
cmovne ecx, edi
mov edx, 0xe135582e
nop dword [eax]
cmp edx, 0x419790e
jg 0x53e900
cmp edx, 0x8bf55deb
je 0x53e917
cmp edx, 0xe135582e
jne 0x53e8c0
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 8]
mov dh, bl
xor dh, dl
mov edi, 0x1976c01b
mov eax, 0x8bf55deb
cmovne edi, eax
test dl, dl
mov edx, edi
cmovne edx, eax
test bl, bl
cmove edx, edi
jmp 0x53e8c0
cmp edx, 0x419790f
je 0x53e91b
cmp edx, 0x1976c01b
jne 0x53e8c0
mov edx, 0x8bf55deb
jmp 0x53e8c0
mov edx, ecx
jmp 0x53e8c0
mov eax, dword [esi + 0x68]
add eax, 0xfffffffc
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov eax, dword [0x60b168]
mov ecx, dword [0x60b16c]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x50]
sete dl
mov eax, 0xa04afcb4
mov edi, 0xade30e26
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl dh
mov ecx, dword [esi + 0xa4]
mov dword [esi + 0x68], ecx
mov ebx, 0xa04afcb4
cmovge eax, ebx
xor dh, dl
cmovne eax, edi
mov edx, 0xb6c3b617
nop dword [eax + eax]
cmp edx, 0xb6c3b616
jg 0x53e9a0
cmp edx, 0xa04afcb4
je 0x53e9dc
cmp edx, 0xade30e26
jne 0x53e980
jmp 0x53e9f0
cmp edx, 0xc8a3d7be
je 0x53e9e3
cmp edx, 0xb6c3b617
jne 0x53e980
movzx ebx, byte [esi + 0x50]
movzx edx, byte [esi + 0x28]
mov bh, bl
xor bh, dl
test dl, dl
mov edx, 0xa04afcb4
mov ecx, 0xc8a3d7be
cmovne edx, ecx
test bl, bl
mov edi, 0xa04afcb4
cmove edx, edi
test bh, bh
cmovne edx, ecx
jmp 0x53e980
mov edx, 0xc8a3d7be
jmp 0x53e980
mov edx, eax
jmp 0x53e980
cmp dword [esi + 0x68], 0
sete byte [esi + 8]
cmp byte [esi + 8], 0
jne 0x53f3fc
lea ecx, [esi + 0x98]
lea eax, [esi + 8]
push eax
call fcn.00542300
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov eax, dword [eax]
btc eax, ecx
bt eax, ecx
jb 0x53eaa6
mov dword [esi + 0xb8], 0
mov ecx, dword [esi]
call fcn.00530470
mov ecx, dword [0x60cdd8]
lea edx, [ecx + 1]
imul edx, ecx
mov ecx, edx
xor ecx, 0xfffffffe
test ecx, edx
sete dl
cmp dword [0x60cddc], 0xa
setl cl
or cl, dl
cmp eax, 0xd
jne 0x53ebb2
test cl, cl
je 0x53f0d0
mov ecx, dword [esi]
call fcn.00530470
mov ecx, dword [0x60cdd8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x60cddc], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x53e26e
or cl, al
test cl, 1
je 0x53e26e
jmp 0x53f0f0
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x60cddc], 0xa
setge cl
setl ah
xor ah, dl
jne 0x53ead7
or cl, al
jne 0x53f0c0
mov dword [esi + 0xb8], 0
mov ecx, dword [esi]
call fcn.00530470
cmp eax, 0xd
jne 0x53ed29
mov ecx, dword [esi]
call fcn.00530470
cmp eax, 4
jne 0x53f74e
mov eax, dword [0x60cd78]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov ecx, dword [0x60cd7c]
sete byte [esi + 0x50]
sete dl
mov eax, 0x1d054f1e
mov edi, 0xb51e73bd
cmove eax, edi
cmp ecx, 0xa
setl byte [esi + 0x28]
setl cl
mov ebx, 0x1d054f1e
cmovge eax, ebx
xor cl, dl
cmovne eax, edi
mov ecx, 0x19c0c0c
nop dword [eax]
cmp ecx, 0x19c0c0b
jg 0x53eb70
cmp ecx, 0xb111b02c
je 0x53eba7
cmp ecx, 0xb51e73bd
jne 0x53eb50
jmp 0x53ee2f
cmp ecx, 0x1d054f1e
je 0x53ebab
cmp ecx, 0x19c0c0c
jne 0x53eb50
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x1d054f1e
mov edi, 0xb111b02c
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x53eb50
mov ecx, eax
jmp 0x53eb50
mov ecx, 0xb111b02c
jmp 0x53eb50
test cl, cl
je 0x53f0e0
mov eax, dword [esi]
cmp dword [eax + 0x28], 0xa
jne 0x53f405
mov ecx, dword [0x60cde8]
mov edx, dword [0x60cdec]
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete cl
cmp edx, 0xa
setl ch
xor ch, cl
mov edi, 0x1976c01b
mov ebx, 0x419790f
cmovne edi, ebx
cmp eax, 0xffffffff
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
sete byte [esi + 0x28]
mov eax, edi
cmove eax, ebx
cmp edx, 0xa
setl byte [esi + 8]
cmovge eax, edi
mov edx, 0xe135582e
nop dword [eax]
cmp edx, 0x419790e
jg 0x53ec70
cmp edx, 0x8bf55deb
je 0x53ec87
cmp edx, 0xe135582e
jne 0x53ec20
movzx ebx, byte [esi + 0x28]
movzx edx, byte [esi + 8]
mov dh, bl
xor dh, dl
mov edi, 0x1976c01b
mov dword [esi + 0x68], ecx
mov ecx, 0x8bf55deb
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
mov ecx, dword [esi + 0x68]
test bl, bl
cmove edx, edi
jmp 0x53ec20
cmp edx, 0x419790f
je 0x53ec8b
cmp edx, 0x1976c01b
jne 0x53ec20
mov edx, 0x8bf55deb
jmp 0x53ec20
mov edx, eax
jmp 0x53ec20
mov eax, ecx
add eax, 0xfffffffc
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
lea ecx, [esi + 0x98]
call fcn.00542800
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
mov dl, 1
mov dword [esi + 0x8c], edx
test cl, al
jne 0x53e26e
xor cl, al
jne 0x53e26e
nop dword [eax]
lea edi, [esi + 0x98]
mov ecx, edi
call fcn.00542800
mov ecx, edi
call fcn.00542800
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmp dword [0x60cddc], 0xa
setl dl
mov eax, edx
xor al, cl
test dl, cl
jne 0x53e26e
test al, al
je 0x53ece0
jmp 0x53e26e
mov eax, dword [0x60cdd8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53ed55
xor cl, al
je 0x53f100
mov eax, dword [esi]
cmp dword [eax + 0x28], 0xb
jne 0x53f4a2
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 8]
mov ecx, dword [0x60cde8]
lea edx, [ecx - 1]
imul edx, ecx
mov edi, dword [0x60cdec]
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
sete dl
mov ecx, 0x1976c01b
mov eax, 0x419790f
cmove ecx, eax
cmp edi, 0xa
setl byte [esi + 8]
setl dh
mov edi, 0x1976c01b
cmovge ecx, edi
xor dh, dl
cmovne ecx, eax
mov edx, 0xe135582e
nop word cs:[eax + eax]
cmp edx, 0x419790e
jg 0x53ee10
cmp edx, 0x8bf55deb
je 0x53ee2b
cmp edx, 0xe135582e
jne 0x53edc0
movzx eax, byte [esi + 0x28]
movzx edx, byte [esi + 8]
mov dh, al
xor dh, dl
mov edi, 0x1976c01b
mov dword [esi + 0x68], ebx
mov ebx, 0x8bf55deb
cmovne edi, ebx
test dl, dl
mov edx, edi
cmovne edx, ebx
mov ebx, dword [esi + 0x68]
test al, al
cmove edx, edi
jmp 0x53edc0
cmp edx, 0x419790f
je 0x53eeb0
cmp edx, 0x1976c01b
jne 0x53edc0
mov edx, 0x8bf55deb
jmp 0x53edc0
mov edx, ecx
jmp 0x53edc0
mov eax, dword [esi + 0x90]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx - 4]
mov ecx, dword [ecx + 8]
mov dword [esi + 0xb8], 0
push eax
lea eax, [esi + 8]
push eax
call fcn.00553940
mov eax, dword [esi + 8]
add eax, 0x28
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x10], eax
mov ecx, dword [esi]
call fcn.00530470
mov ecx, dword [0x60cdd8]
lea edx, [ecx + 1]
imul edx, ecx
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete cl
cmp dword [0x60cddc], 0xa
setl dl
test dl, cl
jne 0x53ee9b
xor dl, cl
je 0x53f110
cmp eax, 0xc
jne 0x53f552
mov ecx, dword [esi]
call fcn.00530470
jmp 0x53e26e
add ebx, 0xfffffffc
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], ebx
lea ecx, [esi + 0x98]
call fcn.00542800
mov al, 1
mov dword [esi + 0x8c], eax
jmp 0x53e26e
cmp eax, 5
jae 0x53efd7
mov eax, dword [0x60cd78]
lea ecx, [eax + 1]
imul ecx, eax
mov edx, dword [0x60cd7c]
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete byte [esi + 0x50]
sete cl
mov eax, 0x1d054f1e
mov edi, 0xb51e73bd
cmove eax, edi
cmp edx, 0xa
setl byte [esi + 0x28]
setl dl
mov ebx, 0x1d054f1e
cmovge eax, ebx
xor dl, cl
cmovne eax, edi
mov ecx, 0x19c0c0c
nop word cs:[eax + eax]
cmp ecx, 0x19c0c0b
jg 0x53ef50
cmp ecx, 0xb111b02c
je 0x53ef87
cmp ecx, 0xb51e73bd
jne 0x53ef30
jmp 0x53f004
cmp ecx, 0x1d054f1e
je 0x53ef8b
cmp ecx, 0x19c0c0c
jne 0x53ef30
movzx edx, byte [esi + 0x50]
movzx ecx, byte [esi + 0x28]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x1d054f1e
mov edi, 0xb111b02c
cmovne ecx, edi
test dl, dl
cmove ecx, ebx
test dh, dh
cmovne ecx, edi
jmp 0x53ef30
mov ecx, eax
jmp 0x53ef30
mov ecx, 0xb111b02c
jmp 0x53ef30
mov byte [esi + 8], 0
mov ecx, dword [ebp + 8]
lea eax, [esi + 8]
push eax
call fcn.00560b10
mov eax, dword [0x60cdd8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53e927
xor cl, al
jne 0x53e927
jmp 0x53f150
mov eax, dword [ecx + 0x80]
mov edx, dword [ecx + 0x84]
mov dword [esi + 0xb8], 0
mov ecx, dword [ebp + 8]
push edx
push eax
call fcn.0055e480
test al, al
jne 0x53e927
jmp 0x53f871
mov eax, dword [esi + 0x90]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov dword [esi + 0xb8], 0
mov ecx, dword [ebp + 8]
push eax
call fcn.00563360
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53e927
xor cl, al
jne 0x53e927
nop word cs:[eax + eax]
jmp 0x53f060
jmp 0x53f070
jmp 0x53f080
jmp 0x53f090
jmp 0x53f0a0
jmp 0x53f0b0
jmp 0x53f0c0
jmp 0x53f0d0
jmp 0x53f0e0
jmp 0x53f0f0
jmp 0x53f100
jmp 0x53f110
jmp 0x53f120
jmp 0x53f130
jmp 0x53f140
jmp 0x53f150
mov dword [esi + 0xb8], 0
jne 0x53f22f
lea ecx, [esi + 0x50]
push 0x5f74d8
call fcn.00413ae0
mov dword [esi + 0xb8], 0x19
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 0
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x48], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
mov dword [esi + 0xb8], 0x1a
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov dword [esi + 0xb8], 0x1b
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 0x1c
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
mov ebx, eax
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
mov dword [esi], ebx
jne 0x53f8aa
xor cl, al
je 0x53f8ff
jmp 0x53f8aa
mov dword [esi + 0xb8], 0
lea ecx, [esi + 0x50]
push 0x5f74d8
call fcn.00413ae0
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53f34e
xor cl, al
jne 0x53f34e
nop word cs:[eax + eax]
jmp 0x53f280
lea ecx, [esi + 0x50]
push str.object_key
call fcn.00413ae0
mov dword [esi + 0xb8], 0x21
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 4
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x48], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
mov dword [esi + 0xb8], 0x22
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov dword [esi + 0xb8], 0x23
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 0x24
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
mov ebx, eax
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
mov dword [esi], ebx
jne 0x53f921
xor cl, al
je 0x53f968
jmp 0x53f921
mov dword [esi + 0xb8], 0x15
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 0x10
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x48], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
mov dword [esi + 0xb8], 0x16
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov dword [esi + 0xb8], 0x17
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 0x18
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
mov dword [esi], eax
lea ecx, [esi + 0x74]
call fcn.0040f050
lea ecx, [esi + 8]
call fcn.0054dd60
lea ecx, [esi + 0x28]
call fcn.0040f050
lea ecx, [esi + 0x50]
call fcn.0040f050
jmp 0x53f98a
mov al, 1
mov dword [esi], eax
jmp 0x53f98a
lea ecx, [esi + 0x50]
push str.array
call fcn.00413ae0
mov dword [esi + 0xb8], 0x11
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 0xa
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x48], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
mov dword [esi + 0xb8], 0x12
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov ecx, dword [0x60cdd8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x60cddc], 0xa
setge cl
setl ch
xor ch, dl
jne 0x53f5e2
or cl, al
test cl, 1
je 0x53f5e2
nop word cs:[eax + eax]
jmp 0x53f4a0
lea ecx, [esi + 0x50]
push str.object
call fcn.00413ae0
mov dword [esi + 0xb8], 5
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 0xb
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x48], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
mov dword [esi + 0xb8], 6
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov dword [esi + 0xb8], 7
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x60cddc], 0xa
setge cl
setl ah
xor ah, dl
jne 0x53f61f
or cl, al
je 0x53f61f
nop dword [eax]
jmp 0x53f550
lea ecx, [esi + 0x50]
push str.object_separator
call fcn.00413ae0
mov dword [esi + 0xb8], 9
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 0xc
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x48], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
mov dword [esi + 0xb8], 0xa
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov eax, dword [0x60cdd8]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53f646
xor cl, al
jne 0x53f646
nop word cs:[eax + eax]
jmp 0x53f5e0
mov dword [esi + 0xb8], 0x13
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 0x14
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
jmp 0x53f3d5
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 8
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
jmp 0x53f3d5
mov dword [esi + 0xb8], 0xb
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 0xc
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
jmp 0x53f3d5
lea ecx, [esi + 0x50]
push str.object_separator
call fcn.00413ae0
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53f6c2
xor cl, al
jne 0x53f6c2
nop dword [eax + eax]
jmp 0x53f6c0
mov dword [esi + 0xb8], 0x1d
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 0xc
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
mov dword [esi + 0x48], eax
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
mov dword [esi + 0xb8], 0x1e
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov dword [esi + 0xb8], 0x1f
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 0x20
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
jmp 0x53f3d5
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53f81a
xor cl, al
jne 0x53f81a
jmp 0x53f77d
mov byte [esi + 0x40], 0x27
mov dword [esi + 0xb8], 0
lea eax, [esi + 0x50]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov dword [esi + 0xb8], 1
lea eax, [esi + 0x40]
push eax
lea eax, [esi + 0x50]
push eax
push str.number_overflow_parsing_
lea eax, [esi + 0x28]
push eax
call fcn.00541f90
add esp, 0x10
mov dword [esi + 0xb8], 2
push 0
lea eax, [esi + 0x28]
push eax
push 0x196
lea eax, [esi + 8]
push eax
call fcn.00541c80
add esp, 0x10
mov dword [esi + 0xb8], 3
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
mov eax, dword [eax + 0x44]
mov dword [esi + 0xb8], 4
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.0055e3f0
mov dword [esi], eax
jmp 0x53f3d7
lea ecx, [esi + 0x50]
push str.object_key
call fcn.00413ae0
mov dword [esi + 0xb8], 0xd
mov ecx, dword [esi]
lea eax, [esi + 0x50]
push eax
push 4
lea eax, [esi + 0x28]
push eax
call fcn.0053cc90
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmp dword [0x60cddc], 0xa
setl al
or al, cl
cmp al, 1
je 0x53fa8a
jmp 0x53faa2
mov ecx, dword [0x60cdd8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x60cddc], 0xa
setl ch
setge cl
mov dword [esi], 0
cmp ch, dl
jne 0x53f98a
or cl, al
test cl, 1
je 0x53f98a
jmp 0x53f8a8
lea ecx, [esi + 0x74]
call fcn.0040f050
lea ecx, [esi + 8]
call fcn.0054dd60
lea ecx, [esi + 0x28]
call fcn.0040f050
lea ecx, [esi + 0x50]
call fcn.0040f050
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x60cddc], 0xa
setge cl
setl ah
xor ah, dl
jne 0x53f98a
or cl, al
je 0x53f98a
lea ecx, [esi + 0x74]
call fcn.0040f050
lea ecx, [esi + 8]
call fcn.0054dd60
lea ecx, [esi + 0x28]
call fcn.0040f050
lea ecx, [esi + 0x50]
call fcn.0040f050
jmp 0x53f8aa
lea ecx, [esi + 0x74]
call fcn.0040f050
lea ecx, [esi + 8]
call fcn.0054dd60
lea ecx, [esi + 0x28]
call fcn.0040f050
lea ecx, [esi + 0x50]
call fcn.0040f050
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete al
cmp dword [0x60cddc], 0xa
setl cl
test cl, al
jne 0x53f98a
xor cl, al
jne 0x53f98a
lea ecx, [esi + 0x74]
call fcn.0040f050
lea ecx, [esi + 8]
call fcn.0054dd60
lea ecx, [esi + 0x28]
call fcn.0040f050
lea ecx, [esi + 0x50]
call fcn.0040f050
jmp 0x53f921
mov eax, dword [0x60ac58]
mov ecx, dword [0x60ac5c]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x28]
cmp ecx, 0xa
setl byte [esi + 8]
mov eax, 0x53d83449
lea edi, [esi + 0x98]
mov ebx, 0xdcbd43c7
nop
cmp eax, 0x53d83448
jg 0x53f9e0
cmp eax, 0xdcbd43c7
je 0x53fa10
cmp eax, 0x7c7c9d1
jne 0x53f9c0
jmp 0x53fa72
cmp eax, 0x6ef5bed2
je 0x53fa61
cmp eax, 0x53d83449
jne 0x53f9c0
movzx ecx, byte [esi + 0x28]
movzx eax, byte [esi + 8]
mov edx, ecx
xor dl, al
mov edx, 0x6ef5bed2
cmovne edx, ebx
test al, al
mov eax, edx
cmovne eax, ebx
test cl, cl
cmove eax, edx
jmp 0x53f9c0
mov ecx, edi
call fcn.00482af0
mov edx, dword [0x60ac58]
mov ecx, dword [0x60ac5c]
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x6ef5bed2
mov ebx, 0x7c7c9d1
cmovne edx, ebx
cmp eax, 0xffffffff
mov eax, edx
cmove eax, ebx
mov ebx, 0xdcbd43c7
cmp ecx, 0xa
cmovge eax, edx
jmp 0x53f9c0
mov ecx, edi
call fcn.00482af0
mov eax, 0xdcbd43c7
jmp 0x53f9c0
mov eax, dword [esi + 0xb0]
mov dword fs:[0], eax
mov eax, dword [esi]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x4c]
mov dword [esi + 0x48], ecx
mov ecx, dword [esi]
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
test al, al
jne 0x53fab8
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x4c]
mov dword [esi + 0x48], ecx
mov ecx, dword [esi]
vmovsd xmm0, qword [ecx + 0x44]
vmovsd qword [esi + 0x40], xmm0
jmp 0x53fa8a
mov dword [esi + 0xb8], 0xe
lea eax, [esi + 0x40]
push 0
lea ecx, [esi + 0x28]
push ecx
push eax
push 0x65
lea eax, [esi + 8]
push eax
call fcn.0053c7a0
add esp, 0x14
mov dword [esi + 0xb8], 0xf
lea eax, [esi + 0x74]
mov ecx, dword [esi + 4]
push eax
call fcn.0053d2d0
mov eax, dword [esi]
add eax, 0x44
mov eax, dword [eax]
mov dword [esi + 0xb8], 0x10
mov ecx, dword [ebp + 8]
lea edx, [esi + 8]
push edx
lea edx, [esi + 0x74]
push edx
push eax
call fcn.00540060
mov dword [esi], eax
mov eax, dword [0x60cdd8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
sete dl
cmp dword [0x60cddc], 0xa
setge cl
setl ah
xor ah, dl
jne 0x53fb43
or cl, al
jne 0x53fb94
jmp 0x53fb43
lea ecx, [esi + 0x74]
call fcn.0040f050
lea ecx, [esi + 8]
call fcn.0054dd60
lea ecx, [esi + 0x28]
call fcn.0040f050
lea ecx, [esi + 0x50]
call fcn.0040f050
mov ecx, dword [0x60cdd8]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x60cddc], 0xa
setge cl
setl ch
xor ch, dl
jne 0x53f98a
or cl, al
test cl, 1
je 0x53f98a
lea ecx, [esi + 0x74]
call fcn.0040f050
lea ecx, [esi + 8]
call fcn.0054dd60
lea ecx, [esi + 0x28]
call fcn.0040f050
lea ecx, [esi + 0x50]
call fcn.0040f050
jmp 0x53fb43